- Substance 3D home
- Home
- Getting Started
- Getting Started overview
- Activation and licenses
- System requirements
- Project creation
- Export
- Export overview
- Export window
- Export presets
- Export overview
- Glossary
- Performance
- Getting Started overview
- Interface
- Assets
- Substance 3D Assets
- Color picker
- Display settings
- History
- Layer stack
- Main menu
- Project configuration
- Properties
- Settings
- Shader settings
- Texture Set
- Toolbars
- Viewport
- Miscellaneous
- Assets
- Painting
- Painting overview
- Tool list
- Straight line
- Lazy mouse
- Symmetry
- Fill projections
- Presets
- Presets overview
- Creating and saving presets
- Creating particles presets
- Photoshop brush presets (ABR)
- Dynamic strokes
- Advanced channel painting
- Vector graphic (.svg & .ai)
- Text resource
- Effects
- Baking
- Content
- Creating custom effects
- Importing assets
- Creating custom effects
- Features
- Automatic UV Unwrapping
- Physical size
- Smart Materials and Masks
- Subsurface Scattering
- Dynamic Material Layering
- UV Reprojection
- UV Tiles
- Color Management
- Post Processing
- Iray Renderer
- Plugins
- Sparse Virtual Textures
- Custom Shaders
- SpaceMouse® by 3Dconnexion
- Universal Scene Description (USD)
- Send to
- Technical Support
- Performance Guidelines
- Configuring Pens and Tablets
- Exporting the log file
- Exporting a DXDiag
- Technical issues
- GPU Issues
- Crash when working with overclocked GPU
- Forcing the external GPU on Mac OS
- GPU drivers compatibility
- GPU drivers crash with long computations (TDR crash)
- GPU has outdated drivers
- GPU is not recognized
- GPU is not recognized and is mentionned as GDI Generic
- Issues with Nvidia GPUs on recent Mac OS versions
- Multi/Bi-GPU
- Running on integrated GPU
- Painter doesn't start on the right GPU
- Startup Issues
- Rendering Issues
- Stability Issues
- Miscellaneous Issues
- GPU Issues
- Workflow Issues
- Export Issues
- Tools Issues
- Project Issues
- Library Issues
- Viewport Issues
- Plugins Issues
- License Issues
- Pipeline and integration
- Installation and preferences
- Configuration
- Resource management
- Scripting and development
- Scripts and plugins
- Shader API Reference
- Shader API overview
- Changelog - Shader API
- Libraries - Shader API
- Lib Alpha - Shader API
- Lib Bayer - Shader API
- Lib Defines - Shader API
- Lib Emissive - Shader API
- Lib Env - Shader API
- Lib Normal - Shader API
- Lib PBR - Shader API
- Lib PBR Aniso - Shader API
- Lib Pom - Shader API
- Lib Random - Shader API
- Lib Sampler - Shader API
- Lib Sparse - Shader API
- Lib SSS - Shader API
- Lib Utils - Shader API
- Lib Vectors - Shader API
- Parameters - Shader API
- Shaders - Shader API
- Release notes
- Release notes overview
- All Changes
- Version 10.1
- Version 10.0
- Version 9.1
- Old versions
- Version 9.0
- Version 8.3
- Version 8.2
- Version 8.1
- Version 7.4
- Version 7.3
- Version 7.2
- Version 2021.1 (7.1.0)
- Version 2020.2 (6.2.0)
- Version 2020.1 (6.1.0)
- Version 2019.3
- Version 2019.2
- Version 2019.1
- Version 2018.3
- Version 2018.2
- Version 2018.1
- Version 2017.4
- Version 2017.3
- Version 2017.2
- Version 2017.1
- Version 2.6
- Version 2.5
- Version 2.4
- Version 2.3
- Version 2.2
User data
This page describes custom properties (user data) that can be added on Substance graph to execute specific behaviors.
The user data settings are usually applied to input or output nodes of a graph to indicate how the application should interpret them. This allows to request input of a graph to be in a certain way to apply effects is a known context (ex: requesting a specific color space) or to indicate how an output was made in case the application need to apply extra conversions afterward.
- Use data settings are defined as key = value
- Multiple settings are separated by a semicolon ( ; )
Color space
The colorspace setting can be used to request Substance graph inputs with a specific color space or to define an output configured in a certain way. For example specifying the format of the normal map output.
Syntax example: colorspace=$working
Contexts overview:
- Color button: A color button widget in the properties of a Substance graph.
- Graph input/output: input or output node of a graph connected to a channel (ex: BaseColor).
- Image input: generic input of a graph, unrelated to specific channels.
With the introduction of color management, several behaviors related to color spaces setting have changed:
- The table below list first the color space settings compatible prior to version 8.1. The second section is exclusive to version 8.1 and newer.
- Regarding the contexts in which the color space setting can be used, only since version 8.1 can color button define a color space. In previous versions they were assumed to be in display space (sRGB).
The snorm and unorm color space/transformations should not be mixed with GPU texture formats, their purpose are different.
ColorSpace | Context availability | Description |
---|---|---|
auto | Color button | Default. The application decides the color space conversion to perform depending on the input node properties and the image plugged in the input. |
linear | Color button | Standard sRGB IEC 61966-2-1:1999 color space with a linear gamma/tone-curve. Only available with Legacy color management mode. |
srgb | Color button | Standard sRGB IEC 61966-2-1:1999 color space. Only available with Legacy color management mode. |
passthru | Color button | Deprecated. Interpreted as linear in Legacy color management mode and raw with OCIO/ACE. Should be replaced by raw instead. |
snorm | Graph input/output | Signed normalized. Request input image to be in range [0, 1]. For 8bit input images this means the middle value is 127. For floating image inputs the middle is 0.5 and does not perform any clamping. |
normalxyzright | Graph input/output | OpenGL normal map format. |
normalxyzleft | Graph input/output | DirectX normal map format. |
unorm | Graph input/output | Floating input, without range/clamping. |
data | Color button | Unsigned normalized or float. Non-color information. |
raw | Color button | No color transformations are applied when this setting is used. |
$standardsrgb | Color button | Standard sRGB IEC 61966-2-1:1999 color space. |
$working | Color button | Working color space, depends on the color management settings. Will be identical to data for non-color managed channels and mono-channel (stencil, alpha, mask) |
$raw | Color button | Alias for raw. |
$auto | Color button | Alias for auto. |
Alpha mode
The alpha setting can be used to specify how the alpha of a color input or output (RGBA) is combined.
Syntax example: alpha=premultiplied
Setting | Description |
---|---|
straight | Request or define the alpha as straight. |
premultiplied | Request or define the alpha as pre-multiplied. |
none | Passthrough, use the given alpha as-is. |
The channel Opacity is considered as straight by default.
Image input default color
The default color of a Substance graph image input is black with its alpha set to 0. The defaultcolor setting allow to define a different value when the image input of a graph is empty
Floating values (range [0, 1]) or integer values (range [0, 255]) can be used to specify the color. Each component value is separated by a comma, while floating point value use a dot as the decimal separator. If a floating has not point it will be considered as an integer.
Syntax example:
- defaultcolor=(1.0,0.5,0.0)
- defaultcolor=(0,128,255)
Image input padding
By default image inputs of a Substance graph don't have any padding, the area outside the UV island is usually filled with a uniform color for performance reasons. The padding setting can be used to request infinite dilation instead, which can be used for filters to avoid creating seams for example.
Syntax example: padding=extend
Disable an output by default
When adding a substance into a slot (like the material slot of the tool of a fill layer), it is possible to specify via the metadata text field to not enable a specific channel :
- On a specific output node (like a material) : disable=(true)
- On a generic output node (like a filter) : disable=(height,diffuse,specular)
When loading the substance, this channel will not be enabled in the user interface and therefore will have no effect in the layer stack. The user can still enabled back the channel.
Designate an output as a common mask/alpha
The output of a Substance graph can be used a shared alpha channel/mask on the other outputs.
There are two ways to do so:
- Create an ouput node with the identifier channels_Alpha
- Or add the following userdata on a specific output node: IsChannelsAlpha=true
Some conditions may apply:
- If an output node with the identifier channels_Alpha exists and other outputs don't have the userdata, this node will be used as the channels mask.
- If an output has the userdata it will be used as the channels mask as long no channels_Alpha node exists.
- If both a channels_Alpha node and a node with the userdata exist, then the channels_Alpha output node will be used first.
- If multiple nodes have the userdata, the first node found by the application will be used as the channels mask. The order in which the outputs are found is not guaranteed to the same as defined by the Substance graph.
This settings only applies to Substance graph used in material mode. It doesn't apply to filters, generator, etc.
Set default blending mode for Material outputs
It is possible to define what the blending mode of a specific output in a Substance graph should be when drag and dropping materials from the Shelf into the viewport or layer stack.
- On a specific output node: blendingmode=normal
List of supported blending modes:
- normal
- passthrough
- disable
- replace
- multiply
- divide
- inversedivide
- darken
- lighten
- lineardodge
- subtract
- inversesubtract
- difference
- exclusion
- signedaddition
- overlay
- screen
- linearburn
- colorburn
- colordodge
- softlight
- hardlight
- vividlight
- pinlight
- tint
- saturation
- color
- value
- normalcombine
- normaldetail
- normalinversedetail