Last updated on
Jul 13, 2023
- Getting Started overview
- Activation and licenses
- System requirements
- Project creation
-
Export
- Export overview
- Export window
- Export presets
- Glossary
- Performance
- Assets
- Substance 3D Assets
- Color picker
- Display settings
- History
- Layer stack
- Main menu
- Project configuration
- Properties
- Settings
- Shader settings
- Texture Set
- Toolbars
- Viewport
- Miscellaneous
- 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
- Creating custom effects
- Importing assets
- 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
- 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
- Installation and preferences
- Configuration
- Resource management
- Scripts and plugins
- 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
- Substance 3D home
- Home
-
Getting Started
- Getting Started overview
- Activation and licenses
- System requirements
- Project creation
-
Export
- Export overview
- Export window
- Export presets
- Glossary
- Performance
-
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
-
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
-
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
-
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
Lib SSS - Shader API
lib-sss.glsl
Public Functions: getSSSCoefficients
Import from library
import lib-sampler.glsl
import lib-sampler.glsl
import lib-sampler.glsl
The scalar SSS coefficient texture
//: param auto channel_scattering
uniform SamplerSparse sss_tex;
//: param auto scene_original_radius
uniform float sssSceneScale;
//: param custom {
//: "label": "Enable",
//: "default": true,
//: "group": "Subsurface Scattering Parameters",
//: "description": "<html><head/><body><p>Enable the Subsurface Scattering. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>"
//: }
uniform bool sssEnabled;
//: param auto channel_scattering
uniform SamplerSparse sss_tex;
//: param auto scene_original_radius
uniform float sssSceneScale;
//: param custom {
//: "label": "Enable",
//: "default": true,
//: "group": "Subsurface Scattering Parameters",
//: "description": "<html><head/><body><p>Enable the Subsurface Scattering. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>"
//: }
uniform bool sssEnabled;
//: param auto channel_scattering uniform SamplerSparse sss_tex; //: param auto scene_original_radius uniform float sssSceneScale; //: param custom { //: "label": "Enable", //: "default": true, //: "group": "Subsurface Scattering Parameters", //: "description": "<html><head/><body><p>Enable the Subsurface Scattering. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>" //: } uniform bool sssEnabled;
Select whether the light penetrates straight through the material (translucent) or is diffused before starting to scatter (skin).
//: param custom {
//: "default": 1,
//: "label": "Scattering Type",
//: "widget": "combobox",
//: "values": {
//: "Translucent": 0,
//: "Skin": 1
//: },
//: "group": "Subsurface Scattering Parameters",
//: "description": "<html><head/><body><p>Skin or Translucent/Generic. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>"
//: }
uniform int sssType;
//: param custom {
//: "default": 1,
//: "label": "Scattering Type",
//: "widget": "combobox",
//: "values": {
//: "Translucent": 0,
//: "Skin": 1
//: },
//: "group": "Subsurface Scattering Parameters",
//: "description": "<html><head/><body><p>Skin or Translucent/Generic. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>"
//: }
uniform int sssType;
//: param custom { //: "default": 1, //: "label": "Scattering Type", //: "widget": "combobox", //: "values": { //: "Translucent": 0, //: "Skin": 1 //: }, //: "group": "Subsurface Scattering Parameters", //: "description": "<html><head/><body><p>Skin or Translucent/Generic. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>" //: } uniform int sssType;
Global scale to the subsurface scattering effect
//: param custom {
//: "default": 0.5,
//: "label": "Scale",
//: "min": 0.01,
//: "max": 1.0,
//: "group": "Subsurface Scattering Parameters",
//: "description": "<html><head/><body><p>Controls the radius/depth of the light absorption in the material. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>"
//: }
uniform float sssScale;
//: param custom {
//: "default": 0.5,
//: "label": "Scale",
//: "min": 0.01,
//: "max": 1.0,
//: "group": "Subsurface Scattering Parameters",
//: "description": "<html><head/><body><p>Controls the radius/depth of the light absorption in the material. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>"
//: }
uniform float sssScale;
//: param custom { //: "default": 0.5, //: "label": "Scale", //: "min": 0.01, //: "max": 1.0, //: "group": "Subsurface Scattering Parameters", //: "description": "<html><head/><body><p>Controls the radius/depth of the light absorption in the material. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>" //: } uniform float sssScale;
Wavelength dependency of the SSS of the material
//: param custom {
//: "default": [0.701, 0.301, 0.305],
//: "label": "Color",
//: "widget": "color",
//: "group": "Subsurface Scattering Parameters",
//: "description": "<html><head/><body><p>The color of light when absorbed by the material. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>"
//: }
uniform vec3 sssColor;
//: param custom {
//: "default": [0.701, 0.301, 0.305],
//: "label": "Color",
//: "widget": "color",
//: "group": "Subsurface Scattering Parameters",
//: "description": "<html><head/><body><p>The color of light when absorbed by the material. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>"
//: }
uniform vec3 sssColor;
//: param custom { //: "default": [0.701, 0.301, 0.305], //: "label": "Color", //: "widget": "color", //: "group": "Subsurface Scattering Parameters", //: "description": "<html><head/><body><p>The color of light when absorbed by the material. It needs to be activated in the Display Settings and a Scattering channel needs to be present for these parameters to have an effect.</p></body></html>" //: } uniform vec3 sssColor;
Return the material SSS coefficients
vec4 getSSSCoefficients(float scattering) {
if (sssEnabled) {
vec3 sss = sssScale / sssSceneScale * scattering * sssColor;
return vec4(sss, sss == vec3(0.0) ? 0.0 : 1.0);
}
return vec4(0.0);
}
vec4 getSSSCoefficients(SparseCoord coord) {
if (sssEnabled) {
return getSSSCoefficients(getScattering(sss_tex, coord));
}
return vec4(0.0);
}
vec4 getSSSCoefficients(float scattering) {
if (sssEnabled) {
vec3 sss = sssScale / sssSceneScale * scattering * sssColor;
return vec4(sss, sss == vec3(0.0) ? 0.0 : 1.0);
}
return vec4(0.0);
}
vec4 getSSSCoefficients(SparseCoord coord) {
if (sssEnabled) {
return getSSSCoefficients(getScattering(sss_tex, coord));
}
return vec4(0.0);
}
vec4 getSSSCoefficients(float scattering) { if (sssEnabled) { vec3 sss = sssScale / sssSceneScale * scattering * sssColor; return vec4(sss, sss == vec3(0.0) ? 0.0 : 1.0); } return vec4(0.0); } vec4 getSSSCoefficients(SparseCoord coord) { if (sssEnabled) { return getSSSCoefficients(getScattering(sss_tex, coord)); } return vec4(0.0); }