Node groups serve the purpose of combining multiple nodes into reusable components. To make them more useful, node groups can have a set of inputs that the "caller" has to provide. Currently, node groups have one Group Input and one Group Output node. This works well for many cases. However, I'd argue that there is a better way to do it (both approaches are used in multiple other pieces of software).
Some motivation for implementing a new approach:
- When a node group needs more inputs, there is usually a large node on the left side of a node tree that has links to many other nodes. I'd argue that these links add more confusion than they actually provide information to the user. At some point it becomes quite hard to follow these links through the entire node tree.
- In the current implementation, there is no mechanism that supports grouping of inputs.
- Important information like the min/max/default values is hidden in a panel in the sidebar.
Personally, I think it would be good to allow multiple Input Parameter nodes in a node group. Something like this:
Some notes on this approach:
- For different data types, a different set of settings can be shown. Of course the node can also be collapsed when not all information is necessary.
- The node can be placed exactly where the value is needed, providing better information when actually working on the node tree.
- All the settings can still be shown in a side bar to have all information accessible in a single place.
- We could also allow multiple inputs per Function Parameter node for better grouping of related settings.
Implementation wise, this approach might actually be simpler than the old solution.
At the same it scales better when node trees get larger and when we want groups to become more powerful.