Developing a portfolio of CGI fluid and pyro simulations in Houdini 16.

Node Based Procedural Workflow

What are nodes?

Throughout this blog I will be referencing various “nodes” and “networks” that will make up may final composition, programs such as Blender and Houdini use these nodes to build up a scene from nothing, but what actually is a node?

A “node” is essentially a single step in a large flowchart that performs a function. These functions have a huge range and by the end of a composition there can be many many nodes in a single network all contributing something small and slightly changing the composition in order to create the desired effect. The benefit of such a system is that it creates a non-destructive – or procedural – workflow which means that editing the composition at a later stage is very easy and, more importantly, non-destructive to the rest of the network.

An example of this can be observed in 3D modelling. In the default modelling interface for Blender, a user can create a cylinder and, using a combination of extrudes and scales, cut a hole through the middle of it.

A non-prodecural, destructive workflow in Blender.

The drawbacks of such a destructive, linear, workflow is that the changes you make are permanent, from this point any changes or additions made will be based on this hollow cylinder. This is fine as long as you’re 100% certain that this will never need to change in any way because, in a non-procedural workflow, it is very untidy and very time consuming to go back and edit something like this. The same process could be achieved by using a blast node in Houdini, the benefit of which being that if later down the pipeline you decide you actually need a solid pipe, you can simply remove the blast node from the network and the hole will be removed while the rest of the network will be unaffected and the composition will adapt to the new parameters.

Here is a network containing a blast node. In this procedural workflow the blast can be removed and added at will.

Additional benefits to such a procedural workflow is that the function of each node is clear and therefore fine tuning at the end of the composition, once all the nodes are in place, is also very simple. For example in you network you may have the file import, a transform node, an attribute create node, a solver and the output null. If the object needs moving then it is clear the transform node will be required, if the properties of the simulation need tweaking then it’s the solver. The obvious added benefit of this is that any problems with the simulation you encounter in testing can easily be isolated and fixed.

Useful Terminology

In my research up to this point I have come across a lot of new terminology when using the Houdini software so I will be collating all such terminology here, as much for my own benefit as anyone else’s:

Node – An individual function step in your composition.
Network – A collection or sequence of nodes.
Simulation (Sim) – A visualisation of the contents of your networks.
DOP – Dynamic OPerators, construct the simulations.
SOP – Surface OPerators, any kind of geometry.
ROP – Render OPerators, all rendering/baking/caching functions.
VOP – Vector OPerators, a way of applying additional forces and parameters to a network.
VEX – The code language used to create expressions in Houdini.
– As Houdini is Linux based no spaces can be used, particularly when dealing with expressions and naming conventions, so all spaces in text are underscores.
RBD – Rigid Body, basically an object that doesn’t bend but can be affected by environmental factors.
Fluid – Concerning liquids.
Pyro – Concerning fire/smoke/combustion.
Seed – An arbitrary value to randomise the simulation at the beginning of the timeline.
Primitive – The name for a face in geometry in Houdini.

References

Next Post

Previous Post

Leave a Reply

© 2024 Flyro

Theme by Anders Norén

Skip to toolbar