Discussion about the new ShaderNodeCustomGroups and CompositorNodeCustomGroup RNA classes

As I haven’t wrote any documentation yet about these new RNA classes, I’m opening this thread for allowing questions, discussion, improvements and tips for creating nodes using these classes.

1 Like

Maybe you could give a brief intro on what it is and why it’s there? Is it only for developers who seek to integrate another render engine or is it useful to anyone?

These classes allow custom nodes for Cycles and Eevee, plus custom nodes for the Compositor editor.
They are like nodegroups on steroids. :slight_smile:
I’d say they are usefull for anyone who wants to extend nodes functionality through Python. Not so usefull for other render engines, as you’d need a different nodetree type for those.

Sounds really cool. Is there an example code of such a node available? Just to see how it works and what the boundary conditions are.

1 Like

I’d love a quick example of a super-simple node (ex: passthrough node) made using these new RNA classes, just in-depth enough to show how you can access the data from the input sockets and output to the output sockets.

These new classes work in a similar fashion as nodegroups (thought programatically). They allow custom UI for the private node_tree, along other functionalities as changing the node_tree dynamically… For example, you can change options of the inner nodes directly from the node interface, instead of having to open the node_tree to do those changes (as must be done with nodegroups).
Access to data from input sockets and to output sockets is done in the same way as in nodegroups, so that means no access to the data itself.

There are some examples here that you can look into.

1 Like