Writing a renderer plug-in / Where to start

Dear all,

We need to write a renderer plugin for Rhino. The actual rendering will not be done by the plugin, but by an external application which will be launched by the plugin after the scene is exported. We would like to add support for custom materials supported by the renderer.

Currently, we have done a python exporter, which writes a renderer specific file. It does not handle any custom object such as materials.

What is the best API for this? All languages such as Python, C++, C# are not a problem. Python would be a good option as is it crash safe and cross-platform, but is the API fully featured for renderers, custom GUIs and stuff like that? I would dream of a PyQt support in Rhino… We do not need mac support (currently).

And most importantly, is there any tutorial / simple project to start with for writing a renderer plugin?

Thanks!

@andy, I’ll let you handle this…

The best language to use is probably C# - or even Python, using RhinoCommon. I will post a C# material example here shortly.

Do you have access to GUI features in Python? A Python example would be appreciated too!

And regarding the future (Rhino 6), what is the best long-term approach? Will there be new major API features? (Such as PyQt…) ?

For Rhino 5, your best bet might be to use WinForms or WPF.

Rhino 6 will include Eto, a cross platform GUI framework. If you want to play with Eto, just download the Rhino WIP from Serengeti.

– Dale

I would recommend C# for this. Debugging is going to be too difficult in our python implementation for a project of this size. C# is also cross-platform and can crash Rhino just as easily as python :slight_smile:

Which languages will support Eto in Rhino 6, C#, C++ and Python?

Steve : I thought that C# was not supported on the mac version, will that change in Rhino 6?

It seems that targetting Rhino 6 is a much better investment for the long term, but do we have an idea of the release date?

Thanks,

Etienne

Yes - that will change in Rhino 6.

If you want cross platform support for a renderer, you would be well advised to use C#, Eto and Rhino 6.

C# is already supported in the current version of Rhino for Mac (and of course Windows)