Data Flow
Nodes are connected in a parent / child hierarchy. This is first and foremost a transform hierarchy: parent transformations are applied to the child, composited with the child’s own transformation – so the parent moves the child with itself. The parent child relationship is used to flow other data along the hierarchy, such as image data between a chain of video nodes. It’s also used to represent collection relationships / modifier relationships: for example a Particle Root node represents a collection of particles, and emitters and affectors that work on the collection are linked as children of the Particle Root node; or in another example, a 3D Object node is the parent and there are Deformer nodes attached as children that modify the parent 3D Object’s mesh. Similarly, a Post FX node parented to a Video Processing node modifies the image that is contained in the Video Processing node.
The Root node is the entry point for the scene. Everything that is rendered in the scene must be connected via the root node, directly or via a parent hierarchy. Post FX that are attached to the root node or camera nodes effect the rendered scene.
Nodes can also be connected across the branches of the transform hierarchy via input connectors. This is used to pass the data owned by one node into another’s processing; for example, a 3D Object node may be connected to an input of a Particle Mesh Emitter node in order to define the mesh used for emission. Inputs are weakly typed: when a node is connected as an input to another node, the relevant information from the connected node is automatically chosen, if applicable. There are hints when connecting inputs about which nodes make for valid connections, and invalid ones may be rejected if a connection is attempted. Some inputs take only one node at a time and some take multiple nodes. Input connectors are also created for all numeric properties on a node, allowing them to be driven by other nodes – e.g. modifiers.
|
Order Of Operations
For nodes sharing the same parent, the order of operations for processing the nodes is decided based on the Y position of the node in the nodegraph, or the X position if the Y values are the same. Nodes with larger X or Y values are calculated first, meaning that if Effect A needs to be run after Effect B, Effect A should be placed lower in the nodegraph than Effect B.
The images on the left shows the radial blur being done after the bit crush, with the reverse being shown on the image on the right. This is decided by the position of both the radial blur and the bit crush in the nodegraph. | |
![]() |
![]() |
![]() |
![]() |