One Technique to Rule Them All
Jul 01, 2024There's one workflow that I've been using intensively for several years now that I owe much of my success. It's enabled me to create vastly more complex systems that span multiple node graphs, multiple objects, and even multiple scenes.
This technique takes advantage of Blender's datablock system and the fact that a node graph is, by itself, a datablock. What this means for us is that we can reference this datablock in multiple places and the contents of that nodegroup is self-consistent.
This allows us to reuse Float Curves and Colour Ramps, Object and Collection Info nodes, and global parameters.
when we start working this way, it suddenly becomes totally viable to spread out your procedural modules across different objects and node graphs. This makes it much more readable and even performant.
Let's explain an example workflow.
You're creating a house generator.
The house generator wants a base scaffold object that defines wall positions and defines which wall segments will be windows / doors, creates a roof shape etc.
If we then create a new object that will be the roof, we can import the scaffold object and separate off the roof parts to use to create the actual roof asset. This keeps our scene nicely organised and we can enable and disable parts, as well as exporting individuals.
However, we now have multiple objects and they're all "one" generator. To handle this, we need a method to drive global controls.
That method, is datablocks.
Enter stage left, _controls
nodegroup.
This is a pretty high level example but hopefully it gives you a sense of how this workflow raises the ceiling on what you can achieve.