Graph instances / Sub-graphs


Understanding graph instances / sub-graphs


What is a "graph instance" or a "sub-graph" ?

Graph Instances and sub-Graphs are two synonyms. It's a graph that has been packaged together and turned into a reusable, standalone resource. Creating Graph Instances is mostly done internally inside Substance 3D Designer to make a new Node that can be used again in other graphs. Publishing involves and additional step to export to SBSAR format, making your Node-network Graph usable outside of Designer, such as when you create a Material for Unreal Engine, a Filter for Sampler or a Generator for Painter.

Why should I use graph instances?

Because they can save you tremendous amounts of time, allowing you to work much more efficiently. Any time you are duplicating one or more nodes in Designer, you could probably use Sub-Graphs to make things easier; once more than one node or more than a few parameters are involved, sub-graphing is the way to go!

A project file demonstrating a simple setup of a sub-graph for a custom filter is available in the Sample Substance compositing graphs section of this documentation.

How do you create a graph instance?

Every Graph is always usable as an Instance, if set up correctly. Just drag it from the explorer into another graph.  To quickly take nodes out of a graph, use the right-click menu option "Create Graph from Selection", see below.
Minimum correct set-up means there has to be at least one output in your graph. For any more control, one should add Exposed Parameters and Input nodes. 

If you want a sub-graph to be usable outside of Designer, you will have to Publish your package (containing the Graphs you want to use).

Can I add my own graph instances to the node library?

Yes, this is possible, but it requires some specific set-up. It is not entirely a beginner-friendly process. See Pipeline and Project Configuration, specifically Managing custom content and filters.

Can you inspect the source graph of a graph instance?

(tick) Yes, and only for instances of graphs loaded from a Substance 3D file (SBS). These instance nodes have a dark red label.
Right-click on the node to open its contextual menu and select the Open reference option.

While inspecting the source graph, you can use the input data of the instance's graph if the In-context editing option is checked in the Graph section of the Preferences.

(minus) It is not possible to inspect graphs loaded from Substance 3D asset (SBSAR) instances, as these are already compiled. You may only load the asset in the Explorer panel to inspect the exposed graphs list and their parameters. These instance nodes have a green label.
Right-click on the node to open its contextual menu and select the Load package option.

Atomic nodes

Atomic nodes are implemented directly through code in the Substance engine and are not instances of graphs, hence the name atomic: they are the smallest building blocks for all the other nodes in Substance compositing graphs.