From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

Use cases for data/dependency graph

Object hierarchy

Object Hierarchy Graph

DataGraph - Object Hierarchy.png


  • Transformation is successively applied to child objects and stored in object matrix.

Mesh data modifiers

Modifier "trees" are subgraphs

DataGraph - Modifiers.png


  • Modifiers node is a component subgraph. When simple, unmodified mesh display is needed, a default "pass-through" modifier could be used automatically.
  • Actual resulting geometry data (better abstracted "derived mesh" replacement) is stored in separate nodes:
    • Display Data is used for realtime OpenGL display in the viewport
    • Render Data is the "final" version for rendering, only generated right before rendering.
      Q: Could this depend on the renderer?
  • Object does not directly link to a single base mesh block any more. Meshes are "attached" to objects by an instance of a modifier graph, which in turn links to the mesh used as input.

Some details of the modifier subgraphs are explained below. These principles also apply in other areas where specialized subgraphs are used.

Modifier Stack

Simple stack-type modifier graph

DataGraph - Modifier Stack.png


  • Replicates current modifier stack behavior
  • Input nodes are used to import input data of instances. Output nodes export data from a local subgraph. See also the next section on groups.
    (Note: Current node groups display input/output sockets as part of the tree, but can be interpreted as nodes too.)

Subgraphs ("Node Groups") and instances

Parts of the modifier graph can in turn instance other subgraphs.

DataGraph - Modifier Groups.png


  • This generalizes the "node group" concept (Group nodes are instances of library node trees! Partially broken in cases due to fuzzy node tree/instance separation).

Multiple Inputs

Since no single mesh is designated as "the" object mesh, multiple base meshes can be combined and attached to an object with a merge modifier component.

DataGraph - Modifier Multi Input.png