Exposing parameters

Exposing node inputs

In a Substance model graph, most node parameters can be exposed to other nodes in the graph as node inputs.
Exposing a parameter is done by any of the two buttons next to its Reset to default button, which results in an input connector being added to the node. The data received by this input connector is then used as the value for the exposed parameter.

These two buttons do the following:

  • Create an input pin for this parameter: enabling this button exposes the parameters by creating an input connector on the node. If the connector is not connected to another node, or invalid data is passed to it, the parameter’s default value is used instead
  • Copy value to a new node and link it to this parameter: this exposes the parameter, and automatically carries its current value to a new Constant node which is then connected to the parameter’s input pin

Exposed parameters can be reversed to their default state by clicking the Create an input pin for this parameter button. This removes the parameter’s input connector from the node and deletes any existing connection to it.


Exposing graph inputs

Constant nodes can be exposed to the end user as graph inputs.
Click any Constant node and select the Exposed option in the contextual menu to expose its value. The Properties panel will then display the properties of this new graph input:

  • Identifier String
    Unique name of the graph input parameter.

It is recommended to use safe characters: letters A-Z a-z, numbers 0-9, hyphen -, underscore _. Unsupported characters are replaced by an underscore _.

  • Current value Depends on value type
    The current value of this graph input.
    This value can be reset to the default value for this type, by clicking the Reset to Default button next to the label

Ranges (Note: all these properties are optional)

  • Soft range Depends on value type
    The range of the graph input as displayed in the user interface. The user can set a value out of this range.
  • Hard range Depends on value type
    The accepted range of the graph input. The user cannot set a value out of this range.
  • Description String
    The bespoke description of the usage and impact of this graph input.
  • In Group String
    The group this graph input will be displayed under in the user interface.
  • Display Name String
    The label of this graph input in the user interface. You may use any characters to make a more user-friendly label.
    If this field is left blank, the Identifier is used as label.
  • Gamma Type String
    Substance model graphs do not support this property. You may ignore it.

All graph inputs are listed and can be interacted with under the Graph Inputs section of the Graph properties, which you can access by performing either of these actions:

  • Clicking LMB on the graph item in the Explorer panel
  • Double-clicking LMB on empty space in the Graph view


Using parameter functions

In the context of a Substance model graph, a function is a series of connected algebra and/or logic operations which provide a unique output of a given type – e.g. a Float value – similarly to what can be achieved in a Function graph.

Functions need to be implemented in the main graph using the available Constant, Operation and Cast nodes in the Library. The result can then be passed as a parameter value by using the input pin of exposed parameters.