Node Group Design Proposal #344
Kolupsy
started this conversation in
Feedback & Feature Requests
Replies: 1 comment
-
This is something I have thought about. All graph passes end up being compiled to a function already and BlenderMalt already supports Custom IO so most of the functionality is already there. While being able to export a group as a plain function should be supported, I'm not sure if that's how it should work internally, though. One thing that must be taken into account is that not all nodes are available for all tree/graph types, so functions would have to be type-specific, or there should be a way to tell what types are supported and expose only the common subset of their nodes. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I think Malt could use node groups as a way to pack higher-level functions into a smaller, easier accessible container. Here is a design propsal:
Node groups are a separate graph type like a 'function' graph type that compiles a single GLSL function instead of a shader or a python pipeline script. The 'group node' would then return the compiled function as its source code. The advantage that I would see in doing this would be that compiling the node group would happen independantly from the rest of the graph. Also if you wanted to distribute your shading work you could either distribute the node group in a blend file as an editable macro or simply the compiled shader function as a relatively small .glsl file.
I think node groups are only needed for GLSL code (cant think of a usecase for node groups in the pipeline graph).
What do you think about that? Does that sounds like a good idea? I sadly do not know enough about the shader compilation system that malt uses to convert node trees to text to evaluate if this concept is even possible
Edit: I think the node groups would be compiled is going to be similar to how screen shaders are built because it would inherit the parts about adding inputs and outputs to a tree.
Beta Was this translation helpful? Give feedback.
All reactions