The user data field in Substance files is a place were can be put any type of information that will be preserved after the cooking. Substance Painter is able to read some specific user data in order to execute specific behaviors. Multiple information are separated by a semicolon (;).
Color space and Alpha type
Substance Input/Output color space is deduced from channel type: Base color, Emissive and Specular are considered as sRGB, Height and Displacement are considered as signed(-1..1), other channels are considered as Linear/Pass-through.
Substance Input/Output alpha component (RGBA) and the opacity channel is considered as Straight (not Premultiplied) by default. In order to override the default color space and/or alpha type, set the Input and Ouput "User Data" fields with specific keys.
The field is parsed as a list of pair key=value separated by semicolons.
The keys recognized by Substance Painter are :
- ColorSpace: I/O color space. Possible values are:
- Passthru (equivalent to Linear)
- SNorm (-1...1)
- NormalXYZLeft (DirectX Normal map)
- NormalXYZRight (OpenGL Normal map)
- Alpha: I/O alpha or opacity channel interpretation. Possible values are:
- Straight (default)
- None (passthrough)
The Alpha key must be always set on main channel, not on corresponding channel opacity if any.
Input default color
The default color of an image input is black with its alpha set to 0. You can however override this default color. Use the parameter "defaultcolor" for that purpose. You can either use value between 0.0 and 1.0 or 0 and 255. If Substance Painter detects no '.' (point) in the number we consider that the number is an int instead of a float.
By default the input of a substance will receive a texture with an uniform color filled outside of the UVs for performance reasons. However it is possible to request Substance Painter to provide an input that has padding/dilation instead outside the UV islands. This is very useful for example for filters such as Sharpen or Blur.
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.