Sei sulla pagina 1di 616

Correct as of June 26, 2018

Art by Mark Foreman


1. Substance Designer User Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 What is Substance Designer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 What is a "Substance" file ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Activation & Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1.1 Activate/Evaluate Substance Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1.2 Set-up Substance Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1.2.1 General Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1.2.2 Project Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1.2.3 Graph Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.1.2.4 Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.1.2.5 3D View Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2.1.2.6 Library Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.2.1.3 Installation via Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.2.1.4 Floating license . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.2.2 Substance Designer components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.2.2.1 Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.2.2.2 Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.2.2.3 Nodes & Helpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.2.2.4 Substances and Substance Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.2.2.4.1 Substance File Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.2.2.4.2 Publish a Substance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.2.2.4.3 Export a .sbs file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.2.3 Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.2.4 Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.3 The interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.3.1 The Welcome Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.3.1.1 New Substance Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.3.2 Exploring the Substance Designer Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.3.3 Customizing your workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.3.4 The Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.3.5 The Graph view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.3.5.1 Controls of the Graph View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
1.3.5.2 Create a graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.3.5.2.1 Sub-Graphs / Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
1.3.5.3 Exporting Bitmaps and PSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
1.3.5.3.1 Export bitmaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
1.3.5.3.2 PSD Exporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
1.3.5.4 Graph parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
1.3.5.5 Manipulating graph elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
1.3.5.5.1 Link Creation Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
1.3.5.6 Output Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
1.3.5.7 The Performance Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
1.3.6 The Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
1.3.6.1 Customizing the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
1.3.6.2 Substances/assets from the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
1.3.7 Parameters UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
1.3.7.1 Expose a Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
1.3.7.1.1 Visible if: Display/Hide inputs and outputs with conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
1.3.7.2 Parameters presets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
1.3.8 2D view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
1.3.9 3D view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
1.3.9.1 GLSLFX Shaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
1.3.9.2 Iray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
1.3.9.3 Post Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
1.3.10 The Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
1.3.11 Dependency Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
1.4 Nodes Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
1.4.1 Atomic nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
1.4.1.1 Bitmap node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
1.4.1.1.1 Bitmap Painting Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
1.4.1.2 Blend node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
1.4.1.2.1 Blending modes description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
1.4.1.3 Blur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
1.4.1.4 Channel Shuffle Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
1.4.1.5 Curve node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
1.4.1.6 Directional blur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
1.4.1.7 Directional warp node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
1.4.1.8 Distance node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
1.4.1.9 Emboss node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
1.4.1.10 FX-Map node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
1.4.1.10.1 FXMaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
1.4.1.10.2 How it works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
1.4.1.10.3 The Iterate Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
1.4.1.10.4 The Quadrant Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
1.4.1.10.5 Using Functions in FXMaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
1.4.1.11 Gradient (dynamic) node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
1.4.1.12 Gradient Map node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
1.4.1.13 Grayscale conversion node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
1.4.1.14 HSL node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
1.4.1.15 Levels node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
1.4.1.16 Normal node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
1.4.1.17 Pixel processor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
1.4.1.17.1 Learning to use the Pixel processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
1.4.1.18 Sharpen node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
1.4.1.19 SVG node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
1.4.1.19.1 Vector Graphic Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
1.4.1.20 Text node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
1.4.1.21 Transform 2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
1.4.1.22 Uniform color node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
1.4.1.23 Warp node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
1.4.1.24 Input and Output nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
1.4.1.24.1 Input node (Color and Grayscale) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
1.4.1.24.2 Output node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
1.4.2 Node Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
1.4.2.1 Generators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
1.4.2.1.1 Noises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
1.4.2.1.2 Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
1.4.2.2 Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
1.4.2.2.1 Adjustments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
1.4.2.2.2 Blending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
1.4.2.2.3 Blurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
1.4.2.2.4 Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
1.4.2.2.5 Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
1.4.2.2.6 Normal Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
1.4.2.2.7 Tiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
1.4.2.2.8 Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
1.4.2.3 Material Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
1.4.2.3.1 1-Click . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
1.4.2.3.2 Effects (Material) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
1.4.2.3.3 Transforms (Material) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
1.4.2.3.4 Blending (Material) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
1.4.2.3.5 PBR Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
1.4.2.3.6 Scan Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
1.4.2.4 Mesh Adaptive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
1.4.2.4.1 Mask Generators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
1.4.2.4.2 Weathering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
1.4.2.4.3 Utilities (Mesh Adaptive) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
1.4.2.5 Node Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
1.4.3 Graph Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
1.5 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
1.5.1 What is a function ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
1.5.2 Create and Edit a function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
1.5.3 The function graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
1.5.4 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
1.5.4.1 System Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
1.5.5 Function nodes reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
1.5.5.1 Function nodes recap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
1.5.5.2 Constant Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
1.5.5.3 Vector and Swizzle nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
1.5.5.3.1 Swizzle nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
1.5.5.3.2 Vector nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
1.5.5.4 Variables nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
1.5.5.4.1 Built-in Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
1.5.5.4.2 Call a variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
1.5.5.4.3 Create a variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
1.5.5.5 Sampler nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
1.5.5.6 Cast nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
1.5.5.7 Operator nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
1.5.5.8 Logical nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
1.5.5.9 Comparison nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
1.5.5.10 Function nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
1.5.5.11 Control nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
1.5.6 My first function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
1.6 Bakers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
1.6.1 Ambient Occlusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
1.6.2 Ambient Occlusion from mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
1.6.3 Bent Normals from mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
1.6.4 Color Map from Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
1.6.5 Convert UV to SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
1.6.6 Curvature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
1.6.7 Height Map from Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
1.6.8 Legacy interface (before 2017.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
1.6.9 Normal Map from Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
1.6.10 Opacity Mask from mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
1.6.11 Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
1.6.12 Thickness Map from Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
1.6.13 Transferred Texture from Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
1.6.14 World Space Direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
1.6.15 World Space Normals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
1.7 MDL (Material Definition language) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
1.7.1 The MDL Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
1.7.2 Node Creation workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
1.7.3 Exposing a parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
1.7.4 First steps with MDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
1.8 Performance Optimization Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
1.9 Pipeline and Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
1.9.1 Project Configuration Files - SBSPRJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
1.9.1.1 Creating Library Filters For Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
1.9.2 Configuration List - SBSCFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
1.9.3 User Preferences - Automating Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
1.10 Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
1.10.1 Working with templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
1.10.2 Fx-Map : using vector maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
1.11 Substance Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
1.12 About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
1.13 Documentation in Japanese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
Substance Designer User Guide
Welcome to Substance Designer online documentation.

This place is here to guide you through the universe of Substance Designer (SD).

Whether you are a beginner, looking for the basics, or a long term user, searching for the ultimate tip, don't look further: you are at the right place !

We really hope you will find the information you are looking for: if it's not the case, don't hesitate to join and ask on our Forum: you will be
answered quickly and you will discover a great and responsive community !

Overview
This section will introduce you to the wonderful world of Substance Designer:
In this section:
What is it? How it works? Why you will love it?
What is
Substance
Designer ?
What is a
"Substance"
file ?

This is definitely a perfect starting point if you want to get an answer to these questions...

What is Substance Designer ?


Short answer :

"Substance Designer is a node based tool, dedicated to the authoring of materials."


In this page:
This sentence describes what Substance Designer is at its core, but some more explanations are
necessary to understand why it is considered by many professionals, as the standard tool for
Innovative
game (and general 3D) texturing.
workflow...
Innovative
results...
Compatible
Innovative workflow... with any game
engine.
The node based workflow and the procedural aspect of Substance Designer perfectly fit with the
reality of a production:

You can work in a non linear way, meaning that you can make any change you want at
any time, and it automatically applies to all the outputs of your substance. Forget the time
when you had to go back (and lose) 20 steps into your history to make a single
modification.
The workflow is non destructive : revert all the actions you are making without losing any
of your work. No more "I can't come back to that point"!
Substance Designer has blazing fast baking tools, to generate all the maps you needs
from your mesh.

Simply put: no other material authoring software offers you this efficiency and flexibility.

Innovative results...

Substance Designer is a software that allows you to build "smart" textures generators (called
Substances).

And by "smart", we mean that :

you can decide which aspect of the generated textures you want to control (ex: the
amount of rust for a painted metal material).
the generated textures will take in account the shape of the geometry (ex: you can add
snow only on the top of your objects).
you can reuse the substance for any other 3D objects and get a custom unique result.
All the generated textures (Base Color, Normal, etc...) are handled and generated at the
same time.

Not only you save a huge amount of production time, as you make the work once and reuse it
everywhere, but you gain also in variety and flexibility !

Compatible with any game engine.


Substance Designer lets you to create your own templates, making it compatible with any game
engine on the market, or your in-house engine.

What is a "Substance" file ?


If we want to summarize in one sentence:

"A Substance file is a smart texture(s) generator, that can be directly used in many
external applications"

We use the word "smart", because rather that being static -like a classic texture-, the author of the
substance can decide to expose some parameters in order to give some control to the final user.
For example, you can decide the amount of dust on an object, or the color of a soccer team
jersey... Your talent and your imagination are the only limit to what you can do

An example of a Brick wall Substance by Kay Vriend: you can dynamically control the look with
parameters.

Another key point is that the Substance can potentially generate textures, taking in account the
geometry of the targeted 3D asset. And if you change the 3D asset, the substance will adapt the
generated textures.

This is extremely useful in the context of a production, as you do the work once and reuse it as
much as you need.

A Substance can be published, then used in any external application that handles the Substance
Engine (Like Unity or UE4) : not only you will get the generated textures, but all the exposed
parameters are still available !

Finally, if you build a substance that is 100% procedural, the file will be extremely light (few
kilobytes) : it means that you can dramatically reduce the amount of space dedicated to textures in
you project.

Getting Started
This section will teach you how to start working with Substance Designer:
In this section:
Activation & Settings
Substance Designer components Activation &
Shortcuts Settings
Resources Substance
Designer
components
Shortcuts
Resources

Activation & Settings


First time you launch substance Designer?

Or you need to tweak a bit the software?


The following sub-sections contain all the details you need: In this section:
Activate
/Evaluate
Substance
Activate/Evaluate Substance Designer
Designer
Set-up Substance Designer
Set-up
Installation via Command Line
Substance
Floating license
Designer
Installation via
Command Line
Floating
license

Activate/Evaluate Substance Designer


When launching Substance Designer for the first time, you will encounter the activation wizard (even if you are running the trial version).

3 choices are available :

Evaluate this product : This will generate a licence file based on your hardware which will be valid for the next 30 days.
Activate using licence file : If you downloaded a *.key license file from your account page on our website, you will be able to load it in
the next step
Activate using your account : If you choose this option, the next step will ask a login and password to be able to automatically retrieve
a license file.

Make sure you are running the software as admin, and to disable your anti-virus.

Manual activation

It is possible to manually activate Substance Designer by putting the license.key file in this folder: C:/Program Data/Allegorithmic/Substance
Designer/license.key

Make sure that the file is called license.key


Environment variable

The license location can be changed from its default to a custom one by defining an environment variable.This variable must be a direct path to
the file itself.
The environment variable to is : SUBSTANCE_DESIGNER_LICENSE

Set-up Substance Designer


Preferences dialog is accessed using the Edit/Preferences menu command. This dialog lets you
Sub-sections:
adjust a number of settings in Substance Designer.

Check here if you want to make a batch install of Substance Designer. General
Preferences
Project
Preferences
Graph
You can configure Substance Designer and set-up preferences per project, so that you Preferences
can share those preferences between users among several computers. Version Control
3D View
Preferences
Library
Preferences

General Preferences

Recent Documents
History stack size
Language
Views
Misc
Save/Export Path
Temporary Folder
Thumbnails and
Image cache Sizes
Auto Backup
Cooker
Engine
Privacy

Recent Documents

Lets you select the number of documents to list in the Recent Documents entry of the File Menu.

Default: 10
History stack size

Number of Undo levels. The more levels of Undo you need, the more memory Substance Designer
will require.

Default:200

Language

Allows to change the language used in Substance Designer.

You can choose either English, Japanese or Korean.

Changing the language will take effect after restarting Substance Designer

Views

allows you to invert the Zoom.

Misc

Save/Export Path

Choose whether you want the Save/Export path to remember the last path, or be the path of the
package.

Temporary Folder

(New in Sd 2017.1) Defines the temp location to store data before a project is manually saved.

Thumbnails and Image cache Sizes


Allows to set and visualize the cache size allocated to Thumbnails and images

Auto Backup

Set options for the automatic back-up.

You can define the frequency and the number of versions saved as backup.

Note that if the amount of versions is reached, a new backup will delete the oldest one.

Cooker

Defines the Cooking Size Limit, which is the maximum pixel resolution permitted for the nodes in a
graph.

As a Substance's output is always square of 2, the value set here defines both the maximum width
and height, in pixels.

Default: 4096 pixels

Engine

The Engine cache limit setting lets you define how much memory Substance Designer should set
aside for caching render stages.

Usually, the renderer will cache the output of each node in a Substance graph.
A complex graph may have over a hundred nodes, which will require more memory than
a smaller, simpler graph.

Privacy

.If checked, automatically send statistics to Allegorithmic

Project Preferences
Substance Designer allows you to create preferences per project, and then share them on other
computers. In this page

This is very helpful if you want to set-up a working environment common to all the people working
Configuration
on the same project.
Config
uration
You just need to choose the same "Project File" on all the computers to have the same
File
working environment.
Project
Files
Comp
atibility
Mode
Substance
Engine
Compatibility
Project
3D
View
Aliases
Baking
Gener
al
Template directories
3D Scenes
Normal maps default
Image Formats
Library
MDL
Paths
Scripti
ng
Scripting actions
Versio
n
Control
Workspaces
Workspaces propertie
Interpreters
How
Configuration should
I use
it?
Configuration File

Set the path of the configuration file of Substance Designer.

You can use this command line option: --config-file <path> to launch Substance
Designer with a specific config file.
Project Files

Each Project can have its own configuration files. You should share this file if you want to set-up
the same environment on different computers.

Compatibility Mode

Some of the nodes made with a recent version of Substance Designer are not compatible
with an older version of the Substance Engine.

The compatibility mode will highlight the nodes which won't be compatible with the selected
Substance Engine. These nodes will be outlined in Yellow

Substance Engine Compatibility

Software Engine

Substance Painter 1.3.3 Substance Engine V5

Substance Player 5.0 Substance Engine V5

UE 4.6 from 4.6.1.7 Substance Engine V5


UE 4.7 from 4.7.3.7

Unity 5.0.1 p1 Substance Engine V5

iClone 6.1 Substance Engine V5

Cinema 4D Substance Engine V5

Unity 5.0 and previous Substance Engine V4

UE 4.5 and previous Substance Engine V4

3ds Max Substance Engine V4

Maya Substance Engine V4

modo 801 Substance Engine V4

Substance Painter 1.3.2 and previous Substance Engine V4

Substance Player 4.6 Substance Engine V4

iClone 6 Substance Engine V4

Project
3D View

Let the user define the default shader and default environment map location.

Aliases

Lets the user add or tweak aliases.

Baking
Lets you specify the nomenclature that has to be used in the macros, and to find low & high res
meshes correspondences.

General

Lets you set the general settings of Substance Designer

Template directories

Lets the user sets/add directories to load the templates


3D Scenes

Choose and setup the tangent space plugin that should be used by Substance Designer

These settings are advanced: leave them by default if you are not sure.

Normal maps default behaviour

(Introduced in Substance Designer 6)

Let's the user specify the default behaviour of the Normal maps within Substance Designer, for the
default Normal node and the material.

Only the Atomic Normal node are affected by this setting. Normal (Sobel) node and any
other Graph instances related to normal manipulation are not (yet) affected.

Image Formats

(Introduced in Substance Designer 6)

Let's the user specify the default format settings for the saved images

Library

You can exclude one or multiple extensions by adding them to the "Exclude pattern" column,
separated by a semi-colon (ex:"jpg;png)

Lets the user specify her own library path, so she can add her personal data to the library.
MDL Paths

Let's the user specify custom paths to MDL directories.

Scripting

Scripting actions

Let you set the path and activate/deactivate Python that have to be started when Substance
Designer is running:

onBeforeFileSaved: active just before a file is saved


onAfterFileSaved: active just after a file is saved
getGraphExportOptions:

Python Interpreters

Let the user specify the location of the Python executable (mandatory for the scripts to be working)
Version Control

Workspaces

Workspaces properties

Interpreters
Perforce is the only tool which is currently supported for version control.

The Version control System will display all the actions available on a package: as the
package is stored on the disk, Substance Designer will detect which Perforce Repository
has been defined that contains the package and purpose the corresponding actions.

Concerning the location of the extracted Perforce repositories on artist computer,


you can force the artists to have a R: drive letter for example (by using the "subst"
command"), where they will checkout the repositories, so that they will all have
the same location.
You will just have to setup the version control component in your project
in SD and put this file on perforce

How should I use it?

You should put all preferences that are specific to a Game project in a project file in
Substance Designer.

Tangent space plugin


Version Control settings (force all artist to checkout the repos in the same
location)
Library
Aliases
3D View
Baking information (so that artists will all generate the same resources names)

All the paths are stored in relative to the project file (.spsprj), so you can have the following
directory tree under perforce:

my_project.sbsprjlibrary/
maps
meshes
substances
...
3Dview/
the tangent space plugin if needed
the default shader, if any

You should then put the configuration file (.sbscfg) and the project files (.sbsprj) under
perforce

Graph Preferences
Graph

Automatically compute node thumbnails

If checked, Substance Designer will automatically render the intermediate stages of the graph onto
each node.
Disabling this option can make working on complex graphs quicker and smoother.

View outputs when opening a graph

If checked, 2D and 3D Views are updated automatically when a graph is opened.

Display comments at a constant size (zoom/unzoom)

If checked, the size of the comments will remain constant, regarless of the graph zoom level.

Automatically display newly created atomic node.

If checked, the 2d viewport will update to display a newly created node.

Version Control
Setting up Perforce In this page
Setup a workspace on your local machine
Note the following information, you will need them to setup the version Control in SD: Setting up
Perforce
Setting
Workspace Name
-up
versio
n
control
in
Substa
nce
Design
Workspace Path er
Setup Actions:

How to Use
Version Control
Inform
ation:
Action Scripts

Setting-up version control in Substance


Designer
Open the Preference Panel
Go to the "Version Control" tab
Check "Version Control Enabled"
Fill Workspace information:
"Name" the "Workspace Name" you have retrieved from P4V previously
"Path" the "Workspace Path" you have retrieved from P4V previously

Setup Actions:

The actions will be available in the contextual menu of a package in


the Explorer. There are predefined actions that match most of Version
Control tools concepts:

To be available, the package needs to be saved below the "Workspace Path" (Ex: under
"f:/Dev/perforce")

All actions label can be changed as needed


All actions need a script to be valid.

You can use:

one script per action


OR
one script for all the actions

For the Perforce integration, we choose to use one script for all the actions

Setup

In the "Actions" group, click on the "..." button of the "Add" action
Select the following script: "tools/version_control/perforce.py"
The script should automatically be set up to all other actions
Add Custom Actions:

As all Version Control tools are different and purpose many features, we allow the user to
add custom actions.

Click on the "Add Item"

Fill the Label of the new action and set its script:

Setup the script interpreter


Depending on the script type you use for your action, you will need to specify
some interpreters to evaluate your scripts.
For example, python scripts will need an interpreter
In the "Interpreters" group, click on the "Add Item"

Set a script file extension (of suffix) and the path of the interpreter:

Edit the perforce.py to set the location of the "p4" binary

How to Use Version Control

Create a New Package


Save the package below the "Workspace Path" directory
Right click on the package, you now have access to the "Version Control" sub menu:
You find several actions depending on the status of the package file in the workspace:
"Add": Mark the files as "ToAdd"
"Submit": Submit the selected packages
When submiting changes, a dialog box is spawned allowing you to enter
a changes message

"Revert": Revert the modification


Revert action will spawn a dialog box to select files to revert

"Checkout": Check the file out from the depot


"Get Last Version": retrieve the latest version from the depot
"Refresh Status": refresh the package file status

Information:

All the actions support multi selection


"Read only" packages files can't be modified in SD.
Dor Perforce and other Version Control tools that uses "read only" file permission
to restrict modifications, the user will have to checkout first the package before
modifying it.
The package will have the following icons depending on it's status:

Action Scripts

The scripts associated to each actions are called with the following syntax:
my_script WorkspaceName WorkspacePathActionName[ActionArgs]
WorkspaceName: the name of the workspace
WorkspacePath: the path of the root directory of the workspace
ActionName: the name of the action:
"add": for the "Add" action
"checkout": for the "Checkout" action
"submit": for the "Submit" action
"revert": for the "Revert" action
"get_last_version": for the "Get Last Version" action
"get_status": for the "Get Status" action
The Label set up in the SD Preferences panel (with ' ' character replaced
by '_')
Ex: "My Action" => "My_Action"
ActionArgs: arguments of the action:
"-desc: Description":
A description string.
Used by "Submit" action
"-files: Files":
list of files
"-files_list: File":
a text file that contains a list of files per line

The script have to return some values depending on the action:

"get_status"
return a value depending of the status of the specified file:
0: Undefined status
1: file is not in the depot
2: file is at a previous revision (i.e. not up to date)
3: file is at the last revision (i.e. is up to date)
4: file is checked out
5: file is marked for add
other actions:
0: success
other: error

3D View Preferences
Textures

Max Texture Size: Set the maximum texture size that can be displayed in the 3D View

Post Process

If checked, enables Yebis in the 3D View.

Misc

Defines the refresh rate of the graph

OpenGL

Shaders

Choose the size of your sample table for the shaders.


Please note this depends as well on your GPU and OS.

IRay

Hardware

Defines which processing resources is allocated to Iray between the CPU and/or the detected GPU
(s)

View

Descale Factor

Controls the resolution of Iray (in pixel size) when you are updating the camera.

UI Responsiveness

Controls the refresh rate while moving the camera.

Library Preferences

Refresh Rate: Choose how often the thumbs should be refreshed.

Rebuild Database: rebuild the library database based on all the refenrenced links.

Rebuild Thumbnails: recompute all the nodes thumbnails.


Installation via Command Line
We are using InnoSetup to generate the installer of Substance Designer.
The whole set of parameters that can be used with the installer is available here : http://www.jrsoftware.org/ishelp/index.php?topic=setupcmdline
You should put the license file in the following folder by default: ProgramData/Allegorithmic/Substance Designer/license.key

You can change this location with the following environment variable: SUBSTANCE_DESIGNER_LICENSE

Installing in silent mode (via command line)


The flag to use to perform a silent install is "/SILENT". You can also use the "/NCRC" flag to skip the CRC (verification) of the package.

Example :

SubstancePainter_Installer.exe /NCRC /SILENT /DIR="C:\Installation\Folder\"

The installation path must be using single backslash character to separate folders, otherwise the InnoSetup installer will not recognize
the path.

Floating license
Floating licenses can be deployed in two different ways.

Using one file for multiple computers (Recommended)


1. Put the license.key file in a shared mounted network

Set the following environment variable to point to the license:

For Substance Designer (2017.1 and above): SUBSTANCE_DESIGNER_LICENSE


For Substance Designer 6: SUBSTANCE_DESIGNER_6_LICENSE
For Substance Designer 5: SUBSTANCE_DESIGNER_5_LICENSE

The variable should point to the file. For example, if the license file is on H://allegorithmic/licenses/substance_designer.key, the variable data
should be "H://allegorithmic/licenses/substance_designer.key"
The software should then launch without requiring any activation.

Using one file for multiple computers


By default, Substance Painter releases tokens on a multi-users license if the software is idle for 2 hours.

You can change that value with the following environment variable (in seconds): ALLEGO_LICENSE_IDLE_DELAY

Using one license per computer


1. Install the license.key file on each computer, in the following folder:
- For Substance Designer (2017.1 and above): ProgramData/Allegorithmic/Substance Designer/license.key
- For Substance Designer 5: ProgramData/Allegorithmic/Substance Designer/5/license.key
- For Substance Designer 6:ProgramData/Allegorithmic/Substance Designer/6/license.key
2. Open the traffic to 188.166.128.48 (fixed IP of leyfi-stats-staging.allegorithmic.com) on HTTPS port (443).

This method will require to re-install the license files on each computer in case of an update of the license in the future.

Substance Designer components


Substance Designer 6 handles different kinds of elements to create, store and share your work:
Sub-sections:
Packages: the "*.sbs" working files
Substances : the "*.sbsar" that is the final "ready to use version of your work. Packages
Graphs : workspaces that are used to build substances (either entirely or partially) Graphs
Atomic nodes : main "atomic" elements that compose a graph. Nodes &
Graph instances: "node shaped" instance of a graph that can be used in another graph Helpers
Helpers : elements used in the the graph to organize your work.
Substances
and
Substance
Packages

Packages
A package is the sbs file that will be generated when you save your work.

It can only be opened and edited within Substance Designer.

Package content

By "content" of the package, we all the data the package contains or refers to.

A package contains all the data and information, that are necessary to your project to work properly:

Graphs
links to externals files (mesh, textures,...)

When you open a package, all its content is detailed in the explorer view. The explorer view can contain multiple package at the same time.

Content organization

The package handles the relation between all the elements it contains or refers to:

Links between graphs


Mesh used in 3D viewport
Bitmaps used in 3D viewports
Links to external files

Package are really flexible, and you can organize the content the way you want, so it fits with the way you work (more information on the Explorer
View page).

Graphs
Graphs are used to build Substances: they are at the core of Substance Designer.

Graph data are embedded into a Substance package, which can contain multiple graphs.

Double-clicking on a graph will open its content into the graph view, in order to start developing its
content:
Nodes & Helpers
Nodes and helpers are the elements that you use into a graph to build and organize your substances.

Nodes

Nodes are divided in two families:

Atomic nodes
Graph instances

Nodes are the core elements you will use to define what will be the output of your graph.

You can find more details about Nodes in this chapter.

Helpers

While helpers don't have any impact on the final result of your graph, they are extremely useful to organize your work (thus to be more efficient).

By the time, your graph are going to get more complex, and like a programmer would comment his code to remember which part is doing what,
you will do the same with your graph (at least we strongly recommend you to do so).

Not only helpers will be useful for you, but also for the other possible users in case you want to share your graph.

Frames

Frames are used to visually gather a group of nodes on your graph.

You have the possibility to add A title and a description to your frame.

A good idea is to use regroup into a frame all the nodes that are involved in a specific task of your graph (ex: all the nodes that are
involved in the "snow" generation)

Once created , you can resize a frame by hodling and dragging the right or bottom side, or the bottom right corner.
You can move a frame by holding the mouse on the frame title bar: you will notice that all the the nodes that visually embedded into the frame,
will move as well.

You can delete a frame by selecting and click on the delete key.

Pins

When your graph gets bigger, pins can help you navigate faster.

You can consider a pin as an "Anchor view": just add one pin into your graph, when you want to mark a location to an important place of your
graph.

Then press F2 whenever you want (and wherever you are) to get back to your pin location.

You can obviously add multiple pins at different locations of your graph : pressing F2 multiple times will loop through all the pins of your graph.

If you want to loop backwards, just hold shift while pressing F2.

You can rename a pin by selecting it and changing its name in the parameters.

Once created, you can move or delete a pin, the same way you would do for a regular node.

Comments

As its name suggests, Comments lets you add comments wherever you want on your graph.

Once created, you can modify, move or delete any comment.


Substances and Substance Packages
Substances On this page:

As described in the Overview section, a Substance can be described as a smart texture(s) 1 Substances
generator. 1.1 A Substance file
has a .SBSAR
A Substance file has a .SBSAR extension. extension.
2 Substance Packages
3 Create a Substance

Related pages:

New Substance Wizard


Substances can be directly used in the following products (this may evolve by the time): Publish a Substance
Substance Packages
A Substance package is the file where you will author your Substance(s), and where all the
necessary resources are referred.

A substance package contains one or severals graphs.

The filename extension of a package is .SBS.

Packages (and their content) are listed in the Explorer.

In the example above, the package "New_Substance.sbs" contains 2 graphs:

New_Graph
This_is_my_2nd_Graph

Create a Substance
The creation of a substance has 2 parts:

Authoring the substance. The source file is saved in .sbs format


Publish the substance in .sbsar format

Substance File Formats


Substance Designer stores packages of Substances in one of two file formats: SBS, and SBSAR. On this page:

SBS Format
SBS Format
SBSAR Format
This is the authoring format of a substance, also sometimes called "source file". SBSPRS Format
Any substance that you create will have a .sbs file.

In order to edit a substance, you must then have its .sbs file.

.sbs file can be read only in Substance Designer and Substance Player. If you wish to
use a substance into a substance compatible product, you first need to Publish the
substance.

SBSAR Format

A Substance file has a .SBSAR extension.

This is the standard format of a substance. Substance files have the .sbsar extension.

To open an SBSAR file, use the normal File > Open... command. When you open an SBSAR file, it
will be inserted into your graph as an Instance node.

SBSAR files are heavily optimized for performance and contain only the data required to render
the Substances they contain, thus SBSAR nodes cannot be opened for editing. You should
always save your Substances in the editable SBS format to ensure you can edit them later if
necessary.

To create an SBSAR file, you have to publish the substance.

SBSPRS Format

Files with the SBSPRS extensions are "Substance Preset" files, containing parameter "preset"
information for their associated Substances.

Such files can be read in Substance Player, Autodesk 3ds Max and Maya if you install the free
Substance Bonus Tools.

Publish a Substance

When you publish a substance, make sure that it is compatible with the Substance Engine which is in the software you will import the
substance in.

You can find more information about the compatibility on this page.

Publishing a substance allows you to create a .sbsar file, which can be used in any substance compatible product.

1. To do so, select the package in the Explorer you want to publish and then click on the icon Publish, or press Ctrl+p.
(you can also do right click/Export .sbsar file...)

2. If your package had never been saved, you will be asked to provide a name to save it.
3. You should then enter the name of the Substance file.
4. You can then define some options:
1. Specify the default name of the archive content.
2. Pick the compression mode between auto, best, or none (only affects the sbsar generation processing time, not the performance
of the Substance fil itself)
5. You can define which parameters should be exposed (therefore accessible by the final user)

Output Size (available if the graph is set to relative parent)


Pixel Size
Random Seed
Republish quickly a Substance file

Since Substance Designer 6, you can now re-publish quickly a Substance file with the same previous settings, just by pressing this

button:

Export a .sbs file


When you export an .sbs file, you must make sure that dependencies are exported as well, so that users don't run into troubles when opening the
.sbs on another computer.

The easiest way to export a .sbs file is to right click on the package and chose "Export with dependencies..."

"Export with dependencies" Panel


In the Packages area, you can chose which packages to export.

The Output Directory is the path where the .sbs file will be exported.

Options

Build Archive: checking this option will create an archived package.

Preserved Aliases

Uncheck aliases if you want to export a self-contained package. Use this if you want to export a package that will work on any version of the
Library.

Shortcuts
On this page:
Global Shortcuts
Global
Action Windows Shortcut Mac OSX Shortcut Shortcuts
Graph
New Substance Ctrl + N CMD + N Shortcuts
2D View
Load a substance CTRL + O CMD + O Shortcuts
3D View
Quit Ctrl + F4 CMD + Q Shortcuts
Save Ctrl + S CMD + S

Undo Ctrl + Z CMD + Z

Redo Ctrl + Y CMD + Y / Shift + CMD + Z


Graph Shortcuts

Scene Shortcuts

Action Windows Shortcut Mac OSX Shortcut

Zoom MW / Alt + RMB + Move Up MW / Alt + RMB + Move Up


/Down /Down

Fast Zoom Shift + MW / Shift + Alt + Shift + MW / Shift + Alt +


RMB + Move Up/Down RMB + Move Up/Down

Pan MMB + Move / Ctrl + RMB MMB + Move / CMD + RMB


+Move +Move

Reset Zoom Z Z

Fit in View F F

Paste Ctrl + V CMD + V

Context Menu RMB RMB

Filter Menu Spacebar Spacebar

Link Creation Mode

Action Windows Shortcut Mac OSX Shortcut

Standard 1 1

Material 2 2

Compact Material 3 3

Selection Shortcuts

Action Windows Shortcut Mac OSX Shortcut

Copy Selection Ctrl + C CMD + C

Duplicate Selection Ctrl + D CMD + D

Duplicate without links Shift + Ctrl + D Shift + CMD + D

Delete Selection Delete Delete

Delete with keeping links Backspace Backspace

Dock/Undock nodes D D

2D View Shortcuts
Action Windows Shortcut Mac OSX Shortcut

Zoom MW / Alt + RMB + Move Up MW / Alt + RMB + Move Up/Down


/Down
Fast Zoom Fast Zoom Shift + MW / Shift + Alt + RMB + Move Up
/Down

Pan MMB + Move / Ctrl + RMB MMB + Move / CMD + RMB +Move
+Move

Reset View Z Z

Fit in View F F

Texture Space Space


repetition

3D View Shortcuts
Action Windows Shortcut Mac OSX Shortcut

Pan MMB + Move / Ctrl + RMB + Move MMB + Move / CMD + RMB + Move

Zoom MW / Alt + RMB + Move Up/Down MW / Alt + RMB + Move Up/Down

Rotate Alt + MMB + Move / Alt + LMB + Move Alt + MMB + Move / Alt + LMB + Move

Zoom Light Shift + RMB + Move Up/Down Shift + RMB + Move Up/Down

Rotate Light Shift + LMB + Move Shift + LMB + Move

Resources
Substance Designer allows importing several kind of resources:
In this page:
Bitmap files
PSD files
Link resources
Vector Graphics files
Import
Mesh files
resources
Resource
quality and
You can use those resources in Substance Designer by drag&dropping them on your Package in format
the Package Explorer either from the Library, or from outside Substance Designer. Importing PSD
files
By doing so, you will be proposed to either Link or Import resources, depending on the kind of Import Meshes
resource.

Import Link

Bitmap Yes Yes

PSD Yes Yes

Vector Graphics Yes Yes

Mesh No Yes

Link resources
If you chose to link a resource, Substance Designer will respect the following actions:

Resource files will be updated from their path when you will publish the substance. As a
consequence, if the file was removed or changed since you linked it, the resource
will not be embedded in the substance file.
Linked files will be updated in the Explorer and in the Graph as soon as they change. As a
consequence, you can for example paint a bitmap in another painting software, save the
file, the resource will be automatically updated in the Explorer.
When you share a .sbs file, the other users must be able to access the resources at the
same location.

Import resources
If you chose to import a resource, the resource will be copied in a folder next to the .sbs file:

Resource files will be updated from this directory when you will publish the substance. A
s a consequence, if the file was removed or changed since you linked it, the
resource will not be embedded in the substance file.
When you share a .sbs file, you should also provide the resource folder along with the .
sbs file.

Resource quality and format


You can change the quality and format of a resource by selecting it in the Explorer and then
changing the format in the parameters window. For the format, you can choose "Raw" or "JPEG."

Raw uses the compression of the resource.


JPEG allows you to set a compression. The default value of zero is the same as using a
JPEG quality of 75% in Photoshop. Adjusting the slider to 1, will result in 100% JPEG
quality.

Importing PSD files


When you import a PSD into Substance Designer, a window displaying all the layers from the PSD
appears:

All the layers are displayed, and you can choose which one you want to import by ticking the
checkbox.

Make sure to click on "Full frame" at the top of the window to not have your layers
cropped in transparent areas.

Each layer will be created as a new bitmap resource in the Explorer.


Resources are creating according to the following model:

A "flat" PSD resource


A resources folder named with PSD_FILE_NAME + _Resources
All the layers inside the resource folder

Import Meshes
To import a mesh, drag&drop your mesh file on the substance package. It will automatically create
a folder called "Resources" with the new mesh resource inside.

Double-clicking on the mesh file will open it in the 3D View.

Substance Designer 4 currently supports only .obj and FBX 2012 for mesh imports

The interface
Substance Designer offers a clean -yet efficient- interface, with all the necessary features are
directly accessible to achieve your work: In this section:

The Welcome
Dialog
Exploring the
Substance
Designer
Interface
Customizing
your
workspace
The Explorer
The Graph
view
The Library
Parameters UI
2D view
3D view
The Main
Menu
Dependency
Manager

In the following pages, we will review each element of the interface, and how to customize the
interface for your own needs.
Sub-sections:

The Welcome Dialog


Exploring the Substance Designer Interface
Customizing your workspace
The Explorer
The Graph view
The Library
Parameters UI
2D view
3D view
The Main Menu
Dependency Manager

The Welcome Dialog


he Welcome Dialog box welcomes you when you launch Substance Designer. On this page:

It is here to help you to start working with the software and access most useful links. Learn Tab
Create Tab

In this section:

The Welcome dialog has three sections: the News section, the Learn section, the Create section. New
You can select which is shown by clicking the respective tab at the top of the dialog. Substance
Wizard

Learn Tab
The Learn section is shown by default, and has links to Tutorials, the User Guide, keyboard
shortcuts, example Substances, our Forums, and our Website.

Create Tab
Click the Create tab to show the Substance creation options.
This tab includes commands to create a New Substance, a new Composite Substance, or to load
other documents, such as Substance Archives.

The right hand panel shows a list of recently opened Substances for quick access.

New Substance Wizard

Click on Add a new Substance in the main menu, and the following wizard will appear:
Graph Template:

A template sets different outputs in the Graph Outputs part.

You can add your own templates in the Project Preferences.

Graph Properties:

Graph name: Fulfill the "Graph Name" field with the name of your graph. Note that you can change this later on.

Size mode:

You can use 2 size modes in Substance Designer

Relative to Parent
Absolute

Please refer to the Output Size page for more information.

Width / Height:

Those 2 fields are editable only in Absolute size mode.

They define the resolution of the substance. Note that the resolution can be changed later on.

In "Relative to Parent" size mode, the default size when creating a substance is set to 256.

Format:

This field define the number of bits per channel:

Relative to Parent
8 bits per channel
16 bits per channel

Graph Outputs

This part displays the outputs available in your graph, according to the template you choose.

Please note that you can at any moment add or remove some outputs once your graph is created.

Exploring the Substance Designer Interface


Substance Designer's Interface is split in 6 parts: On this page:
The Explorer
The Library The Interface
The Graph The Main
The 3D View Menu
The 2D View
The Parameters
Related Pages:
Related pages:

The Explorer
The Graph
The Interface View
The Library
The 2D View
The 3D View
The Main Menu
The Main Menu bar appears either at the top of the screen on Apple's OS X...

...or inside the main containing window on Microsoft Windows. Both offer the same commands.

File Menu

New > New Substance - Creates a new, empty, Substance.

Open... - Open an existing Substance or Substance Package.

Recent Packages - Displays a list of recently opened Packages. Click on an entry to open it.

Save All - Saves all open Substances and Packages.

Reload Resources - Forces Substance Designer to reload all resources, including bitmaps and
SVG data.

Reset - Reset Substance Designer to its default state.

Exit - Close Substance Designer.

Edit Menu

Undo - Undo last operation.

Redo - Redo last undone operation.

Tools Menu

Suspend Engine - Suspends the rendering engine. This can speed up editing of complex
Substance graphs.

Flush Rendering Cache - Substance Designer caches the results of rendering each node to speed
up later renders. Flushing the cache forces re-rendering of every node in the Substance graph.
Switch Engine... - Offers a choice of rendering engines, including multiple DirectX engines
(Windows) and OpenGL (OS X) as well as the reference software ("SSE") engine.

Remote Engines... - Lets you select a rendering engine running on another computer to spread the
rendering work.

Locate Player... - If you wish to use Substance Designer's integration with Substance Player, use
this to tell Designer where Player is installed.

Preferences... - Opens the Preferences dialog box. (See Preferences section for details.) This
dialog is accessed from the Substance Designer menu on OS X.

Windows Menu

New Explorer - Opens a new Explorer tab.

New 3D View - Opens a new 3D View tab.

Reset Layout - Resets the workspace to the default layout.

Packages - Show / hide the Packages panel.

Graphs - Show / hide the Graphs panel.

Parameters - Show / hide the Parameters panel.

3D Views- Show / hide the 3D Views panel.

2D Views- Show / hide the 2D Views panel.

Gallery- Show / hide the Gallery panel.

Help Menu

User Guide... - Shows the User Guide.

Shortcuts... - Shows a list of keyboard shortcuts.

Samples - Lets you choose where to install the sample Substances.

Tutorials - Opens up the Tutorials section of the Allegorithmic website.

Substance Store - Opens your default web browser to Allegorithmic's Substance Store.

Welcome Screen... - Re-opens the Substance Designer Welcome dialog box.

About Substance Designer... - Displays information about Substance Designer.

Report a Bug... - Opens the bug report page on the Allegorithmic website.

The Main Toolbar


At the top you will see the usual window widgets and (on the Windows version), the main menu.

Immediately below this is the Toolbar, which provides quick access to key menu commands.

The buttons are, from left to right:

Add new Substance to current Package.


Add new Composite Substance.
Open Package(s).
Save All.
Undo.
Redo.

The Panels
The main display is split into multiple panels. On the left are the Explorer and Gallery panels. In the
top centre of the window is the Graph panel, which is directly above the 3D Views and 2D Views
panels. In the centre of the window are the 2D Views (top), the 3D Views (lower left) and Graphs
(lower right) panels.

Finally, we have the Properties panel displayed to the right of the window. This displays the
properties—which Substance Designer refers to as Parameters—for Substances and their
components.

Panels support multiple tabs—hence "Views" instead of "View". Additionally, each panel can be
individually detached from the application’s main window—double-click on the dark gray title bar—
and relocated to another display if you wish. (The same double-click action will restore the panel to
its original location.) You can resize panels by dragging the dividers between them.

At the lower edge of the Substance Designer window is the Status Bar. This displays useful
information, such as the cache state and a progress bar for the Substance renderer.

Common Toolbar Features


All the panes in Substance Designer have a couple of common toolbar icons. These are to the
right of the top-most toolbar in each panel:

Persistence

The pin to the right makes the panel persistent. By default, Substance Designer will reuse existing
panels to display items, rather than opening new tabs. For example, double-clicking on a
Substance's graph in the Explorer will reuse the current Graph View tab when possible. However,
if the Persistent setting is active, Substance Designer will avoid reusing that tab and create a new
tab instead.

The downward-pointing triangle to its left opens a menu that may contain one or more commands
specific to the panel. All panels include a "Persistent" option that provides the same functionality
as the pin icon.

The Graphs panel's menu is shown below:

Toolbar Truncation
Sometimes, a toolbar doesn't always fit in the space available. In such cases, the toolbar is
displayed in a truncated form, with the missing functions under a menu labeled as >>, to the right
of the toolbar. Most of the toolbars in Substance Designer will truncate in this way.

Customizing your workspace


Substance Designer provides different ways to adjust the interface in order to fit perfectly with
your own workflow. In this page:

The Windows
menu
The Windows menu Duplic
ating
The windows menu gives you an easy access to all the available within Substance Designer: a view
Reset
the
interfa
ce
Detach a view
Detac
h via
the
Title
bar
Detac
h via
the
Undoc
k
Windo
w
button
Maximizing a
view
Close views

While most of them are displayed by default, you will see that there is few additional ones that can
be useful in specific conditions.

Display/Hide a view
In order to display or hide a specific view, just click on its name in the Windows menu.

If a view is already visible, a Check sign ( ) will appear on its left.

Duplicating a view

The following view can be duplicated to display a different content.

Just choose which view to duplicate in the Windows menu:

Another way that works for all the view is to pin it:

Once a view is pinned, you just have to select another element that is supposed to interact with
this view, and a new one will be created.

Reset the interface

You can also reset completely the interface by clicking on Reset Layout:
Detach a view
There is two ways to detach a view in SD5:

Click on the view title bar and drag the view.


Click on the the Undock window icon ( ) located in the top right of the view.

Detach via the Title bar

Detach via the title bar is really handy, especially if you want to directly re-dock your view.

Just left click and drag the view: and a blue overlay will appear, to give a visual feedback, so you
know where the view will be re-docked when you release the left button:

If you release the left button while outside of the interface, the view will be completely
undocked from the interface.

Just drag it again over the interface to redock it, or click on the Dock Window on the top
right corner:

Detach via the Undock Window button

You can also detach any view by clicking on the Undock window icon ( ) on top right of the
view.

Detaching the view this way, the view doesn't dock itself to the interface (unless you move it).

Maximizing a view
When you undock a view, a new icon appear on the top right that will maximize the view, so it
occupies the full screen:

To get back to the original size, just click on the icon


Close views
You can close view by clicking on the X icon located on the top right of the view.

The Explorer
The Explorer view shows all the resources involved in your substance(s) creation.
In this page:

Erreur de création de
la macro 'toc'

[com.ctc.wstx.exc.
WstxLazyException]
com.ctc.wstx.exc.
WstxUnexpectedCharE
xception: Unexpected
character ';' (code 59)
expected '=' at [row,col
{unknown-source}]:
[5,19654]

It composed of one main panel and two secondary (hidden) panels:

User's Packages
Dependencies
Information

User's Packages
The User's packages panel displays all the resources used and generated by each package
(which are your sbs files).

As can notice the resources are organized following this hierarchy:

Package
Graph
Outputs
Resources (folder)
Resources, (bitmaps, meshes, etc...)
Other Package
etc...

Don't forget that you can store multiple graphs inside a package.
This is extremely handy to organize your projects whether you want to gather multiple
graph around a specific theme (ex: "Leaves.sbs), or to split your work into different sub-
graphes.

Packages
As you have seen above, a package contains all the needed resources.

Create a package

The is different ways to create a package:

Right click on the explorer then "New package"


Or choose "New Substance" in the "" menu

Package options (right-click)

Right-clicking on a package gives you access to the complete list of options:

Creating new contents

All the resources you can create are accessible through this menu:

You can create the following resources:


Introduced in SD 2017.1, creating a new 3D scene from a primitive allows you to configure a
specific setup for this primitive, that you can call back whenever you want.

Import Resources

Importing options are under this menu:

You can import the following types of resources:

Link Resources

Linking options are located under the following menu:

You can link the following types of resources:

Learn more about the differences between Importing and linking.

Reload
This reloads the package, without unsaved changes.

Save/Save As

Use it to save the package.

As star (*) will be displayed next to the package if some changes have not been saved.

Don't forget to save your package when you see this *, to not lose your work when you

close Substance Designer!

Publish

Will publish your package as a sbsar standalone file.

Export to Substance Share

This menu contains gives you the ability to upload your work to the Substance Share website.

The submenu let you choose to either export the sbsar or the sbsar and the sbs:

More information about Substance Share export here. (link to add)

Export with dependencies

exports the packages with all the necessary dependencies, to the chosen location.

Use this option if you want to share or releocate your SBS while making sure to get all the
necessary resources to work properly.
Copy

Deprecated: you cannot copy a package

Paste

Use this option to paste the last copied package resource.

Close

To close a package and remove it from the Explorer.

Compute Outputs

Use this to refresh the outputs in the Explorer

Show in Explorer/Finder

(This works only for packages which have been saved at least once)

Show the .sbs file in the Explorer/Finder OS System.

Dependencies

Open the Dependencies panel.

Graphs

A graph is automatically added to your package when you click on the Add a Substance icon in

the main toolbar.


If you wish to create new graph by yourself, you can do it by right clicking on a package and chose

New/Graph.

Double-click on a graph to display it in the Graph View.

When you right-click on a graph, the following actions are possible:

Open

will open the graph in the graph view

Copy

Copy The Graph into the memory buffer

You can paste a graph by right-clicking a package and select "Paste"

You can paste a graph either on the same package to duplicate it (will be named
"graphName_1"), or on a different package.

Remove

After confirmation, will delete the graph.

Rename
Use this option to rename the graph

View Outputs

View outputs of the current graph in the 3D viewport.

Compute Outputs

Recompute the outputs of the current graph

Export Outputs

Open the Export Images window. (Add link here)

Explore

This opens a new Explorer tab with just the graph inside.

Resources

The Explorer shows all the resources which are used in your graph:

Bitmap files

PSD files

Vector graphics files

3D Mesh files

A resource can either be Imported or Linked (Except for 3D Meshes which can only be linked).
By right-cliking on a 3D Mesh, you can have access to the baking options. Just click on
"Bake Model information.

More information in the Baking Tools section

Play the Substance within Substance Player

Click on the icon to launch Substance Player and play with

your graph, as if it were a .sbsar file.

If your have added some animation parameters to your graph, the only way to vizualize
them is by previewing them in Substance Player.

Dependencies

You can display/hide the Dependencies panel by clicking on this icon

at the bottom of the Explorer.

Information

You can display/hide the Information panel by clicking on this icon

at the bottom of the Explorer.


This panel shows all the needed information about the selected package or resource.

The Graph view


In this page:

The canvas
Naviga
The Graph is arguably the most important view of Substance Designer : tion
Interact with the graph
this is where you are going to build you Substance by connecting nodes together ! The Menu bar
Setup the Graph zoom
Nodes information Dis
Links Display and con
Naturally this is the view that occupies the biggest percentage of your screen space (at least by The Reset Button
default): Tools menu
The
Filter
bar
Filtering by type
Filtering by parameter
The PSD Exporter
The
atomic
nodes
Toolbar
Using the node Toolb

In this section:

Controls of the
Graph View
Create a graph
Exporting
Bitmaps and
PSD
Graph
parameters
Manipulating
graph elements
Output Size
The
Performance
Profiler

The canvas
The canvas is where you will add, organize and connect nodes together in order to create your
substances.

Navigation

Interact with the graph (pictures to add)

Panning:
hold middle mouse button and pan
Zooming:
use the mouse wheel

The Menu bar


The menu bar gives you an easy access to some features that will affect the graph view.
Setup the Graph zoom level

The first two buttons of the Display Options bar ( ) set the zoom level of the graph:

The left button will set the graph to fit the set the zoom to fit the selection (or the full graph
if nothing is selected)
The right button will set the zoom level to the default 100% value

Nodes information Display

Allows the user to able or disable the information which is display around each node:

"Display connector name": if enabled, the name of the input(s) and output(s) will appear
when you hover the node.
"Display Node size": if enabled, the size of the node (in pixels is displayed below the node)
"Display Timings": if enabled, displayed the time it took to process the last rendering of the
node

Don't forget that the expressed timing is influenced by the power of your computer, and
therefore can be different on another one.

That said, it is a great way to compare the process timing of each node to identify some
potential performance "bottlenecks" in your graph.

Links Display and connect mode

SD5 offers different ways to handle the links display and connection:

Standard Connection Mode

The standard mode is the most simple one : you create a link between and input and an output
and that's it: the link is created !
Material Connection Mode

This mode has no influence on the way links are displayed, but it will affect the way the links are
connecting.

Basically, if you intent to to create a link from a node that has multiple outputs, SD5 will analyse
the destination node, and try to connect the other outputs to the most appropriate destination.

Compact Material Connection Mode

Like the previous mode, the compact material connection mode will intent to "smart-connect" the
links.

But beyond this, this mode will have a visual impact: each time there is multiple links between 2
nodes, these links will be merged in to one single green link.
As you can see the compact material is really useful to get a cleaner graph by displaying less links.

The Reset Button

Reset All

This option will reset the cache of Substance Designer and therefore, the timing of the nodes as
well as the thumnails preview:

Reset Timings

will reset the tinming of each node:


Parent size

Introduced in substance Designer 6, the Parent Size parameter, let you specify the size of the
parent application while working in the graph.

This is extremely useful to visualize your graph at the desired resolution, without having to modify
the parameters of the graph itself.

New in SD 2017.1: the parent size is now stored within the graph resources rather than Sd local
registry, so you will get back the size you defined when you reload your graph.

Tools menu

Clean

The clean button will remove all the nodes which don't have any impact on the final outputs
computation:
Export/Reexport Outputs

Export Outputs... will open The related Export menu window.

For more information about the export Outputs menu, please go to this page.

Reexport Outputs will reexport all the outputs, based on the rules set in the Export Outputs menu

The Filter bar

You can show/hide the filter bar by clicking on the icon


When you start to get a complex graph, the filter bar can be really useful to find a specific element,
as it will highlight some elements according to their types and/or the paramaters they use.

Filtering by type

(Set to All by default)

The filtering by type allows you to hightlight the atomic node type you have chosen:

Filtering by parameters

(Set to All by default)

Filtering by parameters, will highlight the nodes that using a built-in or custom parameter:

The PSD Exporter

This button will open the PSD Exporter panel on the right of the graph

For more information about the PSD Exporter, go to this page.


The atomic nodes Toolbar

The atomic node bar is just another handful way to access the atomic nodes.

Using the

Using the node Toolbar ?

There is differetnt ways to add nodes from the toolbar:

you can simply drag'n'drop it:

You can click on the node and it will appear in the middle of the graph:

When a node is already selected...

If a node is already selected, clicking a node in the toolbar will link it next to the selected node:
If you don't the node to be connected, you can hold shift while clicking:

Controls of the Graph View


Create a graph
Exporting Bitmaps and PSD
Graph parameters
Manipulating graph elements
Output Size
The Performance Profiler

Controls of the Graph View


Graphs are displayed in the Graph View.

A graph looks like this:


Read how to create a graph.

On this page:

Working with nodes


The toolbar
The context menu
Navigating in the
graph
Frames
Comments

Related pages:

Graphs and Sub-


Graphs
Nodes

Working with nodes

Create a node

You can add nodes in the graph in 3 ways:

drag&drop a node/resource from the Library


press the SpaceBar and choose a node
drag&drop atomic nodes from the nodes toolbar

Search a node from the library


Split Points (Alt + Shift)

Delete a link

To delete a link, select it and press the delete key.


Move links from a node output to another

Use shift + click to move multiple links from one output to another

Copy a link from a node input

Use Ctrl + click to copy a link from an input to another input.

Swap links

Use X to swap two selected links.

Rectangle links
Select Parent Nodes/ Create Graph from selection

Create new node over a selected link


The toolbar

Focus

Click on this icon to focus the view of the graph on the selection. If there is no selection, the view will be focused on the entire graph.

Zoom 1:1

This icon allows you to focus the view on the entire graph.

Information

You can choose to display Connector Names, the Node Size, and the approximate processing time directly on the graph.

When Display Node Size is enabled, the resolution is displayed under each node, with the output format.
Link Creation Mode

You can switch between the different link creation modes.

Profiler

The Profiler allows you to check how long your substance takes to compute. This is very useful if you want to use the .sbsar format for your game.

Finder

Use this feature to look for some nodes into your graph.

You can perform a search by type of nodes and type of custom parameters.

The context menu


RIght-Clicking in the graph will display the following context menu:
Add node

Allows you to add nodes in the graph.

You can also display the node menu by pressing the spacebar.

Add Comment

Allows the user to quickly add a comment on the graph

Add Frame

Allows to create a frame around the selected content.

Add pin

Allows you to add a pin on the graph.

Paste

Paste your selection, with both nodes and links.

See Copy Selection before performing the Paste action.

Use Ctrl + V / CMD + V to perform this action.


Paste without Link

Paste nodes which have have been copied, without the links.

Use Shift + Ctrl + V / Shift + CMD + V to perform this action.

Select All

Select all the graph elements.

Use Ctrl + A / CMD + A to perform this action.

View outputs in 3D View

Use this command to display your outputs in the 3D View.

Compute Node Thumbnails

Pins

Display the list of pins in the graph.

Previous Pin

Allows you to navigate in the graph and reach the previous pin.

Use Shift + F2 to perform this action.

Next Pin

Allows you to navigate in the graph and reach the next pin.

Use F2 to perform this action.

Copy Selection

Copy the selection into the clipboard.

Use Ctrl + C / CMD + C to perform this action.

Delete Selection

This command deletes the selection.

Advanced Delete Selection

This command deletes the selection, and reconnects the links to the next nodes.

Duplicate Selection

This command allows you to duplicate the selection, for both nodes and links.

Duplicate Selection without Link

This command allows you to duplicate the selection, without links.


Reload Resources

Navigating in the graph


Use the following commands to navigate in the graph:

Action Command

Zoom MW

Fast Zoom Shift + MW

Reset Zoom Z

Pan MMB + Move

Fit in View F

See the list of all the shortcuts

Navigation Pins

Navigation Pins work like bookmarks in a book or web browser: they're a convenient way to record a position in a graph. When working on large,
complicated graphs, using pins can help speed up navigation.

Adding a pin to a graph places a pin symbol at the chosen location, with a label alongside it.

Create a pin

1. Right-click in the graph to display the Context menu, then chose "Add node" and "Navigation Pin" down the list.
2. You can drag the pin wherever you wish.
3. Double-click on the label to change it.
4. Press Enter when you're done editing the pin's label.

When a graph has navigation pins added to it, you can jump from pin to pin by pressing F2 (forwards) or SHIFT+F2 (reverse order).

The pins are also accessible directly from the Pins submenu in the graph's context menu, by right-clicking in the graph view.

Frames

Frames allow to regroup nodes and move them altogether.

To create a frame, chose Add frame in the node menu: right-click->add node->add Frame

You can access the frame's properties by double clicking on the top frame bar.

Title Visible: Chose wether to display the title of the frame or not
Title: The title of the frame
Description: The description will be displayed in the frame
Frame Visible: If not visible, frames behave as Comments.
Frame Color: Chose the color of the frame.

New in SD 2017.1: you can now resize a frame, by selecting any corner:
Comments

A comment displays a simple text comment in a box on the graph.

To create a comment, chose Add Comment in the node menu: right-click->Add node->Add Comment

As with Navigation Pins and Frames, you can drag a comment anywhere you wish, and double-click inside it to change its content. (Use Shift
+ Enter to insert a carriage return in the comment. Hitting Enter on its own will end the editing process.)

An example of a comment is shown below, revealing its author's taste for Italian food:

Comments allow you to document your graph, so that others can understand how it works.

Use comments and frames if you wish to share your .sbs files, it will be very useful!

Create a graph

Create a graph
A graph is created by default when you create a new substance.

1. Click on Add a new substance in the toolbar


2. Enter the name of the graph in the "New Substance" box

This will create a new package, containing a graph. When you click on the graph, you will display it in the Graph View.
A substance can contain several graphs. To add a new graph, right click on the package and chose New -> New Graph.

Sub-Graphs / Instances

Including other graphs in your own graph

As we saw earlier, Substances can contain other Substances and need not always be completely independent, or even standalone entities. You
might build a Substance that performs a particular process you’d like to use in other Substances. Or perhaps you’ve created a particularly useful
pattern or noise that you’d like to use as an input in other Substances.

To use another Substance in your own Substance, simply drag&drop the .sbs Package in the graph.

Instancing

An Instance Node represents a sub-graph. Any Substance can be instanced in this way; there are no special requirements, although some
graphs are more suited to being used in this way than others.

Instanced Substances appear as a red node like the example shown above. The original Substance’s name appears above the node. The
number and type of input and output nodes will match the instanced Substance’s own Input and Output nodes.

Any changes made to the Instance’s Parameters will affect only the Substance that instance is in.

You can create an Instance by simply dragging and dropping a Substance’s graph from the Packages panel or the Library.
Exporting Bitmaps and PSD
Substance provides tools to help you in the process of exporting your work

(Auto) Exporting the outputs


The export output tools can automate the process of exporting your different outputs.

Indeed, it can be extremely useful in the context of a production, where naming conventions and files organization are extremely important.

Access the Export Outputs tool

You can export bitmaps from the graph view with the Cog icon.

Export Bitmap Window

The top part of the tool let you define some automation rules to apply when exporting the outputs.

Destination: Set the final path of the bitmaps

Format: Chose the export format

Pattern: Chose the name pattern of the bitmap files created.

Automatic Export when Outputs change: Check this option if you want to visualize bitmaps in another tool while you still work in Substance
Designer.
Outputs

Let you choose which channels to export.

The PSD Exporter


While we are confident you can use Substance Designer for all your texturing work, there is time when you need to open or share your work into
more classic image editing software like Adobe Photoshop.

Therefore, SD5 can do more than exporting your work as PSD : you can build you own -custom made- PSD where you can precisely define what
you want to put on each layer you create !

Opening the PSD Exporter

To access the PSD Exporter, click on the cog in the Graph panel and chose PSD Exporter.

A new panel will appear on the right of your graph:


You can export PSD files from your graph, with the following parameters:

organization of the layers


blending mode of each layer
opacity of each layer

Layers

The layers part allows you to create a layers tree, and choose which node should be transformed into a layer at export.

To create a layer from a node, you can either drag&drop the node with right-click in the PSD Explorer, or select nodes and chose "Create layers
from selection".

Note that the alpha of the node will be put the in the mask of the layer.

For each layer, you can set the blending mode and the opacity. The blending mode are the ones which can be read by Photoshop.

Export PSD

You can chose the name of the PSD in the File field, and click on "Export".
Export bitmaps
You can export bitmaps from the graph view with the Cog icon.
Export Bitmap Window

Destination: Set the final path of the bitmaps

Format: Choose the export format

Pattern: Choose the name pattern of the created bitmap files. You can click on the small arrow at the right of this field to setup your own pattern:

Automatic Export when Outputs change: Check this option if you want to visualize bitmaps in another tool while you still work in Substance
Designer.

Outputs

You can choose which channels to export.


PSD Exporter
You can export PSD files from your graph, with the following parameters:

organization of the layers


blending mode of each layer
opacity of each layer

To access the PSD Exporter, click on the cog in the Graph panel and chose PSD Exporter.
PSD Exporter

Layers

The layers part allows you to create a layers tree, and choose which node should be transformed into a layer at export.

To create a layer from a node, you can either drag&drop the node with right-click in the PSD Explorer, or select nodes and chose "Create layers
from selection".

Note that the alpha of the node will be put the in the mask of the layer.

For each layer, you can set the blending mode and the opacity. The blending mode are the ones which can be read by Photoshop.

Export PSD

You can chose the name of the PSD in the File field, and click on "Export".
Graph parameters
A graph has several parameters that you can modify.

You can find those parameters by clicking in the graphs: parameters will be then displayed in the Parameters view.
Base Parameters

Output Size

This parameter allows you to chose the size of the graph. Read more about the Output Size.

Output Format

Allows to chose either 8 bits per channel or 16 bits per channel.

Pixel Size

Defines the ratio of the pixel size. We recommend to let it to 1.

Tiling Mode

Defines the tiling mode of the substance:

No Tiling
Horizontal Tiling
Vertical Tiling

Both horizontal and vertical tiling

Random Seed

Defines the default value of the Random Seed.

Attributes
Identifier

This is the name of the graph. An identifier must be unique (you can't have 2 graphs with the same Identifier in the same package). The Identifier
is used as the graph's name in the Explorer.

You can use only the following characters for the Identifier: A-Z, 1-9, @$%[{]}_-

Output(s) Computation

This parameter is set to Yes by default.

If you don't want any output, set this parameter to No.

Setting the parameter to No can be useful when there are several graphs in one package, and you do not want some of those graphs to be
displayed in the .SBSAR.
Description

This is the description of the graph. this description is used by the Library and some substance compatible software.

Category

You can this field to put your graph in a category.

Label

In many Substance compatible software, the label is used instead of the Identifier to display the name of the graph. A label is not unique, and can
contain kind of characters.

If you rename a graph in the Explorer (right-click -> Rename), you may also think about changing the label!

Author

You should use this field to put the name of the author.

Author URL

You can put a URL to reference the author.

Tags

You can use this field to add your own tags.

User Data

You can use this field to add your own information.

Show in Library

Will define if this graph has to be shown in the SD library (if the saved substance or Substance package is placed in an accessible place.

Icon

This option allows you to put an icon that will be used by the Library.

The icon is saved only for .SBS file. If you publish a .SBSAR, the icon is dismissed.

Visibility & computation for sbsar...

When it comes to sbsar the settings of outputs computation & Show in Library, you can refer to this:

Compute True + show True = visible in the library


Compute True + show False = invisible in the library, but visible anywhere else (you can drag& drop in the explorer or in another graph)
Compute False + show True = invisible everywhere (including the library)

Input Parameters

All the parameters which have been exposed are listed here, and can be reordered.

The icon allows you to see the parameters in a preview mode.


Read how to expose a parameter.

Input Images

In this part, all the Input images (Color Input and Greyscale Input nodes) are listed.

You can reorder them by drag&drop.

Output Images

In this part, all the outputs of the graph are listed.

You can reorder them by drag&drop.

Manipulating graph elements


Let's make a tour of all the different ways you can interact with the nodes in the graph:

Select Elements (pictures to add)


Left click on an element: select the element.
Ctrl+ left click : Add element to the selection
Hold left mouse button + drag : draw a selection zone on the screen

The right mouse button menu


Right-clicking on the graph gives you access to some options:
As you can see, the right menu is divided in 3 main sections:

The first sections displays options to add elements to the graph


The second section contains different types of features that we'll detail below
The third section is active when something is selected on the graph, and offers you some options to select, copy or delete nodes.

View outputs in 3D View

Use this option to preview the result of your graph in the 3D viewport.

Any time you add or delete an output, you need to activate this fonction.

Make sure that your outputs are compatible with the selected material type.

Compute Nodes Thumbnails

Will refresh the different thumbnails of the graph

Clear Nodes Thumbnails


The Nodes

Create a node

You can add nodes in the graph in 4 ways:

drag&drop a node/resource from the Library


press the SpaceBar and choose a node
drag&drop atomic nodes from the nodes toolbar
Right-click on the graph, then Add Node

Search a node from the library


Create new node over a selected link

Select Parent Nodes/ Create Graph from selection


Nodes Right-Click options

Most of the nodes options are directly accessible by right-clicliking on them:


Let's explore the nodes related options of this menu:

View input in 2D View

(Also accessible by double clicking directly on the node)

This option displays the result of the node in the 2D view.

If you do a simple click on a node, you will have access to its parameters, but it will not affect the 2D view, meaning that you can
control the settings of one node while viewing another one.

This is extremely handy to check the impact of a node on another one.

View in 3D view

(Also accessible by right-clicking/hold + drag to the 3D view)

By default, the 3D view displays the results of the graph outputs, but with this option, you can decide to preview the node you want in the 3D
viewport.

You will then be prompted which type of usage the map should be used for.

To come back to the default view, just right-click to an empty space of the graph, then "View outputs in 3D View"
Reset and view in 3D view

Will reset the material parameters, before to preview the current node in the 3d view.

The Links

Similarly to the nodes, the links offer lots of different ways to manipulate them:

Create a link

The simplest to create a link is to left click on the source node pin, then on the destination node pin.

A link can only be made between an output (located on the right of the nodes) and an input (located on the left).

The connection order is not important: you can link from input to output and conversely

Add Split Points

You can add a split point:

by right-clicking on the link and select "add pin".


by holding Alt+Shift, then dragging one of the appearing pin points.

Delete a link

To delete a link, select it and press the delete key.


Move links from a node output to another

Once the links are created, you can still reorganize them:

Move links to another pin

Use shift + click to move multiple links from one output to another

Copy a link from a node input

Use Ctrl + click to copy a link from an input to another input.

Swap links

Use X to swap two selected links (or right-click/"Swap")

Rectangle links

You can switch between curvy or rectangle by clicking on the corresponding button in the graph menu bar:
Link Creation Modes
Substance Designer allows you to work in 3 different link creation modes in the graph:

Standard (Legacy mode) - shortcut "1"


Compact - shortcut "2"
Compact Material - shortcut "3"

You can chose switch between modes at any moment in the graph toolbar by clicking on the icon , or with shortcuts.

The modes

Standard Compact Compact Material

Inputs Every inputs are visible Every inputs are visible Only 1 input per group

Outputs Every output are visible Every outputs are visible Only 1 output per group

Links Every links are visible Every link are visible Only 1 link per group

Connections Each input/output needs to be All the inputs/outputs from the same All the inputs/outputs from the same
connected one by one group group
are connected at once, depending are connected at once, depending
on the Usage. on the Usage.

Groups

You should assign groups to the inputs and outputs in order to use the Compact mode and Compact Material mode.

You can assign a group to an output or an Input Color/Greyscale in the Attributes parameters of the node.

A group can be any string value.


Usage

The input/output usage is used to automatically plug the multiple links between nodes in Material and Compact Mode. If the usage between both
input and output matches, a link will be created.
Output Size
The concept of Output Size is very important, we recommend you to pay attention to this
page.

Graphs and certain Nodes have 2 size modes:

Relative to Parent
Absolute

On this page:

Relative to Parent
Output Size

Related paged:

Graphs and Sub-Graphs

Those 2 modes depends on whether you want your element (graph or node) have a fixed resolution (Absolute), or a dynamic resolution (Relative
to Parent).
As a consequence, the resolution of your substance depends on the Output Size parameter of the graph.

Read about graphs if you are not familiar with them.

Relative To Parent
You should choose this mode if you wish to:

be able to adapt the resolution of the substance at any moment during the authoring process, without losing any information
provide the final user with the possibility to dynamically change the resolution of the substance

A Parent is either an application with which you are using your Substance (Substance Designer, Substance Player, Unity 3D, etc. see full list),
or a graph.

In this mode the resolution of the substance depends on the resolution settings of the Parent you are using your substance with. The default
parent size is 256*256px in Substance Designer.

As a consequence, the resolution of the graph depends on the default Parent size of the application.

We strongly advise you to let this parameter to 0x0 if you plan to use your substance in several products.

Here are the default Parent resolutions:

Software Resolution

Substance Designer 256x256

Substance Player 512x512

Autodesk 3ds Max 1024x1024

Autodesk Maya 512x512

Unity 3D 512x512

The Parent Size Bar

The default Substance Designer parent size, is 256*256, bust most of the time you want to work at a higher resolution to get a better idea of the
final result.

Since Substance Designer 6, you can use the Parent Size bar to define what should be the parent size for the current graph:

This is extremely handy, as you don't need to touch the graph parameters to get a good preview.

If you don't see the Parent Size bar in the graph menu, press on the icon

Default resolution table

Here is a table showing the different resolution that you can expect depending on the Output Size Parameter.

0x0 1x1 2x2

Substance Designer 256x256 512x512 1024x1024


Substance Player 512x512 1024x1024 2048x2048

Autodesk 3ds Max 1024x1024 2048x2048 4096x4096

Autodesk Maya 512x512 1024x1024 2048x2048

Unity 3D 512x512 1024x1024 2048x2048

Absolute
You should chose this mode if you want to set the resolution at a specific size.
The Performance Profiler
You can enable a profiler in the graph view in order to profile performances of your graph, by clicking on the Profiler icon in the Graph toolbar:

The data provided by the performance profiler a related to the power of your computer, meaning that performances may change on the
computer.

Always think of reviewing your substances on the hardware it is supposed to be used by the final user.

The profiler displays below each node its computation time by the engine you are using (SSE2, DirectX9, etc.).

Reset All

Reset all the timings & Flush the cache

Reset Timings

Reset all the timings

The profiler has the following limitations:

Switch nodes are not handled, meaning the longest computing time will be displayed below an instance with switch nodes.
A few ms are necessary to start the engine at each computation. When a graph has several nodes you will not see the
difference, however when your graph contains only 1 or 2 nodes you may see a few ms difference between each computation.

The Library
The Library pane is a split-view resource manager, where you can find and gather all your assets
you need to work with in your graph. In this page:

The library monitors some folders on your hard drive (or over a network), so any changes (new
1 The
assets, deleting assets, renaming, etc.) happening in those folders will be updated in the Library as
Category panel
well.
1.1 Th
e
catego
ries
2 The
Thumbnails
panel
2.1 Us
e an
asset
from
the
library
2.2 Fin
d an
asset
from
the
library
2.3 Viz
ualize
your
assets
2.4 Th
The library can monitor the following assets: e
Favorit
Substances (graphs from .sbs package and .sbsar) es
Bitmap images section
Vector images
Functions
Meshes
In this section:
Those resources can be either on your computer’s own storage systems, or shared over a network.
Customizing
the Library
Substances
/assets from
the Library

As you can see, the Library view is split in 2 main parts :

The Category panel on the left


The thumbnail panel on the right

The Category panel

Located on the left of the Library View, the category panel contains all the assets categories and
sub-categories.
In order to use the Category panel, you can either:

click on a category : all the assets contained under this category ans its sub-categories
will appear on the Thumbnail panel.
click on a sub-category : only the assets contained in this sub-category will appear on the
Thumbnail panel.

The categories

Default categories contain handle all the assets shipped with Substance Designer 5.

Their names are generally self-explanative. here is the list of the most important categories:

The Favorites category : gathers all the assets you have flagged as favorite (see : how to
create a favorite?)
The Generators category: contains all the substances that will directly compute/generate a
content without the need of a previous input (in most of the cases) .They are generally
good starting points for your graph.
The Filters category: contains all the substances that will modify their input.
The Functions category: the nodes that are used in the function graphs (See the Function
section)

The Thumbnails panel


The thumbnail panel is the place where you can vizualize and choose the assets you want to use
Use an asset from the library

To use an asset from the library, just drag'n'drop it to the proper location :

Find an asset from the library

In order to find an asset, you can either use the category panel to filter the displayed assets, or you
can use the the search bar, located at the top left of the thumbnail view :

The content of the thumbnail view will be dynamically adapted to the letters you enter.

The search bar will take account the name of the asset you are looking for, but also tags
that the asset can contain, or the category it belongs to.

For example, typing "normal" will list all the assets that can be used to generate or
modify a normal map.

This is a good way to discover new nodes (thus new possibilities )


Vizualize your assets

You can adapt the size of the icons to your convenience by using the to right drop down list:

Obviously, it's up to you to find the right balance between seeing as much icons at the same time
or having fewer but more detailed icons:

Yous have the choice between all these sizes :

Tiny icons
Small icons
Medium icons
Large icons

The small icon turns on/off the labels of the nodes.

Selecting ot hovering an icon will give you some additional information (if they have
been provided by the author of the content) :
The Favorites section

After using the software for a while, you will notice that there is some assets that are more useful
in your workflow than others.

Hopefully SD5 offers an easy solution to access them, by adding them to the Favorites section:

How to add (or remove) an asset to the Favorites section ?

Really simple : just select the asset and click on the star on the right of the search bar.

The start will turn yellow to inform you that the asset is now in your favorites.
Customizing the Library

The default library offers enough assets to keep you busy for a while, but when you will start building
your own substances, there is good chance that you want to directly access them from the library as
well.

As you would expect, SD5 comes with all the necessary features to create your own custom libraries of Substances (and other resources too), by
telling Substance Designer where to find them.

How to add resources in the library?

Step one: specify the location

In order to add new resources, the first thing you have to do is tell SD5 where these resources are located.

The Library supports monitoring of both local folders and folders shared over a network.

To do so, go in Project Preferences to manage folders to monitor.


Once you have added the proper path to the preferences, Substance Designer will scan the folders and add the proper content to the library.

Don't forget that any change you make to the monitored folders will be taken in account inside SD5.

Therefore, make sure to choose properly the location of the folder you want to use, in order to not delete content by mistake.

In order to classify the assets, SD5 looks at their names and types, but also scan the information you add into the node.

Therefore, you can specify a group for the node, or decide to not show a resource in the Library by setting the "Hide from Library"
parameter (in the Parameters view) to True

Step two : configure folders and filters

Adding your personal asset sis great, but if you want to have more control about how the content is organised, you can use folders and filters.

Create a filter

You can create your own filters with their own parameters.
A filter must be contained in a folder, so you should start by creating a folder with the Add folder icon:

To create a filter, click on the folder that will contain this filter and click on the Add a new filter icon:

This will automatically open the Edit panel, so you can edit the filter's parameters.
Edit a filter

Click on the Edit icon to open the Edit panel.

In this panel you can create rules for the filter, change the Filter's name and select in which project the filter will be stored.

Each filter's rule is displayed on one line:

The first drop down list lets you chose the kind of resource to display:

The second drop down list sets the sorting parameter:


You can use the "URL" parameter and then put the path in Contains to monitor a specific folder.

The third drop down lists sets the rule:

The 4th field allows you to put some text.

Substances/assets from the Library


The Library comes with pre-made substances which are split in different categories:

Atomic Nodes
FX-map Nodes
Function Nodes
Generators
Filters
Material Filters
Functions
3D View
PBR Materials

All the substances for the Library have been built with the atomic nodes of Substance Designer. You can open and visualize how those
substances are made by drag&dropping them in the Explorer.

The substances/assets from the Library are a good way to learn how to create your own filters, so you should check in details how they
are created and learn from them how to create some effects you want to achieve!

How can I modify those filters?


By default, all those substances are in read-only, so you cannot modify them.

If you wish to modify them, here is how you can do it:

drag&drop a substance in the Explorer


right-click on the graph and choose Copy
right-click on the Package where you want to copy the graph and choose Paste

Parameters UI
Parameters are displayed contextually to affect the currently active element.

Therefore, the parameters for each element is described in the relevant section of the documentation.
The UI control elements

Sliders

Let's the user control the value by moving the slider left/right:

The user can also double-click on the slider to enter the value via the keyboard:

If the slider is not clamped, you can enter a value beyond the default scope of the slider. For example in the gif just above, the value 3
is entered whereas the default displayed values were between 0 and 1

Angles

Lets the user define an angle value, whether in turns (between 0 and 1) or degrees (between 0 and 360)

You can use at your convenience the widget on the left or one of the two sliders on the right:

Color panel

Available with Float1, Float3 and Float4


The color picker on the top left lets you pick any color on your screen:

Just click on the icon


Place the color on the desired color
Click again

You are not restricted to SD window limits to pick a color: you can pick it everywhere, even on a second monitor if you have one.

The sRGB button, lets you choose if the color is displayed in sRGB or linear.

The Float button, let's you switch from 0-255 referential value to 0-1 referential value

you can choose the value directly via the slider(s) on the right, or by clicking on the color bar

For RGBA color bar, you can only set the Hue and the value (not the saturation)

Button

Available with a boolean parameter.

Quite self-explanative, you just have to click on the button to switch the state.

The current state name is displayed on the button.

Drop down list

Available with Integer1

Let's you choose between the different available options.

Size Power of 2

Available with Integer2

Created to corresponds to the size of a texture and respect the power of 2 rules.

The formula is 2^x = pixel size (where x = the chosen value)


Transformation

Available with float4

Corresponds to the matrix4 used in the Transform2D node

Text

Available with the string parameter type

Lets you enter some text.

Expose a Parameter

The true power of Substances comes from their procedural elements. On this page:

You can parameterize your Substances, giving the Substance Engine direct, real-time access to What is an
elements such as HSL values, randomization and almost every other aspect of your Substance. input
Every parameter displayed in the Properties pane for each node can be treated in this way, and ex parameter?
posed in real time. Create an
input
parameter
Change
parameter
properties
Reorder Input
Parameters
Clear an
exposed
parameter
Display/Hide
parameters
depending on
conditions
Grouping
Parameters

What is an Input Parameter?


Input parameters can be considered as variables. They can be used to drive specific functions to
modify the look of substances.

You can find them in the Input Parameters part of a graph. Those input parameters are also expo
sed to the user when your substance is published as sbsar.

You can either create your own Input Parameters, or transform existing parameters into an input
parameter by exposing them.

Create an input parameter


An input parameter can be created either in the graph parameter, or directly on a node.

Create an input parameter in the graph properties

To create a parameter in graph, click on "+" in the Input Parameters of the graph.

Create an input parameter on a node

Parameters listed in the Specific Parameters group can be exposed. Once a parameter is
exposed, it becomes an Input Parameter displayed in the parameters of the graph.

You can expose parameters in 2 ways:

In the Specific Parameters panel


By right clicking on the node and choosing "Expose Parameters"

In the Specific Parameters

Click on the small graph icon of the parameter and click Expose from the menu:
A small dialog box appears, offering you the chance to customize the new Input:

Expose multiple parameters

You can expose multiple parameters in 2 ways:

By clicking on the icon at the top right the Specific Parameters panel, and chose "Expose
Parameters".
By right-clicking on a node and chose "Expose Parameters"

In this view, checking a parameter will expose it, while unchecking will clear it.

You can assign all the parameters to a group with the Graph Input Group field.
You assign several parameters to a group by highlighting the selected parameters, then putting a
value in one of the Graph Input field.

Parameters

Level

You can chose in which graph or sub-graph you want parameter to be exposed.

Input Name

This is the Identifier of the input parameter. In most of the Substance compatible software, the
Label is used to display the parameter's name.

Once a parameter is exposed, you cannot modify its value.

Change Exposed Parameters


Input Parameters are in the Input Parameters properties of the graph, in the Parameters View.

Identifier

This is the name of the tweak used in Substance Designer.

Type

There are 9 different types of tweak:

Boolean
Integer 1
Integer 2
Integer 3
Integer 4
Float 1
Float 2
Float 3
Float 4

Editor

This defines the kind of widget that will be used for the tweak. The Editor depends directly from the
Type of the tweak.

Type Editor

Boolean Buttons

Integer 1
Slider
Drop Down List

Integer 2
Slider
Size Pow 2

Integer 3
Slider
Integer 4 Slider

Float 1
Slider
Angle
Color (Greyscale)

Float 2
Slider

Float 3
Slider
Color (RGB)

Float 4
Slider
Transformation
Color (RGBA)

Description

A description of the tweak, that will appear in tooltips in the Substance compatible software.

Label

This is the name of the tweak that will be displayed in the Substance compatible software.

Group

You can regroup Tweaks into groups in the .sbsar file, to provide a clear way of visualizing them.

If you want several tweaks to belong to the same group, just put the name of the group in this field.

Default

This is the default value of the weak, as it will appear when the user will open the .sbsar file.

User Data

A filed that can be used for yourself, to put more information on the tweak.

Reorder Input Parameters


You can reorder a graph's Input Tweaks by dragging them by the knurled drag handle to the left of
each one.

Clear an exposed parameter


You can clear an Input Tweak in 2 ways:

Click on the cross in the Input Tweaks group of the graph:

You can click on the graph icon of the parameter and select Clear
Creating custom Parameters manually
If you need more control over how a Parameter is exposed to the end user, you should create the
custom Parameter manually. This offers a lot of flexibility, including the option of using Dynamic
Function Graphs to process the input before passing it to its destination. For example, you could
add a function graph to insert a mathematical calculation.

You can also use this technique to control multiple nodes from a single custom Parameter.

To create manually a custom parameter, follow these steps:

Go to the graph parameters by double-clicking on an empty space of the graph or by double


clicking on the graph name in the Explorer.

A new parameter is created and the parameters appears just below:

You can then set the values of this new parameter according to your needs:

Identifier: the internal name for the parameter.


Type/Editor: defines the parameter type, and the UI shape it will take
Description: write here the information you will provide via the tooltips.
Label: name that will be displayed in the interface.

Group (optional): will create a group and place the parameter within:

if you want to place multiple parameters within the same group, make sure to write the
same group name.

Default/Min/max: Set the Default, Min and Max values that will be displayed in the
interface.
Clamp: if set to True, the user won't be able to enter values beyond what has been
defined.
Step: defines the granularity of the parameter UI
User Data: (advanced) can be used to pass additional values to a game engine for
example.
Visible if: let's you specify conditions to show or hide the parameter.

Copy input parameters values


New in SD 2017.1, you can now copy/paste an input parameter

Copy an Input Parameter

Just click on the top right icon of the parameter

Paste an Input parameter

Pasting will create a new input parameter with the copied settings.

Pasting options are accessible via this icon:

it will unveil this drop down menu:


Copy Inputs will copy all the existing inputs

Paste Inputs will past the previously saved input(s)

Clean Inputs opens a menu to selct which inputs you want to remove:

Reset To Default values will reset all the parameters to the default values

Exceptions and Caveats

Some parameters cannot be exposed outside the Substance. The specific exceptions are detailed
in the table below:

Parameter Type (Node) Reason

Gradient Ramp (Gradient Map node) Requires a widget which is not available for
user creation.

Color Mode (Uniform Color, Gradient Map Custom parametrization unsupported


nodes, FX-Map, Pixel Processor)

Blending Modes (Blend node, FX-Map node) External parameters only work in Substance
Designer. Ignored by Substance Engine and
integrations.

Quadrant node / Patterns (FX-Map node: External parameters only work in Substance
Quadrant) Designer. Ignored by Substance Engine and
integrations.
Quadrant node / Input Image Alpha (FX-Map External parameters only work in Substance
node: Quadrant) Designer. Ignored by Substance Engine and
integrations.

Quadrant node / Input Image Filtering (FX- External parameters only work in Substance
Map node: Quadrant) Designer. Ignored by Substance Engine and
integrations.

Grouping Parameters

Parameters can be grouped using the "Group" setting. This identifies Parameters that should be
displayed together.

Grouping therefore offers a means of reducing the visual clutter of long lists of parameters
provided by complex Substances, and for keeping related parameters together to make them
easier to find.

Copy/Paste exposed parameters values

Introduced in SD 2017.1, you know have the ability to copy and paste the parameter s values from
one graph to another, (even if the graph is protected)

To do so, just go to the original graph Input parameters.

Click on the icon of any parameter to copy its value:

You can also copy all the input parameters by clicking here:

You can then go to your new graph and paste the input(s) by clicking here:
Cleaning graph inputs

Introduced in SD 2017.2, you now have the ability to clean your inputs.

In the input parameters of your graph, click here:

You then have a windows displaying all the non-used exposed parameters: just check the ones
you want to delete and click Ok:

Visible if: Display/Hide inputs and outputs with conditions


You can chose to display a parameter or an input/output of an instance to the user only if some
conditions are fulfilled.

This is very useful if you for example when you want to display some parameters that depends on
another one.

You can achieve it with the field "Visible if":

In the Conditions parameters of an output or input node


In the Input Parameters of the graph for an exposed Parameter
Those conditions work only for graph instances, and only in Substance Designer. They
don't work once the substance is published, and don't work in Substance integrations as
a consequence.

The "Visible if" fields accepts the following parameters:

Boolean
Float
Integers
.x : access the subparameter
&&: and
||: or
!: not
<, >, <=, >=, ==, != : comparison
(): brackets

To control a graph input value, you need to use the dictionary "input" :

Some examples:

Condition ("If") Formula Note

"The value of "MyInput" is input["MyInput"]<3 MyInput is a Float1 or


lower than 3" Integer1

The value of param1 is equal input["param1"]==2 MyInput is a Float1 or


to 2 Integer1

"The Y value of "MyInput" is input["MyInput"].y < 3 MyInput is a Floatx or


lower than 3" Integerx where x>=1

"MyInput" is set to True" input["MyInput"] MyInput is boolean

"param1 OR param2 is set to input["param1"]||input param1 and param2 are


True" ["param2"] booleans

"param1 is highr than 0 AND input["param1"]>0&&input MyInput is a Float1 or


param2 is higher than 1" ["param2"]>1 Integer1

Parameters presets
Introduced in Substance Designer 2017.1, parameters presets give the ability to the user to store and expose pre-configured parameters setups.

Therefore, once exported, the final user will be able to choose one of these presets in the preset list.

Creating a preset
Once you have some parameters exposed, the first thing to do is to go to the graph input parameters and switch to Preview mode:

Then set the parameters so the Substance file looks the way you want.
Pin the parameter(s) that you want to be stored in the preset:

Once you are satisfied with the result (and you have pinned the relevant parameters), just click on the button at the top of the input
parameters, a preset named "preset0" is created:

You can tweak the name of the preset(s), add a description, or delete a preset, by clicking on the icon:

You cannot modify an existing preset (you will have to create a new one and delete the wrong one)

Using a preset
When you use your graph instance in another location, a drop down list with all the presets will appear in the instance parameters: just select the
one you want.

2D view
The 2D view can display the result of the computation of any node :
How to vizualize a node ?

In order to show a node in the 2D viewport, you have two options:

Double-Click on the node.


right-click on the node then "View Output in 2D View"

Tiling view mode

It is possible to visualize the repetition of any given node by pressing the "Space" bar on the keyboard :
Panning an image

Since Substance Designer 6, you can now pan an image that doesn't fit entirely on the 2d view. Just hold middle-click and drag the image.

Top Toolbar
The 2D View top toolbar is displayed immediately above the image itself:

Set Background Image

The "Background Image" button( ) lets you pick a background image. If you are creating a Substance with transparency elements in its
resulting image, you may need to see how it looks superimposed over another, background, image.

Save as Bitmap

This button ( ) lets you export the Output node's image as a simple bitmap. In this way, even if you don't intend to use the Substance Air
Engine in your own application, you can still take advantage of Substance Designer's power to create traditional bitmap textures and materials.

Outputs
The Outputs button opens a menu that lets you select which of the graph's Output nodes you wish to view in the 2D View area. This button is
available only when you are visualizing an output.

Snapshot

This button ( ) copies the contents of the 2D View to the system clipboard, so you can paste it into other applications without exporting first.

UV Menu

This menu lets you superimpose one or both UVs in the 3D object displayed in the 3D View. The UV Color command also lets you pick the color
used to draw the UV information over the Output node image.

As UV data is stored with the 3D model, you must choose the "Send UVs to 2D View" in the 3D View's toolbar to send the relevant UV data to the
2D View.

Substance Designer supports two sets of UVs per model and you can choose to have none, one, or both of these sets displayed as wire-frames.

The image above shows the UV menu, and the UV data for a cylinder primitive model superimposed, in red, over the Diffuse output of a sample
Substance.

Lower Toolbar
This toolbar appears at the bottom of the 2D View pane and is mostly concerned with switching various display options, such as the RGBA
channels, color / monochrome, and more.

The toolbar is split into two sections: View Tools (on the left), and Zoom Tools (to the right).

Channel Selector

This is a drop-down menu which lets you choose to show or hide the individual RGB channels:

Alpha toggle

This button ( )toggles display of the Alpha channel in the 2D View window.

Luminance / Color toggle

This button ( ) toggles between color and luminance (gray-scale) view.

Physical size Display


Introduced in Substance Designer 6, this button ( ) is using the physical size image to display the image.

sRGB/linear toggle

This button ( ) toggles between sRGB and linear gamma.

Information Panel toggle

This button shows / hides the Information panel that appears above the toolbar by default. Hiding the Information panel will free up more space
for the 2D image itself.

Histogram

Toggles the image's histogram data on or off. It is off by default.

The Histogram and Information panels can be toggled independently. The screenshot above shows both enabled at the same time.

The Zoom Tools

To the right of the Lower Toolbar are the Zoom Tools. From left to right, these are:

Frame All
This button ( ), like its namesake in other Designer panels, fits the whole image into the 2D View panel.

1:1 ratio

This button ( ) resets the Zoom level to a 1:1 ratio. You can zoom in and out of the image using the mouse wheel.

The Locker

The locker ( ) keeps the 2D View size, which is useful when you work with several nodes of different resolutions.

3D view
The 3D View allows you to visualize your materials, directly applied onto the mesh you are
texturing, with the shader of your choice. Visualize a mesh
Visualize outputs in the 3D
You can choose between 2 renderers and switch between them whenever you want: in real time view
with OpenGL, or in Ray Tracing with Iray (since Substance Designer 5.3). Controls
Camera
Manipulatin
g the
camera
Lights
Manipulatin
g the light
3D View menus
Scene
Materials
Add a new
material
Lights
Camera
Camera
settings
Environment
OpenGL
/Iray shared
parameters
Is
Visi
ble
Exp
osu
re
Rot
ation
Iray
parameters
Do
me
type
Dome
settings
Ground
Display
Axis:
Bounding
box:
Grid:
Light:
Resolution:
Renderer
The Scene Browser
Visualize a mesh Scene options
1. To display a mesh in the 3D View, you should first create a mesh resource in the Explorer.
To do so, just drag&drop a mesh file on the package in the Explorer.

2. Double-click on the resource to display it in the 3D View.

You can also directly drag and drop your mesh into the 3D view, but note that it won't be referred
by your current project.

Visualize outputs in the 3D view

1. Right click on an empty area in the Graph.


2. Select "View output in 3D view..."
3. (If there is more than one material on the mesh) choose the material to assign

The output will be then displayed on the mesh, and it will be refreshed in real time when you
update your graph.

Controls

Camera

By default the camera mode is selected, but if it's not the case, you can go back to the camera

mode by clicking the camera icon.

Manipulating the camera

Here is the list of the different controls for the camera(All movements are relative to the 3D model
rendered in the 3D View.):

Rotate: Left Mouse Button.


Pan: Middle Mouse Button.
Zoom In/Out: Mouse Wheel.
Multi-touch trackpad users can use the same key together with a two-finger slide
movement over the track-pad.

If the light is currently active, the camera controls are activated by holding the Alt Key.

You can set the camera to a specific via the camera menu:

Lights

The 3D View includes a simple light that can be use useful to check your material under different
lighting conditions.

When you are using a physically based material, it is often recommended to deactivate
the lights (direct and ambient), as they can create unexpected lighting situation with the
lighting generated by the environment map.

In order to deactivate it go the the scene/edit menu and set the colors to the light and
ambient to black.

Manipulating the light

When the camera mode is active , you can temporay access the Light controls by holding the shift
key.

or you can switch directly to light controls by clicking on the icon

In both cases, tuhe controls are the following (once again, they are relatives to the object):

Rotate: (shift+) left click button.


Distance from the object : (Shift + ) Mouse wheel button.
You can reset the light to its default position by clicking the Reset Lights command in the Scene m
enu.

You can preview the lights by checking "Lights" in the Display menu.

Background
You can (horizontally) rotate the background around the 3D mesh by holding crtl+Shift+Right-click
and dragging the mouse.

Display the environment map

To display the background, go to Environment/edit menu, and set the Display


Component to "True"

3D View menus

Scene

One of the major feature of the Scene menu is to let you choose the primitive to display in the
viewport:
As you can see in the image above, it's possible to add your own primitives to Substance
Designer, by placing your 3D mesh to this folder (to adapt depending of where you installed the
software):

"C:\Program Files\Allegorithmic\Substance Designer\resources\view3d\shapes"

Here is the list of the other options of the Scene menu:

Edit: opens the settings to activate of deactivate the current object visibility.

Display UVs in 2d View: does exactly what the name suggests

Create 3D Resource from current Scene...: Introduced in Substance Designer 2017.1 this let
you save the state of your 3D viewport in a resource saved with your package. here is how it works:

Set the viewport the way you want:


Click on Create 3D Resource from current Scene... and fill the opening menu (click on the 3 dots
to select where to save the resource):

The resource is added to you package:

You can now get back to this viewport state by double clicking on the resource.

Materials

This menu gives you access to the different materials (shaders) options:

The Default Sub menu is where you want to go to tweak or change the current material:

Edit: gives you access to the current material settings:


Definition: let the user specifies which kind of material to use, with the options to load new ones
or reload them:

Channels: select which channel should be active for the current material.

Each material can get its own shader.

You can either use one of the provided shader, or load a custom one.

Substance Designer can import GLSL description XML (.glslfx) format.

Each shader has properties that accessible via the Materials/Edit menu from the Shader menu.

The shader properties appear in the Properties pane; the example below shows the first few
settings for the default "Metallic Roughness" shader:
Note: Changing the shader’s properties only affects the shader’s output in the 3D View.
It has no effect on the Substance itself.

Tessellation shader: this shader is available only for Windows version, and depends on
your card. It will be greyed if your card cannot handle it.

Add a new material

The 3D View allows you to assign a different substance to each material of your mesh.

By default, the Materials menu displays the original materials of the mesh.

You can create a new material by clicking on "Add" in the Materials menu:

Lights

Gives access to the Lights settings by pressing "Edit"


From this menu, you can activate/deacitvate and tweak the values of:

The ambient light


The point light 1
The point light 2

These lights has been implemented before the rise of physically based rendering. As
with PBR, the scene is supposed to be lit by the environment, activating these additional
light(s) is not necessary, and may give odd results, if not perfectly controlled.
Camera

The Edit selected button gives you access to the camera and post effects settings.

Camera settings
For post effect settings, please refer to this page (to be added)

Environment
Lets you access some environment settings by clicking the Edit... option:

As shown in the following image, Iray mode gets more options compared to OpenGL mode.

All these options are available in Iray mode.

The options highlighted in pink, are the only ones available for OpenGL:
OpenGL/Iray shared parameters

Is Visible

Enable/Disable the Environment map visibility in the 3D viewport.

Exposure

Defines the exposure

Rotation

Defines the (horizontal) rotation for the environment map (also accessible via ctrl+shift+right click
shortcut)

Iray parameters

Dome type

Define the shape of the dome:

Sphere Infinite sphere: The envmap is projected on a sphere. You can define the radius of the
sphere, while an infinite sphere is virtually always around the scene.
Ground and Sphere with ground: the bottom of the sphere is flattened to simulate a ground. like
the previous modes, ground is virtually always around the scene, while you can set the radius of
Shpere with ground.
Box with ground: the environment map is projected on a cube. You set the width and height of the
cube.

Dome settings

When possible, let's the user set the size of the dome:

Radius: works with Sphere and Sphere with Ground

Width, height and depth: works with Box with ground

Ground

Activate/deactivate the ground. In practice, the ground is used to receive the shadow generated
by the object, helping giving more credibility to you render:
Position:
Defines the position of the ground. Most of the time, you will only use the second slider to tweak
the position on the vertical axis, in order to make sure the ground fits with the base of your object.

Reflectivity/glossiness:

Defines the way the ground is supposed to reflect the light.

The reflectivity not only defines the amount of light that is reflected, but also if the reflected light is
tinted by the ground once reflected.

Let's some reflectivity examples (with glossiness at 0.5)


The glossiness defines how the amount of light is reflected: the lower the value, and the more
scattered the reflected rays are, and the higher the value, the more the reflection will look like a
mirror.

Let's check this with a pure white relectivity value:


Remember that between the 2 examples above, the amount of reflected light is the
same: it's just the way they are reflected which is different. Life is awesome!
Shadow intensity

Defines the intensity of the shadow (1 by default).

Decreasing this value will make the shadow less visible

Texture scale

(Works with Sphere with ground) defines the scale of the environment texture at the ground level.

Display
These options allows to show/hide some 3d scene elements

Axis:

Bounding box:
Grid:

Light:
Please note that the lights have to be activated in the Lights menu, to be visible

Resolution:

Renderer
You can switch between 2 renderers in real-time: OpenGL and iRay (since SD 5.3) by going in the
Renderer menu.
More options are available in Iray mode:

The Edit button is only available in Iray mode and gives access to the following options:

Min Samples: defines the minimum amount of projected ray samples

Max Samples: defines the maximum amount of samples. Iray will try to reach this number with the
defined max time (the next parameter), and will stop the rendering process if it manages to reach it.

Max Time (seconds): defines the maximum time Iray will use for the rendering process. The
rendering will be stopped when the time is reached, even if the Max Samples is not reached.

Caustic effects: enable/disable caustics in the rendering process.

Note that caustic effects are caused by refraction of the light through an object: if your asset is fully
opaque, you can leave this parameter to False, as it will slow down the processing time for nothing.
Take a look at the rendering time: it has been doubled just by activating caustics: use this feature
when needed

Firefly Filter Enabled

When enabled, removes/diminish the presence of some unwanted dots called "Fireflies in the
rendering process:
The Scene Browser

The Scene Browser allows you to assign materials to your mesh ID.

Click on the button at the bottom left of the 3D view to display the Scene Browser.
You can change the material used for each material ID by clicking on the Material field.

Scene options

This menu allows you to edit the scene properties, including the lights, background color and
panorama image.

The Reset option sets the 3D View to its initial state (default object, light/camera position, default
material).

You can drag&drop a panorama HDR map in the 3D view from the package explorer.

GLSLFX Shaders
GLSLFX files make the bridge between the application and the glsl shader files.
It allows to use any glsl shader without having to modify the code.

On this page:

File Format
Header and Root node
Body
Techniques
Shaders
Properties
Uniforms
Input Vertex Format
Samplers
Uniforms
Matrix
Scene Parameters
Other Parameters
Example: Tessellation/Parallax
Parallax Vertex Shader File
Tessellation Control Shader File
Tessellation Vertex Shader File
Tessellation Evaluation Shader File
Fragment Shader File
GLSLFX File

File Format
GLSLFX file format is a XML file.
Comments are supported: <!-- This is a comment -->

Header and Root node

The Xml root node Element is named 'glslfx'.

Example:

<?xml version="1.0" encoding="UTF-8"?>


<glslfx version="1.0.0" author="allegorithmic.com">
<!-- BODY -->
<!-- ... -->
</glslfx>

Body

1. Techniques

XML Element that describes a technique.


A technique is a variation of the current FX.
A GLSLFX can contains multiples techniques but at least one technique has to be defined.
The geometry will be rendered with one of the techniques defined by the application.

XML Element Definition:

Name: 'technique'
Attributes:
'name': The value is any string used to name the technique

Example:

<!-- TECHNIQUES -->


<technique name="LowResShader">
<!-- ... -->
</technique>
<!-- ... -->
<technique name="HighResShader">
<!-- ... -->
</technique>

The XML element can have multiples children.


The elements defined in a techniques override the elements defined globally.
For example, it is used to override some uniforms values and obtain FX variation for this technique.

Shaders

Set the glsl shader files for each type.

XML Element Definition:


Name: 'shader'
Attributes:
'type': The glsl shader type.

'type' Value Description

vertex Vertex shader

geometry Geometry shader

tess_control Tessellation Control shader

tess_eval Tessellation Evaluation shader

fragment Fragment shader

'filename': The path of the glsl shader file. Can be absolute or relative to the glslfx file
'primitiveType': The method to render the primitive

'primitiveType' Value Description

point Render as points

lineloop Render as line loop

patch[1..N] Render as patches with [1..N] vertices

Example:

<!-- TECHNIQUES -->


<technique name="Tessellation">
<!-- SHADERS -->
<shader type="vertex" filename="tessellation_parallax/tessellation/vs.glsl" primitiveType="patch3"/>
<shader type="tess_control" filename="tessellation_parallax/tessellation/tcs.glsl"/>
<shader type="tess_eval" filename="tessellation_parallax/tessellation/tes.glsl"/>
<shader type="fragment" filename="tessellation_parallax/fs.glsl"/>
</technique>

Properties

Allow to set up some part of the OpenGL state.

XML Element Definition:

Name: 'property'
Attributes:
'name': The name of the property to set. The name are based on the OpenGL function or glEnum name:
enum:
without the 'GL_' prefix, in lower case.
Ex:
glEnable(GL_BLEND_ENABLE) => "<property name="
blend_enabled" value="true"/>""
glDisable(GL_CULL_FACE) => "<property name="
cull_face_enabled" value="false"/>""
functions:
without the 'gl' prefix, in lower case and with all words separated with '_'
character.
Ex:
glBlendFunc(GL_SRC_ALPHA,
GL_ONE_MINUS_SRC_ALPHA) => "<property name="
blend_func" value="src_alpha,one_minus_src_alpha"/>"
'value': The value of the property
Allowed properties are:

'name' 'value' Values Description


Values

blend_enabled boolean Enable/disable the blending mode


true

false

blend_func string, string Set the sources and destination blending


functions

zero for OpenGL enum GL_ZERO

one for OpenGL enum GL_ONE

src_color for OpenGL enum GL_SRC_COLOR

one_minus_src_color for OpenGL enum


GL_ONE_MINUS_SRC_COLOR

dst_color for OpenGL enum GL_DST_COLOR

one_minus_dst_color for OpenGL enum


GL_ONE_MINUS_DST_COLOR

src_alpha for OpenGL enum GL_SRC_ALPHA

one_minus_src_alpha for OpenGL enum


GL_ONE_MINUS_SRC_ALPHA

dst_alpha for OpenGL enum GL_DST_ALPHA

one_minus_dst_alpha for OpenGL enum


GL_ONE_MINUS_DST_ALPHA

constant_color for OpenGL enum GL_CONSTANT_COLOR

one_minus_constant_ for OpenGL enum


color GL_ONE_MINUS_CONSTANT_COLOR

constant_alpha for OpenGL enum GL_CONSTANT_ALPHA

one_minus_constant_ for OpenGL enum


alpha GL_ONE_MINUS_CONSTANT_ALPHA

src_alpha_saturate for OpenGL enum


GL_SRC_ALPHA_SATURATE

src1_color for OpenGL enum GL_SRC1_COLOR

one_minus_src1_color for OpenGL enum


GL_ONE_MINUS_SRC1_COLOR

src1_alpha for OpenGL enum GL_SRC1_ALPHA

one_minus_src1_alpha for OpenGL enum


GL_ONE_MINUS_SRC1_ALPHA

cull_face_ena boolean Enable/disable the face culling


bled

true

false

cull_face_mode string Set the face culling mode

front for OpenGL enum GL_FRONT

back for OpenGL enum GL_BACK

front_and_back for OpenGL enum GL_FRONT_AND_BACK

Example:

<!-- TECHNIQUES -->


<technique name="LowResShader">
<!-- PROPERTIES -->
<property name="blend_enabled" value="true"/>
<property name="blend_func" value="src_alpha,one_minus_src_alpha"/>
<property name="cull_face_enabled" value="true"/>
<property name="cull_face_mode" value="back"/>
</technique>

Uniforms

Allow to override some uniforms defined globally.


This allow to change shader behavior for this technique.
See the Uniforms definition chapter for more details about their definition.

Example:

<!-- TECHNIQUES -->


<technique name="Tesselation">
<!-- SHADERS -->
<shader type="vertex" filename="tessellation_parallax/tessellation/vs.glsl" primitiveType="patch3"/>
<shader type="tess_control" filename="tessellation_parallax/tessellation/tcs.glsl"/>
<shader type="tess_eval" filename="tessellation_parallax/tessellation/tes.glsl"/>
<shader type="fragment" filename="tessellation_parallax/fs.glsl"/>

<!-- UNIFORMS -->


<uniform name="parallax_mode" guiName="Parallax Mode" min="0" max="0" />
<uniform name="enableTilingInFS" guiName="Tiling Enabled In FS" min="0" max="0" />
<uniform name="tessellationFactor" guiName="Tessellation Factor" default="4" min="1" max="64" guiStep="1"
guiWidget="slider"/>
</technique>

<technique name="Parallax">
<!-- SHADERS -->
<shader type="vertex" filename="tessellation_parallax/parallax/vs.glsl"/>
<shader type="fragment" filename="tessellation_parallax/fs.glsl"/>

<!-- UNIFORMS -->


<uniform name="parallax_mode" guiName="Parallax Mode" min="1" max="1" />
<uniform name="enableTilingInFS" guiName="Tiling Enabled In FS" min="1" max="1" />
</technique>

2. Input Vertex Format

This allow to define the semantic of each attributes define in the vertex shader.

XML Element Definition:

Name: 'vertexformat'
Attributes:
'name': The name of the attribute as defined in the vertex shader.
'semantic': The semantic of the attribute.

'semantic' Value Description

position Vertex position (float3)

normal Vertex normal (float3)

texcoord[0..N] Vertex texture coordinate buffer N (float2)

tangent[0..N] Vertex tangent buffer N (float4)

binormal[0..N] Vertex binormal buffer N (float4)

Example:

<?xml version="1.0" encoding="UTF-8"?>


<glslfx version="1.0.0" author="allegorithmic.com">
<!-- BODY -->
<!-- ... -->

<!-- INPUT VERTEX FORMAT -->


<vertexformat name="iVS_Position" semantic="position"/>
<vertexformat name="iVS_Normal" semantic="normal"/>
<vertexformat name="iVS_UV" semantic="texcoord0"/>
<vertexformat name="iVS_Tangent" semantic="tangent0"/>
<vertexformat name="iVS_Binormal" semantic="binormal0"/>
</glslfx>

3. Samplers

This allow to define the usage of each samplers.


It is used by the application to known which texture to set in the specified samplers.

XML Element Definition:

Name: 'sampler'
Attributes:
'name': The name of the sampler variable in the shader file.
'usage': The usage of the sampler. It matches the usage specified in the Ouput node of the graph.

'usage' Value Description

diffuse Diffuse map

opacity Opacity map

emissive Emissive map

ambientocclusion Ambient occlusion map

ambient Ambient map

mask Mask map

detailnormal Detail Normal map

normal Normal map

bump Bump map

height Height map

displacement Displacement map

specularlevel Specular level map

specularcolor Specular color map

specular Specular map

glossiness Glossiness map

roughness Roughness map

anisotropylevel Anisothropy level map

anisotropyangle Anisothropy angle map

transmissive Transmissive map

reflection Reflection map

refraction Refraction map

environment Environment map (cube map)

panorama The Panorama Map (Latitude/Longitude Map)

samplespostable The Van Der Corput Map (512x4 float32 texture)

Multiple usages are supported.


Example:
<!-- SAMPLERS -->
<sampler name="baseColorMap" usage="basecolor,diffuse"/>
<!-- ... -->

'isHidden': Boolean that indicates if the sampler should appear in the GUI
Example:

<!-- SAMPLERS -->


<sampler name="vanDerCorputMap" usage="samplespostable" ishidden="true"/>
<!-- ... -->

Wrapping Mode:

Name Value

texture_wrap_s, texture_wrap_t, texture_wrap_r clamp_to_edge

clamp_to_border

mirrored_repeat

repeat

Texture Filter

Name Value

texture_min_filter, texture_mag_filter nearest

linear

nearest_mipmap_nearest

linear_mipmap_nearest

nearest_mipmap_linear

linear_mipmap_linear

Example:

<?xml version="1.0" encoding="UTF-8"?>


<glslfx version="1.0.0" author="allegorithmic.com">
<!-- BODY -->
<!-- ... -->

<!-- SAMPLERS -->


<sampler name="baseColorMap" usage="basecolor,diffuse"/>
<sampler name="heightMap" usage="height"/>
<sampler name="normalMap" usage="normal"/>
<sampler name="detailNormalMap" usage="detailNormal"/>
<sampler name="emissiveMap" usage="emissive"/>
<sampler name="specularMap" usage="specular"/>
<sampler name="opacityMap" usage="opacity"/>
<sampler name="environmentMap" usage="environment"/>
</glslfx>

4. Uniforms

This allow to add additional information on each shader uniforms.

XML Element Definition:

Name: 'uniform'
Attributes:
'name': The name of the uniform in the shader file.
'semantic': The semantic of the uniform. (All matrices are float16).
'semantic' Value Description

world World Matrix (float16)

worldinversetranspose World Inverse Transpose Matrix (float16)

worldviewprojection World View Projection Matrix (float16)

viewinverse World Inverse Matrix (float16)

worldview World View Matrix (float16)

modelview Model View Matrix (float16)

projection Projection Matrix (float16)

ambient Scene Ambient Color (float3)

lightposition[0..N] Position of the scene's Nth light (float3)

lightcolor[0..N] Color of the scene's Nth light (float3)

lightintensity[0..N] Intensity of the scene's Nth light (float)

globaltime Current time in secs (float)

resolution Viewport resolution (int2)

mouse Mouse position (int2)

samplespostablesize Number of samples to use to compute the


environment lighting (int)

irradianceshcoefs The array of spherical harmonics vectors (float3


[10])

panoramamipmapheight Number of mipmap levels in the panorama map


(float)

panoramarotation Angle Rotation angle of the panorama map (float)

panoramaintensity Intensity of the panorama map (float)

computebinormalinfragmentshader Does the binormal be computedt per fragment ?


(if not then per vertex) (bool)

isdirectxnormal Is the normal map format DirectX ? (bool)

uvwscale Scale values of u, v, w (float3)

renderuvtile Render only 1 UV tile ? (bool)

uvtilecoords UV tile coordinate to render (int2)

Example:

<?xml version="1.0" encoding="UTF-8"?>


<glslfx version="1.0.0" author="allegorithmic.com">
<!-- BODY -->
<!-- ... -->

<!-- MATRICES -->


<uniform name="worldMatrix" semantic="world"/>
<uniform name="worldViewProjMatrix" semantic="worldviewprojection"/>
<uniform name="worldViewMatrix" semantic="worldview"/>
<uniform name="worldInverseTransposeMatrix" semantic="worldinversetranspose"/>
<uniform name="viewInverseMatrix" semantic="viewinverse"/>
<uniform name="modelViewMatrix" semantic="modelview"/>
<uniform name="projectionMatrix" semantic="projection"/>
</glslfx>

Example:
<?xml version="1.0" encoding="UTF-8"?>
<glslfx version="1.0.0" author="allegorithmic.com">
<!-- BODY -->
<!-- ... -->

<!-- SCENE PARAMETERS -->


<uniform name="AmbiColor" semantic="ambient"/>
<uniform name="Lamp0Pos" semantic="lightposition0"/>
<uniform name="Lamp0Color" semantic="lightcolor0"/>
<uniform name="Lamp1Pos" semantic="lightposition1"/>
<uniform name="Lamp1Color" semantic="lightcolor1"/>
</glslfx>

Other parameters

Other additional information can be add to each uniforms to:

define the default value


clamp values
control the way the uniform will be display in the application:
set the label
set the widget info used to edit the value in the application:
widget name, min, max, increment/decrement step
group uniforms in group widgets

As the Uniforms can be override for each techniques, it allows to display a specific gui setup for each techniques.

XML Element Definition:

Name: 'uniform'
Attributes:
'name': The name of the uniform in the shader file.
'default': The uniform default value
'min': The min value of the validity range
'max': The max value of the validity range
'guiName': The name of the uniform in the GUI of the application
'guiGroup': The name of the group to put the uniform in the GUI of the application
'guiWidget': The name of the widget used to edit the uniform value in the GUI of application

'guiWidget' Value Description

slider Slider widget for floatN

angle Angle widget for float

color Color widget for float3, float4 color

'guiMin': The min value of the widget


'guiMax': The max value of the widget

Example: Tessellation/Parallax

Parallax Vertex Shader File

Located in .\tessellation_parallax\parallax\vs.glsl

Content:

#version 120
attribute vec4 iVS_Position;
attribute vec4 iVS_Normal;
attribute vec2 iVS_UV;
attribute vec4 iVS_Tangent;
attribute vec4 iVS_Binormal;

varying vec3 iFS_Normal;


varying vec2 iFS_UV;
varying vec3 iFS_Tangent;
varying vec3 iFS_Binormal;
varying vec3 iFS_PointWS;

uniform mat4 worldMatrix;


uniform mat4 worldViewProjMatrix;

void main()
{
gl_Position = worldViewProjMatrix * iVS_Position;
iFS_Normal = iVS_Normal.xyz;
iFS_UV = iVS_UV;
iFS_Tangent = iVS_Tangent.xyz;
iFS_Binormal = iVS_Binormal.xyz;
iFS_PointWS = (worldMatrix * iVS_Position).xyz;
}

Tessellation Vertex Shader File

Located in .\tessellation_parallax\tessellation\vs.glsl

Content:

#version 120

attribute vec4 iVS_Position;


attribute vec4 iVS_Normal;
attribute vec2 iVS_UV;
attribute vec4 iVS_Tangent;
attribute vec4 iVS_Binormal;

varying vec4 oVS_Normal;


varying vec2 oVS_UV;
varying vec4 oVS_Tangent;
varying vec4 oVS_Binormal;

void main()
{
gl_Position = iVS_Position;
oVS_Normal = iVS_Normal;
oVS_UV = iVS_UV;
oVS_Tangent = iVS_Tangent;
oVS_Binormal = iVS_Binormal;
}

Tessellation Control Shader File

Located in .\tessellation_parallax\tessellation\tcs.glsl

Content:

#version 400 core


#extension GL_ARB_tessellation_shader : enable

layout(vertices = 3) out;

in vec4 oVS_Normal[];
in vec2 oVS_UV[];
in vec4 oVS_Tangent[];
in vec4 oVS_Binormal[];

out vec4 oTCS_Normal[];


out vec2 oTCS_UV[];
out vec4 oTCS_Tangent[];
out vec4 oTCS_Binormal[];

uniform float tessellationFactor;

void main()
{
gl_TessLevelOuter[0] = tessellationFactor;
gl_TessLevelOuter[1] = tessellationFactor;
gl_TessLevelOuter[2] = tessellationFactor;
gl_TessLevelInner[0] = tessellationFactor;
gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;

oTCS_Normal[gl_InvocationID] = oVS_Normal[gl_InvocationID];
oTCS_UV[gl_InvocationID] = oVS_UV[gl_InvocationID];
oTCS_Tangent[gl_InvocationID] = oVS_Tangent[gl_InvocationID];
oTCS_Binormal[gl_InvocationID] = oVS_Binormal[gl_InvocationID];
}

Tessellation Evaluation Shader File

Located in .\tessellation_parallax\tessellation\tcs.glsl

Content:

#version 400 core

layout(triangles, equal_spacing, ccw) in;

in vec4 oTCS_Normal[];
in vec2 oTCS_UV[];
in vec4 oTCS_Tangent[];
in vec4 oTCS_Binormal[];

uniform mat4 worldMatrix;


uniform mat4 worldViewProjMatrix;

uniform sampler2D heightMap;

uniform float tiling = 1.0f;


uniform float heightMapScale = 1.0f;

out vec3 iFS_Normal;


out vec2 iFS_UV;
out vec3 iFS_Tangent;
out vec3 iFS_Binormal;
out vec3 iFS_PointWS;

vec3 interpolate3D(vec3 v0, vec3 v1, vec3 v2, vec3 uvw)


{
return uvw.x * v0 + uvw.y * v1 + uvw.z * v2;
}

vec2 interpolate2D(vec2 v0, vec2 v1, vec2 v2, vec3 uvw)


{
return uvw.x * v0 + uvw.y * v1 + uvw.z * v2;
}

void main()
{
vec3 uvw = gl_TessCoord.xyz;

vec3 newPos = interpolate3D(gl_in[0].gl_Position.xyz, gl_in[1].gl_Position.xyz, gl_in[2].gl_Position.xyz, uvw);


vec3 newNormal = normalize(interpolate3D(oTCS_Normal[0].xyz, oTCS_Normal[1].xyz, oTCS_Normal[2].xyz, uvw));
vec3 newTangent = normalize(interpolate3D(oTCS_Tangent[0].xyz, oTCS_Tangent[1].xyz, oTCS_Tangent[2].xyz, uvw));
vec3 newBinormal = normalize(interpolate3D(oTCS_Binormal[0].xyz, oTCS_Binormal[1].xyz, oTCS_Binormal[2].xyz, uvw));
vec2 newUV = interpolate2D(oTCS_UV[0], oTCS_UV[1], oTCS_UV[2], uvw);

float heightTexSample = texture(heightMap, newUV * tiling).x * 2.0 - 1.0;


newPos += newNormal * heightTexSample * heightMapScale;

vec4 obj_pos = vec4(newPos, 1);


gl_Position = worldViewProjMatrix * obj_pos;

iFS_UV = newUV * tiling;


iFS_Tangent = newTangent;
iFS_Binormal = newBinormal;
iFS_Normal = newNormal;
iFS_PointWS = (worldMatrix * obj_pos).xyz;
}
Fragment Shader File

Located in .\tessellation_parallax\fs.glsl

Content:

#version 120

// #define ALG_NORMAL_DIRECTX
#define ALG_NORMAL_OPENGL

#ifdef ALG_NORMAL_DIRECTX
// #define FLIP_NORMAL_X
#define FLIP_NORMAL_Y
// #define FLIP_NORMAL_Z
#endif //#ifdef ALG_NORMAL_DIRECTX

#ifdef ALG_NORMAL_OPENGL
// #define FLIP_NORMAL_X
#define FLIP_NORMAL_Y
// #define FLIP_NORMAL_Z
#endif //#ifdef ALG_NORMAL_OPENGL

varying vec3 iFS_Normal;


varying vec2 iFS_UV;
varying vec3 iFS_Tangent;
varying vec3 iFS_Binormal;
varying vec3 iFS_PointWS;

uniform vec3 Lamp0Pos = vec3(0.0f,0.0f,70.0f);


uniform vec3 Lamp0Color = vec3(1.0f,1.0f,1.0f);
uniform vec3 Lamp1Pos = vec3(70.0f,0.0f,0.0f);
uniform vec3 Lamp1Color = vec3(0.198f,0.198f,0.198f);
uniform bool flipNormal = true;
uniform float TilingDetail = 3.0f;
uniform float SpecExpon = 50.0;
uniform float Ks = 1.0;
uniform int parallax_mode = 0;
uniform float tessellationFactor = 4.0;
uniform float heightMapScale = 1.0f;
uniform float Depth_detail = 0.5f;
uniform float Kr = 0.5f;
uniform int KF_on = 1;
uniform float KFs = 1.0f;
uniform vec3 AmbiColor = vec3(0.07f,0.07f,0.07f);
uniform float tiling = 1.0f;
uniform int enableTilingInFS = 0;

uniform sampler2D heightMap;


uniform sampler2D normalMap;
uniform sampler2D detailNormalMap;
uniform sampler2D emissiveMap;
uniform sampler2D diffuseMap;
uniform sampler2D specularMap;
uniform sampler2D opacityMap;
uniform samplerCube environmentMap;

uniform mat4 worldMatrix;


uniform mat4 worldInverseTransposeMatrix;
uniform mat4 viewInverseMatrix;

vec4 litFct(float NdotL, float NdotH, float specExp)


{
float ambient = 1.0;
float diffuse = max(NdotL, 0.0);
float specular = step(0.0, NdotL) * pow(max(0.0, NdotH), specExp);
return vec4(ambient, diffuse, specular, 1.0);
}
vec3 lerpFct(vec3 v0, vec3 v1, float percent)
{
return v0 + (v1-v0) * percent;
}

// Phong Shading
void phong_shading(
in vec3 LightColor,
in vec3 normalWS,
in vec3 pointToLightDirWS,
in vec3 pointToCameraDirWS,
inout vec3 DiffuseContrib,
inout vec3 SpecularContrib)
{
vec3 Hn = normalize(pointToCameraDirWS + pointToLightDirWS);
vec4 litV = litFct(dot(normalWS, pointToLightDirWS), dot(normalWS, Hn), SpecExpon);
DiffuseContrib = litV.y * LightColor;
SpecularContrib = litV.y * litV.z * Ks * LightColor;
}

vec3 fixNormalSample(vec3 v)
{
vec3 result = v - vec3(0.5,0.5,0.5);

#ifdef FLIP_NORMAL_X
result.x = -result.x;
#endif // ifdef FLIP_NORMAL_X
#ifdef FLIP_NORMAL_Y
result.y = -result.y;
#endif // ifdef FLIP_NORMAL_Y
#ifdef FLIP_NORMAL_Z
result.z = -result.z;
#endif // ifdef FLIP_NORMAL_Z

return result;
}

vec3 normalVecOSToWS(vec3 normal)


{
return normal;
}

void main()
{
vec3 cameraPosWS = viewInverseMatrix[3].xyz;
vec3 pointToLight0DirWS = normalize(Lamp0Pos - iFS_PointWS);
vec3 pointToLight1DirWS = normalize(Lamp1Pos - iFS_PointWS);
vec3 pointToCameraDirWS = normalize(cameraPosWS);
vec3 normalOS = normalize(iFS_Normal);
vec3 tangentOS = normalize(iFS_Tangent);
vec3 binormalOS = normalize(iFS_Binormal);

// ------------------------------------------
// Make sure the TBN is Orthonormalized
binormalOS = normalize(cross(normalOS, tangentOS));
tangentOS = normalize(cross(binormalOS, normalOS));

vec3 cumulatedNormalOS = normalOS;

// ------------------------------------------
// Update UV
float a = dot(normalOS,-pointToCameraDirWS);
vec3 s = vec3(dot(pointToCameraDirWS,tangentOS), dot(pointToCameraDirWS,binormalOS), a);
vec2 uv = enableTilingInFS == 0 ? iFS_UV : (iFS_UV * tiling);
float height = texture2D(heightMap,uv).x * 2.0 - 1.0 ;
float parallax = parallax_mode == 0 ? (tessellationFactor / 100000.f + heightMapScale / 500.f) : (heightMapScale / 50.f);
uv += (height * s.xy * parallax) ;

// ------------------------------------------
// Add Normal from normalMap
vec3 normalTS = texture2D(normalMap,uv).xyz;
normalTS = fixNormalSample(normalTS);
vec3 normalMapOS = normalTS.x*tangentOS + normalTS.y*binormalOS;
cumulatedNormalOS = cumulatedNormalOS + normalMapOS;
cumulatedNormalOS = normalize(cumulatedNormalOS);

// ------------------------------------------
// Add detail normalmap
vec3 normalDetailTS = texture2D(detailNormalMap,uv*TilingDetail).xyz;
normalDetailTS = fixNormalSample(normalDetailTS);
vec3 variableNormalDetailTS = lerpFct(vec3(0.0,0.0,0.5),normalDetailTS,Depth_detail);
vec3 normalDetailOS = variableNormalDetailTS.x*tangentOS + variableNormalDetailTS.y*binormalOS;
cumulatedNormalOS = cumulatedNormalOS + normalDetailOS;
cumulatedNormalOS = normalize(cumulatedNormalOS);

if (length(normalTS)<0.0001)
cumulatedNormalOS = normalOS;

vec3 cumulatedNormalWS = normalVecOSToWS(cumulatedNormalOS);

// ------------------------------------------
// Compute Diffuse & Specular

// Light 0 contribution
vec3 diffContrib = vec3(0, 0, 0);
vec3 specContrib = vec3(0, 0, 0);
phong_shading(Lamp0Color, cumulatedNormalWS, pointToLight0DirWS, pointToCameraDirWS, diffContrib, specContrib);

// Light 1 contribution
vec3 diffContrib2 = vec3(0, 0, 0);
vec3 specContrib2 = vec3(0, 0, 0);
phong_shading(Lamp1Color, cumulatedNormalWS, pointToLight1DirWS, pointToCameraDirWS, diffContrib2, specContrib2);

diffContrib += diffContrib2;
specContrib += specContrib2;

vec4 diffuseColor = texture2D(diffuseMap,uv);

vec3 specularColor = texture2D(specularMap,uv).rgb;


vec3 R = reflect(pointToCameraDirWS,cumulatedNormalWS);
vec3 reflColor = Kr * textureCube(environmentMap,R.xyz).bgr;

float FallofRefl;

if (KFs >= 0.0)


FallofRefl = max((1-dot(pointToCameraDirWS/(KFs),cumulatedNormalWS)),0)*KF_on;
else
FallofRefl = (1-max(((1-dot(pointToCameraDirWS/(-KFs),cumulatedNormalWS))),0))*KF_on;

if (KF_on == 0)
FallofRefl=1.0;

vec3 Ambiant_final = diffuseColor.rgb*AmbiColor;

// ------------------------------------------
vec3 emissive = texture2D(emissiveMap,uv).xyz;

vec3 finalcolor = Ambiant_final


+ specularColor*specContrib
+ diffuseColor.rgb*diffContrib
+ (reflColor*specularColor*FallofRefl)
+ emissive;

// Final Color
vec4 finalColor4 = vec4(finalcolor, texture2D(opacityMap,uv));

gl_FragColor = finalColor4;
}

GLSLFX File

The glslfx file defines two techniques to render the geometry:

One uses the hardware tessellation technique


The other based on a parallax effect that will be used as a fall-back if the user hardware don't support the Tessellation.
Located in .\tessellation_parallax\fs.glsl

Content:

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE sbsbatchnode SYSTEM "glslfx.dtd">
<glslfx version="1.0.0" author="allegorithmic.com">

<!-- TECHNIQUES -->


<technique name="Tesselation">
<!-- PROPERTIES -->
<property name="blend_enabled" value="true"/>
<property name="blend_func" value="src_alpha,one_minus_src_alpha"/>
<property name="cull_face_enabled" value="true"/>
<property name="cull_face_mode" value="back"/>

<!-- SHADERS -->


<shader type="vertex" filename="tessellation_parallax/tessellation/vs.glsl" primitiveType="patch3"/>
<shader type="tess_control" filename="tessellation_parallax/tessellation/tcs.glsl"/>
<shader type="tess_eval" filename="tessellation_parallax/tessellation/tes.glsl"/>
<shader type="fragment" filename="tessellation_parallax/fs.glsl"/>

<!-- UNIFORMS -->


<uniform name="parallax_mode" guiName="Parallax Mode" min="0" max="0" />
<uniform name="enableTilingInFS" guiName="Tiling Enabled In FS" min="0" max="0" />
<uniform name="tessellationFactor" guiName="Tessellation Factor" default="4" min="1" max="64" guiStep="1" guiWidget="
slider"/>
</technique>

<technique name="Parallax">
<!-- PROPERTIES -->
<property name="blend_enabled" value="true"/>
<property name="blend_func" value="src_alpha,one_minus_src_alpha"/>
<property name="cull_face_enabled" value="true"/>
<property name="cull_face_mode" value="back"/>

<!-- SHADERS -->


<shader type="vertex" filename="tessellation_parallax/parallax/vs.glsl"/>
<shader type="fragment" filename="tessellation_parallax/fs.glsl"/>

<!-- UNIFORMS -->


<uniform name="parallax_mode" guiName="Parallax Mode" min="1" max="1" />
<uniform name="enableTilingInFS" guiName="Tiling Enabled In FS" min="1" max="1" />

</technique>

<!-- INPUT VERTEX FORMAT -->


<vertexformat name="iVS_Position" semantic="position"/>
<vertexformat name="iVS_Normal" semantic="normal"/>
<vertexformat name="iVS_UV" semantic="texcoord0"/>
<vertexformat name="iVS_Tangent" semantic="tangent0"/>
<vertexformat name="iVS_Binormal" semantic="binormal0"/>

<!-- SAMPLERS -->


<sampler name="diffuseMap" usage="diffuse"/>
<sampler name="heightMap" usage="height"/>
<sampler name="normalMap" usage="normal"/>
<sampler name="detailNormalMap" usage="detailNormal"/>
<sampler name="emissiveMap" usage="emissive"/>
<sampler name="specularMap" usage="specular"/>
<sampler name="opacityMap" usage="opacity"/>
<sampler name="environmentMap" usage="environment"/>

<!-- MATRICES -->


<uniform name="worldMatrix" semantic="world"/>
<uniform name="worldViewProjMatrix" semantic="worldviewprojection"/>
<uniform name="worldViewMatrix" semantic="worldview"/>
<uniform name="worldInverseTransposeMatrix" semantic="worldinversetranspose"/>
<uniform name="viewInverseMatrix" semantic="viewinverse"/>
<uniform name="modelViewMatrix" semantic="modelview"/>
<uniform name="projectionMatrix" semantic="projection"/>
<!-- SCENE PARAMETERS -->
<uniform name="AmbiColor" semantic="ambient"/>
<uniform name="Lamp0Pos" semantic="lightposition0"/>
<uniform name="Lamp0Color" semantic="lightcolor0"/>
<uniform name="Lamp1Pos" semantic="lightposition1"/>
<uniform name="Lamp1Color" semantic="lightcolor1"/>

<!-- UNIFORMS -->


<uniform name="tiling" guiName="Tiling" default="1" min="1" guiWidget="slider" guiMax="10"/>
<uniform name="heightMapScale" guiGroup="Height" guiName="Scale" default="1" min="0" guiWidget="slider" guiMin="-50"
guiMax="50" />
<uniform name="TilingDetail" guiGroup="Detail Normal" guiName="Tiling" default="3" min="1" guiWidget="slider" guiMax="10"
/>
<uniform name="Depth_detail" guiGroup="Detail Normal" guiName="Intensity" default="0.5" min="0" max="1" guiStep="0.05"
guiWidget="slider"/>
<uniform name="SpecExpon" guiGroup="Specular" guiName="Power" default="50" min="1" guiWidget="slider" guiMax="128"
/>
<uniform name="Ks" guiGroup="Specular" guiName="Intensity" default="1" min="0" guiWidget="slider" guiMax="3"/>
<uniform name="Kr" guiGroup="Reflection" guiName="Intensity" default="0.5" min="0" max="1" guiStep="0.01" guiWidget="
slider"/>
<uniform name="KF_on" guiGroup="Reflection" guiName="Falloff" default="1" min="0" max="1" guiStep="1" guiWidget="
slider"/>
<uniform name="KFs" guiGroup="Reflection" guiName="Falloff Size" default="1" min="-1" max="1" guiStep="0.05"
guiWidget="slider"/>

</glslfx>

Iray
Iray is an interactive path-tracing for photo realistic rendering.

To use Iray on Mac OS X, make sure you install the latest NVidia drivers if your card is NVidia:

http://www.nvidia.com/object/macosx-cuda-7.0.64-driver.html

http://www.nvidia.com/download/driverResults.aspx/87193/en-us

You can switch to Iray by going to the renderer menu in the 3D view.

Setting up IRay for material previews with displacement

When you want to create a nice preview of your material for portfolio purpose or to upload on Substance Share, IRay provides a quick way to
add displacement to your preview mesh.

With IRay activated, go to Scene>Edit.

This will display all the objects in your scene. You can activate Subdivision on a per object basis if you object is not subdivided enough.
Choose Length, the default value of 0.1 should give you plenty of precision.

If you still don't see displacement on your mesh, it's because the Height Scale is set to 0 in your materiel settings.

Go to the Materials settings in the 3D View and choose Edit to see the properties and increase the Height Scale.

Here is the result!

Post Processing

Substance Designer includes Yebis 2 from Silicon Studio, allowing to have amazing post effects in your scene (anti-aliasing, Glare, Flare, Depth
of Field, etc.) to make beauty-shots and mimic in-game post effects.
Enable/Disable Yebis 2
Yebis 2 is activated by default when you launch the 3D View. You can enable/disable it in the Camera settings of the 3D View.

The Main Menu

The Main Menu bar appears either at the top of the screen on Apple's OS X...

...or inside the main containing window on Microsoft Windows. Both offer the same commands.

File Menu

New > New Substance - Creates a new, empty, Substance.

Open... - Open an existing Substance or Substance Package.

Recent Packages - Displays a list of recently opened Packages. Click on an entry to open it.

Save All - Saves all open Substances and Packages.

Reload Resources - Forces Substance Designer to reload all resources, including bitmaps and SVG data.

Reset - Reset Substance Designer to its default state.


Exit - Close Substance Designer.

Edit Menu

Undo - Undo last operation.

Redo - Redo last undone operation.

Tools Menu

Suspend Engine - Suspends the rendering engine. This can speed up editing of complex Substance graphs.

Flush Rendering Cache - Substance Designer caches the results of rendering each node to speed up later renders. Flushing the cache forces re-
rendering of every node in the Substance graph.

Switch Engine... - Offers a choice of rendering engines, including multiple DirectX engines (Windows) and OpenGL (OS X) as well as the
reference software ("SSE") engine.

Remote Engines... - Lets you select a rendering engine running on another computer to spread the rendering work.

Locate Player... - If you wish to use Substance Designer's integration with Substance Player, use this to tell Designer where Player is installed.

Preferences... - Opens the Preferences dialog box. (See Preferences section for details.) This dialog is accessed from the Substance Designer m
enu on OS X.

Windows Menu

New Explorer - Opens a new Explorer tab.

New 3D View - Opens a new 3D View tab.

Reset Layout - Resets the workspace to the default layout.

Packages - Show / hide the Packages panel.

Graphs - Show / hide the Graphs panel.

Parameters - Show / hide the Parameters panel.

3D Views- Show / hide the 3D Views panel.

2D Views- Show / hide the 2D Views panel.

Gallery- Show / hide the Gallery panel.

Help Menu

User Guide... - Shows the User Guide.

Shortcuts... - Shows a list of keyboard shortcuts.

Samples - Lets you choose where to install the sample Substances.

Tutorials - Opens up the Tutorials section of the Allegorithmic website.

Substance Store - Opens your default web browser to Allegorithmic's Substance Store.

Welcome Screen... - Re-opens the Substance Designer Welcome dialog box.

About Substance Designer... - Displays information about Substance Designer.

Report a Bug... - Opens the bug report page on the Allegorithmic website.

Dependency Manager
The Dependency manager allows you to see all the dependencies of your package, and find and repair them in case of problems.
You can access the dependency manager by right-clicking on a package in the Explorer and choose "Dependencies".

Nodes Reference
As Substance Designer is a node based texturing software, the more you will know what are the
nodes at your disposal, the more you will unleash your creative power. In this section:

Atomic nodes
Node Library
What we call "node" inside SD, can be divided into 2 mains groups: Graph
Instances
The atomic nodes
The graph instances

While they look really similar, a graph instance (or sub graph) is just another graph embedded into
your actual graph, while atomic nodes are "hard-coded" nodes.

Sub-pages :

Atomic nodes
Node Library
Graph Instances

Atomic nodes
Presentation

Atomic nodes can be considered as the "DNA" of Substance Designer : any graph of sub-graph is
composed from combined Atomic nodes.

They are sometimes called "operational" or "atomic" nodes.

Tip
As these nodes are "hard-coded", they are really optimised : if you can, it's better to
favor them in your graph to obtain the result you want.

Access the atomic nodes


Atomic nodes are the most commonly used and are easily accessible via different methods.

The Space bar


Just press the space bar, and you will have all the list of all the atomic nodes below the search bar
(see image on the right).

Click on one of them to make it appear on the graph.

The node bar

This dockable bar in the graph gives you a direct and easy access to the atomic nodes:

"Right click/Add Node"

This an alternative method gives you another way to access the atomic nodes.

Just click on the one you want to add to your graph.


List of the atomic nodes
Bitmap node
Blend node
Blur node
Channel Shuffle Node
Curve node
Directional blur node
Directional warp node
Distance node
Emboss node
FX-Map node
Gradient (dynamic) node
Gradient Map node
Grayscale conversion node
HSL node
Levels node
Normal node
Pixel processor node
Sharpen node
SVG node
Text node
Transform 2D node
Uniform color node
Warp node
Input and Output nodes

Bitmap node
Presentation

The Bitmap node is used to either import a bitmap into your graph or to create a new bitmap for
use with the 2D painting tools.

Usage

How to use it ?

Each time you will drag and drop an image into your graph (from the SD explorer view,
or from an external folder), SD5 will create a bitmap node to handle it.

When you will add a new bitmap node, you will be prompted to choose between two options:

using an existing bitmap (located either on your computer or on your package)


creating a new resource

Bitmap from file

If you choose the first option, you will be asked to choose you file in the Windows explorer view :
You will finally be asked if you want to link or import the file in your project:

New 10 SD 2017.1: Substance Designer is now able to Read ICC profile on bitmaps.

Bitmap from new resource

If you create a bitmap from new resource, a new window will open where you can specify the
name, size, and background color of your bitmap :

Whether you choose to use an existing file or create a new resource, your bitmap will appear in
your package (in the explorer view) inside a folder called "Resources".

Deleting the bitmap from the graph view won't remove it from your the Resources folder
: you have to manually delete it from your package in the explorer view (Rightclick
/Remoce or the Del key).

Reciprocally, be careful when you delete a bitmap from the resource, as it will be still
visible in the graph (it is in the cache memory) : the bitmap will be missing the next time
you reload the package.

When to use it ?

Any time you need to use or refer to a bitmap into your graph, you will have to use a bitmap node

Inputs/Outputs
Input(s):

None

Output(s):

1. Color output (can be set to grayscale in the specific parameters).

Specific parameters

Color vs Grayscale

This parameter will let you decide whether you want to handle your bitmap as a color (4 channels
RGBA) or a grayscale (1 channel) image.

The state of your input doesn't affect your choice: for example, a greyscale image can
be set as a color bitmap without any problem .

Substance Engine compatibility

Substance Engine 4 - 5

Bitmap Painting Editor


The Bitmap Editor includes basic bitmap editing and retouching support, including custom brushes, graphics tablet support (including pressure
sensitivity), and all the basic bitmap creation tools you need.

You can paint either on new bitmaps or import / link bitmaps.

You cannot modify linked bitmaps.


Create a bitmap resource

Right-click in the graph and chose Add node -> Bitmap

From New Resource allows you to create a new bitmap


From Resource allows you to import or link an existing bitmap

If you choose Bitmap > From New Resource, the New Bitmap dialog appears, asking for details of the new bitmap image.

It is good practice to choose a suitable name for the new bitmap resource. This dialog also lets you choose the bitmap image's dimensions and
background color. By default, the background color is set to transparent.

If you choose From File... instead, you will be prompted to choose a bitmap image file, then presented with the Import Resource dialog:

Bitmap sizes

For optimum performance, Substance Designer prefers bitmap images that have power-of-two dimensions — e.g. 256 x 256, 512 x 1024, 256 x
2048, and so on.

Usually, you it will be best to resize imported bitmap images accordingly and the Size setting in the Import Resource dialog lets you choose how
Substance Designer should handle the image resizing:

Resize

Resizes the image in both dimensions to fit into the nearest power-of-two dimensions, ignoring the image's own aspect ratio.

Fit Large Side

Chooses the largest side of the image to determine the dimension of the resulting image. E.g. if the image's longest dimension is 500 pixels, the
image will be resized to 512 pixels in that dimension, with the empty space left over set to transparent.
Fit Small Side

Similar to the previous option, except the image will be shrunk to fit into the square determined by the image's smallest dimension. E.g. an image
200 x 400 pixels in size will be resized to fit into a 256 x 256 pixel bitmap.

Original Size

The image is not resized. This may affect the performance of your Substance, but may be the best choice if dealing with pre-rendered text, or a
logo, where resizing may cause undesired artefacts.

The Bitmap Editor

Once the relevant creation dialog has been dismissed, the Bitmap Editor appears.

(The screenshot above was taken after closing the "3D Views" panel to make space for it.)

The main work area is surrounded by a number of icons and controls:

Top Toolbar, Info Pane, View Tools and Zoom Tools

These are described in detail in the 2D Views section.

Main Toolbar
This toolbar contains the painting tools. From top to bottom, they are:

Ink Color — This is the color the brush will paint with if you use the left mouse button to place the paint.
Secondary Color — This it the color applied when you use the left mouse button to place the paint. (You must use SHIFT + X to swap
between Ink Color and Secondary Color) Substance Designer 4.2.1
Brush — Paints on the canvas.
Stamp tool — Clones the point under the clone cursor to the point where the paint cursor is located. Hold down the ALT key to reposition
the clone cursor.
Eraser — Erases the canvas under the cursor. This restores the background according to your settings in the New Resource dialog. It
does not use the secondary color.

At the top of the Main Toolbar is a grab-handle, which lets you reposition the toolbar along any edge of the canvas.

Tool Options

This toolbar displays the most common options and settings specific to the selected tools.

Most of painting tools have options and settings that are displayed in this area. You can adjust settings like opacity, angle, etc.

Tiling options

A new button has been added to the Brush and Stamp Tool Options which lets you select the tiling options. You can choose to tile in both X and
Y axes, just the X axis, just the Y axis, or no axes at all (i.e. no tiling). The options are selected from a drop-down menu by clicking on the square
icon to the right of the Flow setting.

Custom Brushes

Substance Designer adds a number of new brush customization and organizational tools, which are described in detail under Custom Brushes.
These tools are to the left end of the Tool Options toolbar for both the Brush and Stamp tools.

Stamp Tool

Substance Designer 3.1 adds new tools to the Tool Options bar for this tool. In addition to the Custom Brushes support (on the left), three new
options can be found to the right, after the Flow setting:

The new tools are:

Tiled edge selection (see above).


Clone source alignment (button with two circles)
Aligned causes the clone source point to retain its position relative to the Stamp location
Not Aligned causes the clone source to reset to its original position at the end of each stroke
Displayed or Edited image for clone data ("E" or "D" button). This changes the behavior of the cloning process:
Displayed will only clone data from the original image; any cloned image data you produce is ignored during the cloning process
until you end the stroke and start again.
Edited will include freshly cloned data produced in the same stroke as well.

Link VS Import

Substance Designer allows you to import resources right into your Substance files, rather than just linking to them.

Linked bitmap resources may be used by other tools, so Substance Designer's Bitmap Editor will not allow you to edit them. It can only be used
to edit Imported bitmap resources, as these are entirely contained within the Substance itself.

By default, new bitmap resources are Imported, not Linked, and are therefore editable.
Brushes
The Bitmap Editor's Tool Options toolbar has two icons to its left that give access to:

Brush Selection
Brush Editor

On this page:

Brush Selection
Brush Editor

Brush Selection

The first button on the left of the Tool Options bar brings up the Brush Selection dialog, shown below. It lets you pick a brush from the
currently loaded library, provides basic controls over the brush size and hardness, as well as the option to import, export, reset, or replace the
current brush library.

The Size and Hardness settings control the size and opacity of the brush.

The triangle to the right of these two settings opens a pop-up menu with the following options:

Export library
Import library
Reset library
Replace library

Tip:
You can also bring up this dialog by right-clicking in the canvas.

Brush Editor

This dialog offers full, highly detailed control over your brush's behavior.
The brush settings offered by this dialog give full control over the brush's shape and behavior.

At the top of the dialog is a sample stroke from the brush, as currently defined.

Immediately below the sample brush stroke is the brush management toolbar: here you can add a new brush to your library (the "+" icon); choose
a brush from the current library; update the selected brush with the current settings; delete the selected brush ("X"); and import, export, reset or
delete brush libraries.

Below this toolbar we have the brush customization tools, arranged in sections.

Brush Shape

Defines the shape of the virtual paintbrush: you can choose from an elliptical, rectangular or polygonal brush. For Polygon shapes, the Edges
Count setting defines the number of sides the Polygon brush shape has, while the brush's size is defined by Inner Radius, which defines a circle
that just touches the inside of each side of the polygon shape. The Hardness setting defines the hardness of the brush; a higher value gives a
more opaque result.

Transform

Defines how the brush behaves when you create a stroke with it, such as jittering, pressure sensitivity ("Size Control"), angles, and so on.

Scattering

Defines whether the brush is stroked, or sprayed. A Scatter setting of 0% means the brush is stroked. Higher values produce a 'spray can' effect.
To increase the density of the spray, increase the Count value as needed.

Color
This section is used to modulate the colors of the brush stroke.

Texture

You can choose a texture as the basis for your brushes.

The texture can be a simple bitmap, or a complete Substance. Click on the "pkg" button to choose from the available, compatible, Substances,
including filters and the currently active graph (if suitable), or one of its Output nodes, that can be used to apply modifications to the bitmap image.

The "..." button lets you choose an ordinary bitmap resource.

Add a new brush to the database

The Brush Editor allows you to create new presets of brush.

Click on the Add a new brush button which is the green "+" in the toolbar:

Set up your brush as you want, and save it. It will be added to the brush database.

Import a brush library

You can import your own brush library by clicking on the Brush Library icon and chose Import Library.

Remove a brush from the database

Click on the icon in the Brush Editor toolbar to remove a brush from the database.

Blend node
Presentation

The Blend node is used to blend 2 inputs of the same type (either 2 colors or 2 grayscale). It is the
equivalent of blending two layers in more classic softwares.

Inputs/Outputs

Input(s):
1. Foreground - Color or Grayscale
2. Background - Color or Grayscale
3. Opacity (optional input used to blend using a mask) - Color

Output(s):

1. Color or Grayscale depending on the inputs

Usage
How to use it ?

Here is the basic workflow for the blend node :

Plug two inputs (of the same type) into the background and the foreground.
Add an optional opacity mask.
Choose the desired blending mode.

Remember that the Foreground input is placed "over" the Background input : when you
specify the blending mode, it is always the foreground that is used to affect the
background.

Example : in "Substract" blending mode, the foreground is substracted from the


background.

When to use it ?

The blend node is one of the most important node of SD.

It is commonly used to composite one texture over another.

When using the Switch blending mode, it can be used as a routing node between 2 branches in
the graph.

Specific parameters
Opacity

Slider control (0-1) which controls the opacity blending between the foreground and background.

Opacity at 1.0 = Foreground and opacity at 0.0 = background.

Blending mode

More information on the blending modes description page.

The blending mode used to composite the foreground and background inputs.

Here is the list of the available blending modes:

Copy
Add (Linear Dodge)
Substract
Multiply
Add Sub
Max (Lighten)
Min (Darken)
Switch
Divide
Overlay
Screen
Soft Light

The Switch blend mode is the same as Copy (Foreground over Background) but is more
optimized when the intent is to create an "On/Off" switch between the foreground and
background. The switch is controlled by the Opacity setting where 1.0 is the foreground
input and 0.0 is the background.

Alpha Blending
Controls the alpha blending with these options :

Use Source Alpha

Will use the alpha of the Foreground to affect the opacity:

Ignore Alpha

The alpha of the foreground is not used to affect the opacity:


Straight Alpha

The alpha is blended as a straight alpha : the color channels remain fully opaque while the alpha
channel carries the alpha information.

Premultiplied Alpha

(only works with the Copy mode)

The alpha is blended as a Premultiplied alpha : the color channel carries as well the alpha
information.

Straight or Premultiplied?

There is no good answer: it really depends where you plan to use it, and how the
targeted software is habdlking alpha.

Take a look at this article for further information :

http://www.cgdirector.com/quick-tip-straight-alpha-vs-premultiplied-alpha/

Cropping area
Give you the ability to "crop" the foreground input according to the selected side.

This value can be exposed but is not supported by the Substance Engine.

Therefore if you plan to use your Substance in an external application (like Unity), it is
not recommended to expose this control as a parameter.

Substance Engine compatibility

Substance Engine 4 - 5

Engine 5 is required if Opacity is below 1.0 and the mask input is used.

Engine 5 is required if the blending modes divide, overlay, screen and softlight are used.

Blending modes description

While we can mathematically obtain values below 0 or above 1 through blending modes, these ones will respectively be capped to 0
and 1.

This makes sense as we cannot represent colors darker than pure black or brighter than pure white.

Here the available blending modes with the Blend nodes and what they exactly do:

Copy

The Copy blending mode will just place the foreground on top of the background.
It is getting useful in these cases:

If you play with opacity slider


if the foreground input has an alpha
if you use an opacity mask
The result is influenced by the "alpha blending" parameter

Add (Linear Dodge)

The Add blending mode will add the foreground input value to each corresponding pixel in the foreground.

Substract

The Substract blending mode will substract the foreground input value from each corresponding pixel in the background.

If the result of the substraction is lower than 0, the value is capped to 0, resulting pure black.
Multiply

The Multiply blending mode will multiply the background input value by each corresponding pixel in the foreground.

As the value of each pixel is comprised between 0 and 1, the result is always equal or lower (darker) compared to the original.
Add Sub

The Add Sub blending mode works as following:

Foreground pixels with a value higher than 0.5 are added to their respective background pixels.
Foreground pixels with a value lower than 0.5 are substracted from their respective background pixels.

Max (Lighten)

The Max Blending mode will pick the higher value between the background and the foreground.
Min (Darken)

The Min Blending mode will pick the lower value between the background and the foreground.

Switch
The Switch blending mode will blend the background and the foreground according to the opacity

the closer we get to 0, the more we will see the background


The closer we get to 1, the more we will see the foreground

Optimization tip

The switch mode can be used to improve the performances of your graph:

if the opacity paramater is set to 0, anything connected to the foreground won't be computed
if the opacity paramater is set to1, anything connected to the background won't be computed

The library contains graph instances called "Switch" and "Switch Grayscale" that are setup to use the blend nodes in these specific
configurations.

While switch mode looks really similar to copy mode, they remain different:

In copy mode it's just the background "covering" the foreground


In switch mode, we melt together the both inputs, deciding which one is more influent.

Divide

The Divide blending mode will divide the background input pixels value by each corresponding pixel in the foreground.
Overlay

The Overlay blending mode combines Multiply and Screen blend modes:

If the value of the lower layer pixel is below 0.5, then a Multiply type blending is applied
If the value of the lower layer pixel is above 0.5, then a Screen type blending is applied
Screen

With Screen blend mode the values of the pixels in the two inputs are inverted, multiplied, and then inverted again.

The result is the opposite effect to multiply and is always equal or higher (brighter) compared to the original.

Soft Light

The Soft Light blend mode creates a subtle lighter or darker result depending on the brightness of the foreground color.

Blend colors that are more than 50% brightness will lighten the background pixels and colors that are less than 50% brightness will darken the bac
kground pixels.
Blur node
Presentation

As you would expect, the blur node will blur the input content according to the chosen intensity.

Usage

How to use it ?

Plug the input content you want to blur


Define the blur intensity in the parameters

When to use it ?

Anytime you need to blur a content.


The blur node is a fast way to blur your input : if you need a more accurate (but more
expensive) result, take a look at the Blur HQ (Color or Grayscale) in the Library

Inputs/Outputs

Input(s)

1. Color or Grayscale

Output(s)

1. Color or Grayscale depending on input.

Specific parameters

Intensity

Define the strength of the blur effect.

This value is not capped : if you need a higher intensity, just double click on the number to
manually change it.

Substance Engine compatibility

Substance Engine 4 - 5

Channel Shuffle Node


Presentation

The Channel Shuffle node creates an output based on the mix of channels (RGBA) from the
Primary and Secondary Inputs.
Usage

How to use it ?

Use input 1 and 2 to provide the maps containing the necessary channels
In the specific parameters: select the replacement channel in the drop down list for each
channel that needs to be changed:

Inputs/Outputs
Input(s)

Primary Input: (Color - Grayscale) defines the map that will be modified, and gives access
to its different channels
Secondary Input: (Color - Grayscale)Defines the channels to be used.

Output(s):

Color or Grayscale depending on the input image.

Specific parameters

The parameters consists of the 4 channels that will be outputed, and for each of them, the list of
the channels you want to apply.

Substance Engine compatibility

Substance Engine 4 - 5

Curve node
Presentation l

The curve node lets you adjust the levels of an input map, by placing and moving points on a curve
view.
Usage

Plug a color or grayscale input.


Adjust the curve in the parameters to obtain the desired results

How to use it ?

Create and move a point

In order to create a point, simply double-click anywhere on the Curve view:

Controlling the point influence


In order to obtain precise results, the curve nodes offers different modes for each point:

: reset the point mode to the default value.

: lock/unlock the 2 bezier handlers so the user can move them together or independently.

: both side of the point are controlled by a Bezier handler.

: the right side of the point is controlled by a Bezier handler while the left side remains flat.

: the left side of the point is controlled by a Bezier handler while the right side remains flat.

: the point sides remain flat

Show input histogram

You can show/hide the histogram of your input just by clicking on


Controlling each channel individually (color input)

When you input is a color node, you have the ability to ajust the curve for each channel:

Just select the curve you want to ajust in the dropdown list located on the top right:

While in RGB curve mode, you canhide/show the individual channel curves by pressing

/unpressing :
Aligning, mirroring and flipping

If you right click on the curve view, you will get some more options:

Align to top/middle/bottom

Only available when 2 or more points are selected:

Will align the selected points horizontally:

Top: Aligned the points with the highest one


Middle: aligned according to the average height
Bottom: Aligned the points with the lowest one

Distribute horizontally/vertically

Only available when 2 or more points are selected:


Distribute the points on the selected axis

Flip horizontally/vertically

Only available when 2 or more points are selected:

Flip the selected points according to the selected axis

Mirror horizontally/vertically

Mirror the whole curve, according to the selected axis

Outputs

one color or grayscale output, depending of the color of the input.

Specific parameters

Curve adressing

This feature is used if your input is in HDR mode and its range goes beyond the (0, 1) range.

If so the values beyond the (0, 1) range are either clamped or repeated.

Keyboard Shortcuts

Alt+ click & drag a handler: temporarily break the handlers to move it independently:
Moving a point while holding shift, constrains the movement on the x or y axis:
Click and drag from an empty point, draws a box selection:

Right click menu

Right clicking on the curve view gives you access to some alignment and distribution options:

Adapt the size of the Curve view

While tweaking the handlers, you may be in a case where one handler is going over the curve view.

In that case, you can use the button to fit the size to the content.

The button resets the zoom level to 1


Substance Engine compatibility

substance engine V6

Directional blur node


Presentation

The Directional Blur node blurs the input according to the intensity and angle defined in the
parameter
Usage

How to use it ?

Plug an input to the node


Define the intendity and the angle.

Inputs/Outputs

Input(s):

Color or Grayscale

Output(s):

Color or Grayscale depending on input.

Specific parameters
Intensity

Define the intensity of the directional blur

Angle

Define the angle of the directional blur.

The directional node is applied symetrically (from the center point of the input) : this
means that opposite angles will give the same final result.

Substance Engine compatibility

Substance Engine 4 - 5

Directional warp node


Presentation

The Directional Warp will warp the input content in the direction defined in the parameter.

The intensity of the effect will be influenced by the intensity input and multiplied by the intensity
parameter.
Usage

How to use it ?

Plug an map as input


Plug a mask as intensity input (mandatory)
Define the intensity and the angle in the specific parameters

Don't forget to plug a mask in the intensity input, or the node won't do anything (the
insity parameter will be multiplied by 0)

When to use it ?

The directional warp in an extremely useful node to create all sort of effects: depending of you
input and your intensity mask you can create an infinite amount of patterns.

Here is an example with the same input map and different masks :
This node is also extremely efficient to locally offset a pattern, which can be useful to map different
elements of the same type (like the bricks of a wall) :
Inputs/Outputs

Input(s):

1. Color or Grayscale
2. Intensity - Grayscale. This is the image or pattern used to drive the intensity of the warp.

Output(s):

1. Color or Grayscale depending on input.

Specific parameters
Intensity

Drives the amount of the blur.

Warp Angle

Allows you to change the angle of the blur in degrees.

Substance Engine compatibility

Substance Engine 4 - 5

Distance node
Presentation

The Distance node will create a white mask based on all the pixels from the mask input, that are
greater or equal to than 0.5.

It will then dilates the border of this mask, according to the distance defined in the parameter.

If no source input is provided, the dilatation will be a white to black gradient:


If a source input is provided :
if "combine" is chosen in the parameters: the source and the mask will be
combined:
If "only source" is chosen in the parameters : the color of the source will be used
and will be dilated as the mask would have been:

Usage

How to use it ?

Plug a mask map in the mask input


(Optional) plug a source input
Define the maximum distance in the parameters
If you have a source input, choose between the combine or Only Source mode

When to use it ?

The distance is really powerful yet a bit tedious to master.

It can be used to build a voronoy diagram like in the example below, but we invite you to test an
obtain with it :
Click on the file below to download the voronoi example :

Inputs/Outputs

Input(s):
1. Mask - Grayscale - Used to compute the distance
2. Source - Color or Grayscale. Optional source for the nearest pixel copy

Output(s):

1. Color or Grayscale depending on input. Can be set my the Color Mode.

Specific parameters

Color Mode

Defines the output type.

Maximum Distance

Define the dilatation distance.

Combine Source/Distance

Defines how the source input is combined with the mask in the final result.

Substance Engine compatibility

Requires Substance Engine 5

Emboss node
Presentation

The Emboss node is used to create an emboss effect on your input, according to a mask, the
intensity and the light angle you define.
Usage

How to use it ?

Plug a map input


Plug an mask (mandatory)
set the intensity, the angle, and the highlight and shadow colors to get the desired effect

The intensity mask input is mandatory in order to get the emboss effect: if you don't plug
anything, the intensity parameter will be multiplied by zero.

When to use it ?

The emboss node can be really interesting to give some "volume" or relief to your texture.

As always with Substance Designer, we invite to try and iterate to find new interesting results.

Here is some examples (click to enlarge):


Inputs/Outputs

Input(s):

1. Source - Color or Grayscale


2. Intensity - Grayscale

Output(s):

1. Color or grayscale depending on the Source input.

Specific parameters
Intensity

Defines the intensity of the emboss effect.

Light Angle

Define where the light effect seems to come from.

Highlight Color

Define the color of the zones that are considered as lit.

Shadow Color

Defines the color of the zones that are considered as in the shadow.

Substance Engine compatibility

Requires Substance Engine 4 - 5

FX-Map node
Presentation

The FX-Map node is one of the most powerful -yet complex- node of Substance Designer.

It can replicate and subdivide an image over and over again, and control the distribution of each
pattern thanks to parameters and logical functions created by the user.
The results can be anything from simple patterns to complex noises.

The Substance Designer function system is based on an innovative graph-based


function system : to get more information, take a look at the Functions section.

Usage

How to use it ?

As we said above you can achieve extremely complex and otherwise impossible stuffs with the FX-
map.

Many artists use them to build their own custom patterns.

The image below for example mostly relies on the power of the FX-Map :

When to use it ?

Inputs/Outputs
Input(s):

1. Background- Color or Grayscale - Defines the background image


2. Image Input- Color or Grayscale - Can be used instead of the FX-Map’s built-in pattern
generators. Connecting into this input will automatically create another Image Input.

Output(s):

1. Color or grayscale depending on the Source input or the Color Mode set.

Specific parameters
Color Mode

The Color Mode let you define if the ouput of the FX-map will Color or grayscale.

Background

Let you set the default background color of the FX-map.

Render Region
The render region will let you set the starting pixel range for each side of the FX-map, resulting a
stretching effect.

The values above are the default values

Tiling Region

The Tiling Region parameter, lets you offset the tiling distance of the FX-map.

Roughness

Calculates the roughness value (depth and opacity multiplier).

It applies a bias to the FX-map blending process.

If your roughness value is set to 1, there is great chances that each pattern will "darken"
a bit the final result: if it's not the result you are aiming for, set the Roughness to 0

Global Opacity

Sets the global opacity of the FX-map.


Substance Engine compatibility

Requires Substance Engine 4 - 5

[Engine 5] Fxmap: support dynamic function for input images


[Engine 5] Function Sampler: support bilinear sampling
[Engine 5] Fxmap: support bilinear/nearest filtering for input images
[Engine 5] Fxmap: support Straight/Premultiplied input image alpha

FXMaps
The FX-Map node allows the creation of procedural images. It is one of the most powerful
features of the Substance technology.

An FX-Map represents a special type of graph, known as a Markov Chain. Markov Chains represent
a simple core process: repeatedly replicating and subdividing an image over and over again. At each
step, an image can be rotated, translated and blended at will. The results can be anything from
simple patterns to complex noises. FX-Maps are the basis for many of the sample Substances
installed with Substance Designer.
On this page:

Create FX-Map graphs


What are FX-Maps for?
FX-Maps System Variables

Create FX-Map graphs

If you want to see an FX-Map graph, simply add an FX-Map node to a Substance Graph, then right-click on the node and press CMD + E (OS X)
or CTRL + E (Windows) to open its graph. This FX-Map graph will appear in a new tab on the Graphs panel; you can switch between this graph
and the Substance graph by clicking on the tab.

What are FX-Maps for?

The most common uses of FX-Maps are creating repetitive patterns, such as stripes and bricks, and noises, such as Perlin, Brownian and
Gaussian noises. Noises are particularly useful in creating organic, natural-looking textures like dirt, dust, concretes, stone surfaces, liquid
spatters and so on.

FX-Map graphs do not work in the same way as Substance graphs: In Substance graphs, each node is independent and has no knowledge of its
position in the overall graph, nor does it care where its image data comes from or where it’s going.

We'll look at each of the three FX-Map graph nodes in more detail in the next chapter, but briefly, each FX-Map node offers one of three
operations:

Quadrant

This splits the image at this step in the graph into four quadrants. This is the most common node type. A chain of Quadrant nodes can create very
complex-looking images, as well as intricate patterns.

In fact, Quadrant nodes represent a level—or octave—in a quad-tree graph. FX-Map graphs hide this tree structure by representing each level in
the tree with a single Quadrant: every time you connect one Quadrant node to another, you are actually creating a complete tree level.

The reason for this 'cheat' technique is to remove the need to represent each node at every level of a tree individually: after just four layers of
depth, you would need to use 4 x 4 x 4 x 4 nodes, which is 256 individual nodes! Instead, each Quadrant node "knows" which level it's at in the
tree and generates its imagery accordingly.

This probably won't make much sense to many readers, but we'll go into this in much more detail shortly.

Iterate

Repeats the image passed into the right-hand connector over the image passed into the left-hand connector by the set number of iterations.

This node is most often used with one or more Dynamic Functions graphs to move or rotate the input image in some way at each iteration.

Switch
This takes two inputs and simply switches between one or the other, as defined by its Selector setting. As with the Iterate node, the Selector
setting is often chosen by a Dynamic Function.

FX-Maps System Variables

FX-Maps support system variables. These variables always begin with a Dollar symbol ("$"), and are as follows:

Name Particularity Data type Purpose

$time - float1 This variable returns the time in


seconds since the Substance
rendering engine was started.

It is ideal for Substances which need


to animate according to time. (E.g.
the hands of a clock.)

In some applications, including


Substance Player, a Substance that
uses $time will cause a timeline to
appear in the user interface.

$depth - float1 Returns the octave (level) number of


the FX-Map node. This allows a node
to modify its behavior according to
which level in the quad-tree it
represents.

$depthpow2 - float1 As above, but returns 2 raised to the


power of the octave (level) number.
This is a helper value that comes in
useful for some common calculations.

$number float1 Returns the number of the drawn


Iterate Nodes only pattern. This can be accessed by
Dynamic Function graphs controlling
an Iterate node to modify its behavior
at each iteration step.

(Note that $number starts counting


from 0, not 1.)

$size - float2 Returns the size of the current node


(in pixels).

$sizelog2 - float2 As above, but returns the size as


power-of-2 values (ex: for 2048*2048
image, $sizelog2 returns 11).

$pos Quadrant Nodes only float2 Returns the birth position of the
pattern. The result is always a value
between 0 and 1.

How it works
Understanding how an FX-Map graph works is the key to mastering this powerful feature.

An FX-Map graph can contain one or more of the three FX-Map node types: Quadrant, Iterate and Switch. Of these nodes, the one you will likely
use most often is the Quadrant, with the Iterate node a close second.

The Parameter Set node is the prime mover of FX-Maps. It creates the core region quad-tree graph FX-Maps rely on, but it is not displayed as
one. Visually, the quad-tree graph is shown in the form of a Markov Chain.

When rendering the FX-Map, the simplified FX-Map graph is ‘unwrapped’ to look like the big tree-like graph. The engine “walks” the entire quad-
tree, working top to bottom, then left to right.

FX-Map nodes don’t blindly copy and paste their images. When each image is rendered, any dynamic functions it has are run. The functions
affect each image rendered by the node. You can therefore give each individual image a random rotation, or scale factor, or a number of other
adjustments.
The Iterate Node
The Iterate node lets you multiply a Quadrant node’s images and is essentially a “repeater” node.
A Quadrant node at a depth of 1 would normally output 4 quadrants. The Iterate node lets you
repeat its output imagery as many times as you like, with each set of repeats treated separately.
The Iterate node has no other properties beyond a “How repetitions do you want?” parameter. The
result is that the new images are, by default, simply overlaid on, and blended with, those produced
by the Quadrant node.

The Iterate node repeats the received input image. The number of repetitions is defined by its Iterat
ions property:

The key to using the Iterate node is that any dynamic functions attached to each repeated image
will also be processed. This means each repetition can have its own set of unique adjustments.
You can use the Random Seed property of the Iterate node to modify how this works. You can
also access the $number system variable within your dynamic functions to determine which
repetition is currently being rendered, and modify the function's result accordingly.

For example: if you apply a random rotation to each image in a Quadrant node, then feed that
Quadrant node’s output to an Iterate node’s active input, each of the repeated images will also hav
e its own random rotation.

All the same dynamic features available on the Quadrant node also apply to the repeated images
produced by the Iterate node. It’s as if the node duplicated the Quadrant node at the same level,
instead of adding another depth level.

The Pass-through Connector

Each Iterate node has two connectors along its base. The left connector is a pass-through connect
or. The image it receives is passed straight through to the node’s output connector, where it is
blended with any repeated images:

Note that the pass-through image is always passed through untouched, regardless of the Iteration
parameter’s setting.

The Quadrant Node


Many FX-Maps consists entirely of chains of Quadrant nodes. Quadrant nodes are the most
powerful and flexible node in the FX-Map group, so it is well worthwhile to understand how this
node works.

The most important thing about Quadrant nodes is that they are the only node which can increase
the depth or octave, of the FX-Map graph. Each Quadrant node adds to the underlying quad-tree
graph; none of the other nodes do so.

The Quadrant node has a number of parameters:

Color / Luminosity

When the node is adding an image to the FX-Map, these settings define how the channels are
blended with other images in the chain. The Color / Luminosityparameters apply to any images
rendered by this particular node.

Note: As most FX-Maps are usually grayscale, you’ll often see only one slider for the Opacity
parameter.

Branch Offset

Shifts the node's image. The offset is applied to all the other images rendered by subsequent
nodes in the graph. The Branch Offset applies the translation to the current Quadrant node and all
the nodes below it in the same branch of the graph.

This parameter can be controlled with a Dynamic Function.

Pattern

Defines the image (if any) to be added to the FX-Map by this node.

Quadrant nodes support a long list of patterns, which are described later in this topic.
This parameter can't be controlled by a dynamic function in a sbsar file.

Pattern Offset

Offsets the node's image by the specified amount, but does not affect subsequent nodes. This
parameter can be controlled with a Dynamic Function.

Pattern Size

Defines the size of the image (if applicable) to be added to the FX-Map. This parameter can be
controlled with a Dynamic Function.

Pattern Rotation

Defines the rotation of the image (if applicable) to be added to the FX-Map. This parameter can be
controlled with a Dynamic Function.

Pattern Variation

Some patterns have variants. This setting lets you choose which variant to use. This parameter
can be controlled with a Dynamic Function.

Blending Mode

Specifies the blending process to use when mixing this node's image (if applicable) to the FX-Map
image. This parameter can be controlled with a Dynamic Function.

Random Seed

Seed for the random number generator.

The generator uses this seed as a starting point, creating a sequence of what appear to be
random numbers. The advantage of this approach is that, unlike in the real world, you can ensure
the exact same sequence of random numbers is generated each time, producing predictable,
repeatable, but random-looking results.

This parameter can be controlled with a Dynamic Function.

Inherit Random

If set to "Yes", the random number generator seed is inherited from the previous node in the graph
(i.e. the node above this one in the quad-tree.) If this is the first node, it takes its random seed from
the containing Substance graph.

Patterns

Each Quadrant node can optionally add an image to the final FX-Map.

By default, No Pattern is selected, so no image is rendered. The Quadrant node merely subdivides
the FX-Map image, splitting it into four for the next node in the chain.

The next option, Input image, is to use an image supplied to the FX-Map node. The FX-Map node
accepts color or grayscale images for use as the background or as a replacement for one of the
built-in patterns. Please note that the Quadrant node can only render a grayscale input image in a
grayscale Fx-Map, and conversely, it can only render a color input image in a color FX-Map. If you
want to mix color type, you need to convert your inputs before in the compositing graph.

Finally, you can choose from one of the built-in patterns: Square, Disc, paraboloid, Bell, Gaussian,
Thorn, Pyramid, Brick, Gradation, Waves, Half Bell, Ridged Bell,Crescent and Capsule.

Additional note: you have the possibility to create a dynamic function in this parameter, but it will
only work in Substance Designer. To have access to the image input by a dynamic function, you'll
have to use values from 256 (image entry 1) to higher values (257 for image entry 2, etc.).

Pattern types.

Patterns are all grayscale. A few can be modified a little using the Pattern Variation parameter.
Many of the built-in patterns have some form of radial gradient fill or similar. This makes them very
useful for many types of noises and patterns. Other patterns, such as Brick, Disc and Square, are
simple, flat shapes.

The Pattern Variation parameter adjusts a defined feature of the Pattern.

Using Functions in FXMaps


Iterate and $number variable
Using the Sampler nodes
Using the Set/Sequence nodes

Iterate and $number variable

The Iterate node will render the nodes connected to the right output the amount of time specified by the Iterations value.

1 iteration: the gaussian pattern is rendered once

10 iterations: the gaussian pattern is rendered 10 times at the


same place
When using an Iterate node, you can use the $number variable to get the current iteration value. $number is a float value and starts at 0.

This function, set in the Pattern Offset parameter, will be executed 10 times, one for each pattern.

The first pattern has a $number value equal to 0 and is then rendered at the (0, 0) coordinate. The second pattern has a $number value equal to
1 and is then rendered at the (0, 0) coordinate (1 x 0.1 = 0.1) and so on for the next patterns.

Download sample: iterate_node.sbs

Using the Sampler nodes


The sampler node can be used to sample pixel values in an image input plugged to the fx-map node. The sampled values can then be used to
drive any parameters using functions.

Simple Example

In this example a chain of quadrant nodes have been created to generate a grid of pattern. A function is created in the Opacity/Luminance
parameter of the last quadrant.

The Sample node takes a float2 input as the sampling coordinates (x, y). In this example we used the $pos variable: for each pattern, the pixel
value is sampled at the pattern position in the first image input plugged to the FxMap node.
The Sample Gray node returns a float1 value in the 0, 1 range.

The Sample Color node returns a float4 (rgba) value in the 0, 1 range.

Advanced Example

Here, we compare the sampled value to a constant (0.3). If the sampled value is greater than 0.3 the function returns 1, else, it returns 0.

Download sample: sampler_node.sbs


Using the Set/Sequence nodes
While working with functions, you will occasionally be in situations where you want to reuse a
value into another function graph, therefore you need to declare and output this value from the
actual function.

This is exactly the goal of the Set and Sequence nodes:


The Set node

The Set lets you set a new variable. To do so, you just have to follow these two steps:

Enter a name for your variable in the parameter?


Plug in the value you want the variable to contain: the newly created variable will
automatically take the value type of what you have connected.

The Sequence node


By default, the variable that you have just set is only accessible within the scope of the current
function graph (which is , let's admit it, quite useless by default)

What you want to achieve is to make this graph output to the parameter, both the value of the
parameter it controls, and the newly set variable: this is the role of the Sequence node.

Here is how it works:

plug the value of the parameter, in the bottom input of the Sequence node
Plug the Set node in the top input of the Sequence node
Set the Sequence node as Output node

It is possible to set and output multiple parameters from the same graph, by chaining sequence
nodes:

Therefore the parameter can contain its own value and one or multiple declared variables
Variable visibility

Be aware that a declared variable is not accessible from anywhere!

One direction Top to bottom visibility

Variable declared at a parent level can be accessible at child levels, but the contrary is not
true:

in SD it looks like this: Graph Level>Node Level>(FX-Map internal param level)>Function Graph

A variable declared in a function graph cannot be directly seen by another function graph
at the same level, but controlling another parameter (you have to use the Sequence node
to "move it up", so the other graph can access it
Variables stored in parameters are read starting from the top of the parameters stack to
the bottom, which mean that a function controlling a parameter at the top of the stack
cannot access the variables that are declared later on.

A workaround for the latest point is to create one uber functions in the top parameter (Color
/luminosity for an FX-map), and to use Set and Sequence node to output the results that can be
then caught in other functions with a Get node(s).

Gradient (dynamic) node


Presentation

The Dynamic gradient is used to convert a grayscale input into a (color or grayscale) gradient
controlled and defined by a gradient input.

As only one line of pixel of the gradient input is necessary to generate the result, you can store a
huge of amount in one single map.

Usage
How to use it ?

Plug a grayscale map into the grayscale input


Plug a map into the gradient input
Set the gradient orientation and the gradient position in the parameters

When to use it ?

The dynamic gradient is extremely useful to tint a greyscale map the way you want, and to store
multiple gradient information in one single map.

Inputs/Outputs

Input(s):

1.
1. Grayscale- Grayscale - Primary input, grayscale image to remap.
2. Gradient- Color or Grayscale. Gradient is sampled from this input

Output(s):

1. Color

Specific parameters

Gradient Orientation

Let you specify if the node should read the gradient input vertical lines, or horizontal lines.

Gradient Input position

Once the Gradient Orientation is defined, let you choose which line in particular from the gradient
input, will be used to generate the gradient.

Substance Engine compatibility

Requires Substance Engine 5

Gradient Map node


Presentation

The Gradient node remaps the grayscale values from the input, based on a fully customizable
color or grayscale gradient.

Usage

How to use it ?

Plug a grayscale input map


Use the gradient editor to create the gradient that will give you the desired result

Please note that the gradient colors cannot be exposed.

When to use it ?

The gradient node allows you to achieve a vast amount of results.

It's often used to create color/diffuse map, from an height map.

The gradient map is an easy and useful way to just convert a grayscale to a color map.

You may notice some Grayscale node that you didn't place yourself.

Don't worry you are not crazy: if you intent to plug a grayscale node into a color only
input, Substance Designer will automatically create a grayscale conversion node to
make the connection possible.

Inputs/Outputs

Input(s):

1. Primary Input- Grayscale - Input to be processed or remapped.

Output(s):

1. Color or grayscale depending the Color Mode set.

Specific parameters
Color Mode

The Color mode let's the you define if the nature of the output.

Gradient

By clicking on the gradient, you can quickly add new pin to it : you can drag these pins by left/right
dragging them.

To change the values of the pins, or generally to get access to the complete gradient parameters:

Click on the Gradient Editor button.


Double click on one of the pin (to open the Gradient Editor).

The Gradient Editor

The Gradient Editor is where all the settings of the Gradient node are available.

Open the Gradient Editor

The is 2 ways to open the Gradient Editor:

Click on the Gradient Editor button.


Double click on one gradient pin.

Interface

The interface can be divided in 3 sections:


1: The Gradient view

The Gradient view let you add, move and delete pins, and offers some options to modify your
whole gradient in one click.

-Add a pin:

To add a pin, just double click on the gradient, or just below: the pin will appear below the gradient
at the position you clicked.

The newly added pin value will correspond the already existing one in the gradient:

-Move a pin:
To move a pin, jusy click, hold and move left/right your mouse:

-Delete a pin:

To delete a pin, you can click&drag the pin to the top direction:

-Desaturate

As you would expect, this button will desaturate your graph:

-Invert Positions

Will reverse your gradient:

-Inverse Colors

Will modify each pin value by its opposite color:

-Interpolate

Switches the gradient computation mode from linear to interpolate

Linear mode
The linear mode is handling the transition between 2 pins, in a linear way:

Interpolate mode

The interpolate is handling the transition between 2 pins py interpolating the value of each one.

As a result, each pin is "keeping" its color a bit longer, and the transition between 2 colors is made
in a shorter space compared to linear:

-Clear All

Removes all the pins of your gradient:

2: The RGBA Gradient key


The RGBA Gradient key let you set the exact color and position of the pin you have selected in the
gradient.

The Position spinner allows you to manually enter a value for the selected pin position:

The color palette can be used to visually select the color you want.

Select the hue with vertical slider, then choose the position in the palette that represent the
saturation and value you need:

If for some reason you want to get back to your original color, just double-click on the
bottom part of the color viewer:

The Pick button allows you to choose a color wherever on your screen:
The Invert button will simply invert your actual color and the To Gray button will desaturate your
color:

The Copy and Paste buttons allow you to copy the actual color or to paste a previously copied
color)

The sliders on the right give you the choice to work in RGB or HSV mode:

Since Substance Designer 6, you can now select and change the value of multiple pins at the
same time.
3: The Gradient Eyedropper

The Gradient Eyedropper is one of the hidden gem of Substance Designer !

You can create complex gradients just by drawing a line on a reference picture.

The Noise and Precision spinners will help you ajust you newly created gradient by increasing or
decreasing the number of nodes: the lower their values, the more pricise will be your graph.

Substance Engine compatibility

Requires Substance Engine 4 - 5-6

Grayscale conversion node


Presentation

As you may have guessed, the Grayscale conversion node will convert a color map into a
grayscale map.

Usage

How to use it ?

Just plug the color ma pthat needs to be converted


Ajust the channels influence in the parameter if necessary.

When to use it ?

Anytime you need to convert a color map, you will use the grayscale conversion node.

This is useful in the graph management, as some nodes conly accepts grayscale inputs
You may notice some Grayscale conversion node that you didn't place yourself.

Don't worry you are not crazy: if you intent to plug a color node into a grayscale only
input, Substance Designer will automatically create a grayscale conversion node to
make the connection possible

Inputs/Outputs

Input(s):

1. Primary Input- Color - Defines the image to be converted.

Output(s):

1. Grayscale

Specific parameters

Channel Weights

Defines the influence of each channel of the color input into the final result.
Flatten Alpha

(Only have an effect if the image input has a alpha channel)

If set to True, the alpha channel is filled with the background value (set in the next parameter)

Background Value

Defines the color of the background in the final result when Flatten alpha is set to True.

Substance Engine compatibility

Requires Substance Engine 4 - 5

HSL node
Presentation

The HSL (standing Hue, Saturation,Lightness) node, allows the user to tweak the hue, saturation
and lightness of the input color node

Usage

How to use it ?

Plug the color node that needs to be tweaked


Ajust the values in the the paramaters to obtain the desired results

Inputs/Outputs

Input(s):

1. Primary Input- Color -

Output(s):

1. Color
Specific parameters

Hue

Ajust the hue of the input

Saturation

Ajust the saturation of the input:

Values higher than 0.5 increases the saturation


Values lower than 0.5 diminishes the saturation

Lightness

Ajust the lightness of the input:

Values higher than 0.5 increases the lightness


Values lower than 0.5 diminishes the lightness

Substance Engine compatibility

Requires Substance Engine 4 - 5

Levels node
Presentation
The Levels node adjusts the global tonal range and color balance of an image by modifying
shadows, mid tones and highlights.

Usage

How to use it ?

Plug the image that needs to be adjusted


Tweak the different level value to adjust to your needs.

When to use it ?

You can use the level node any time you need to tweak the level of a color or grayscale map.

Level values are often exposed to offer precise control on specific effects.

Inputs/Outputs
Input(s):

1. Primary Input- Color - Grayscale - Defines the image to be processed.

Output(s):

1. Color or Grayscale depending on the input image.

Specific parameters

Two different views are available to adjust the levels: the histogram view, or the value view

The Histogram view


Levels Histogram

Let you ajust the level by moving the top and bottom arrows.

The levels histogram is composed of:

a central view that displays the input image level


three arrows at the top to control respectively low, mid, and high level value
Two arrows at the bottom to control respectively the low and high level input

For a color input you can choose which channel to adjust :

The Values view

For Color input:


For grayscale input:
Auto Level button

This button will automatically adjust the settings to make sure that the Level in Low and Level in
High, are respectively set to the lowest and brightest value of the input image.

Substance Engine compatibility

Requires Substance Engine 4 - 5

Normal node
Presentation

The normal node is either used to convert a heightmap into a normal map, or simply to provide a
neutral normal color (128,128,255)

Usage

How to use it ?

Plug a heightmap into the normal node


setup the intensity

Inputs/Outputs
Input(s):

1. Primary Input (Grayscale)

Output(s):

1. Color

Specific parameters

Intensity

Ajust the intensity of the generated normal map

Normal Format

Specify the way to generate the normal map (as openGL and DirectX interpret the green channel
the opposite way).

Substance Engine compatibility

Requires Substance Engine 4 - 5

Pixel processor node


Presentation

The pixel processor can use a function to specify a value for each pixel of the map

Usage

How to use it ?
Go to edit mode to create the desired function.
(Optional) plug one or more input maps if their value is used by the function.

To know more about the functions inside Substance Designer, go to the Functions
section

When to use it ?

The pixel processor is an advanced node that requires to understand the functions inside
Substance Designer.

As it can control the results per pixel, it offers an endless amount of possibilities.

Inputs/Outputs

Input(s):

1. Primary Input- Color - Grayscale - Used be a Sampler Color node in the function. Adding
an input will create a new input that can be chosen by the Sampler Node.

Output(s):

1. Color or Grayscale depending on the input image.

Specific parameters
Color Mode

Specify the type of the final result

Per Pixel Function

Clicking on the edit button will enter into the edit mode that allows you to build your function.

Substance Engine compatibility

Requires Substance Engine 5

Learning to use the Pixel processor


The pixel processor is with the FX-map node the most powerful atomic node of Substance Designer.

And with great power, comes great responsibilities, but also a bit of complexity before to master it.

In the following pages, we are going to detail the different usages of the pixel processor, from the basics to some more advanced stuff.

Basic notions of maths will be required, but nothing too advanced.

So let's start!

01- Pixel Processor: the basics


02: Pixel Processor- Set unique values for each pixel
03: Pixel processor: some examples with the node alone.

01- Pixel Processor: the basics

What does a pixel processor node exactly do?

When we create a pixel processor node, it is just black, and plugging another node to it doesn't seem to do much:
So what it exactly do?

"The Pixel Processor is able to modify the value of each pixel according to mathematical rules, defined in its graph function."

In other words you can summarize this way:

"For each pixel, apply this function"

If you keep this sentence in mind, it will really help you understand how the pixel processor works.

So why is it black by default?

To understand this, let's create a pixel processor, and click on Edit to enter into function mode (don't forget to double click on the node before to
edit, to get the 2d preview):

A function graph with a single node will then appear (please refer to Functions section to get more information) :
A float4 returns a matrix of 4 float values comprised between 0 and 1. When it's defined as output (like here) these 4 values are used to define
the RGBA value of the node.

Therefore, the current 0,0,0,1 values correspond to a pure opaque black, so in plain words, the pixel processor does this job:

"For each pixel, return this black value"


Now let's set the first channel of the float4 to 1:

"For each pixel, return this value (which corresponds to a pure red)"

AWESOME POWER!!!

But useless in our case: we have seen what the pixel processor is doing, but as we assign the same value to each pixel, we would better use a
uniform color node to get the exact same result.

In the next lesson, we are going to see some ways to use functions and built-in variables to set some unique values for each pixel.

02: Pixel Processor- Set unique values for each pixel

For each pixel...

As we saw in the previous lesson, the pixel processor logic is "For each pixel, do this:"

To make this relevant, we have to find some ways to set some rules which will vary according to
each pixel properties. Therefore we have to find some ways to access these properties.
Let's see how to do this...

Access each pixel position

By default, the only thing that is defined for each pixel is its position, and there is an easy way to
access it via a built-in variable.

So first let's create a graph, add a pixel processor node to it (make sure to set it in color mode).

Go to edit mode (see the previous lesson if necessary).

The first thing you are going to do is to delete the default constant/Float4

Then we have to use the $Pos variable which gives the x and y position of a pixel.

To do this, click on the space bar and start typing Get... then select the Get float2 node:

You should get this node with a big warning sign, reminding you that a final step is needed:

Indeed, you have to define which float2 variable, this node has to get. To do this, just select the
$pos value in the node dropdown list:
If you have defined some custom float2 variables at the graph level, they will appear
here as well

OK so for now, we have told the pixel processor:

"For each pixel, catch the position coordinates of the current pixel"

Using the processed info to display something

So far it does not change anything: the result is still black, and if I right click on the unique node,
we notice that we cannot set it as output.

This is is because the color pixel processor is expecting a float4 as an output. We are going to
provide this float value thanks to a vector float4:

Start typing Vector in the space bar menu and select the vector float4 node:

The vector nodes

Contrary to a regular float/integer node, a Vector node doesn't generate but gather
values thanks to its inputs

Do right click on this new node and set it as output node: the 2d view should be fully transparent
now:
Once again it's normal, as nothing is plugued within the vector/float4

Despite the color code of the input, you can either put:

Two float2 nodes


One float1 and one float3 node (in both orders)

With the Variable $pos, we already have a Float2, therefore we are going to add another one and
plug these 2 nodes to the vector node.

Your graph should be organized this way:


Now we are going to set the second channel of the Float2 to 1 (which means we set the alpha of
the node to 1).

Now let's look at the 2D view


Mmm interesting... It looks like a UV map. What exactly happened?

Well, thanks to what we have set, the pixel processor to return for each pixel, the coordinates of
this pixel, express in the red and green channel:
This is a basic example, but it show that you can really set some individual rules for each pixel: this
is the beginning of infinite possibilities!

In the next lesson, we are going to make some more advanced examples...

03: Pixel processor: some examples with the node alone.


In the previous lessons, we have seen how the pixel processor works, and more importantly, how
to access and return the position of each pixel.

Why is this so important? Because it can be the varying value for any function, which means the
root of some crazy results.

Let's build some examples to illustrate this...

Trigonometry is finally useful!

You may have secretly cried tears of blood in secondary school, being sure that all these
trigonometry lessons would never be useful in your life: you were right.... until today!

As we'll see having some notion of the properties of a sine or cosine, can be extremely useful with
the pixel processor.

Creating a beveled grid

Let's make a first exercise:

Let's create a new graph with a pixel processor node that we set to grayscale, and let's dive into
edit mode.

After deleting the default node, we are going to create a Get Float2 that we set to $pos (to get the
position of each pixel).

Now we are going to add a swizzle Float1 node, and plug the $pos to it:

What is a swizzle node?


A swizzle node is ideal to isolate/permute the channels of a node

in our case, we are interested by the the x channel.

Just for fun let's set the swizzle as output node:

As expected, the x value is reflected in a value going from black to white (0 to 1)

Now let's press the space bar and add a sine node:

I invite to read more about the sine definition on Wikipedia, but for now the only property that
interests us is that, whatever the value of x, sin(x) will always be a value comprised between -1
and 1 (this is something true for cosine as well).

And as you can see, this value fluctuates:


Let's see how to use this property, by adding a multiply and a float node with this configuration
(don't forget to set the multiply node as output node:

Now let's crank up the float value to something like 20 (double click on it to enter the value
manually)
Sharpen node
Presentation

The Sharpen node will -as expected- sharpen the the image provided as input.

Usage

How to use it ?

Plug the input you want to sharpen


Ajust the Sharpen intensity in the parameters

Inputs/Outputs
Input(s):

1. Primary Input- Color - Grayscale - Defines the image to be processed.

Output(s):

1. Color or Grayscale depending on the input image.

Specific parameters

Intensity

Ajust the intensity of the sharpen effect.

Substance Engine compatibility

Requires Substance Engine 4 - 5

SVG node
Presentation

The SVG node allows you to create a vector graphic or take an vector graphic as input and insert it
into the graph as bitmap.

You can then edit it thanks to some built-in tools


Only some features of SVG are supported. A SVG file containing a feature that is
unsupported will be rendered as if it was empty.

The following shapes are supported :

Paths (except for the arc directive).


Rectangles
Polygons
Polylines

The following shapes are not supported.

Circles
Ellipses
Lines
Bitmaps
Texts
The arc directive of paths : make sure your SVG exporter does not convert
bezier segments to arcs when appropriate.

Exporting SVG files with inkscape

Inkscape 0.92 uses an augmented SVG file as its internal file format, but does not
provide an option to automatically export shapes into path when saving/exporting. Here
is how you can manually make the file compatible.

Make sure your SVG path has no bitmap images.


Select all shapes and convert them to paths, using the menu item "Path"
"Object To Path".
Select all paths and edit them by selecting the editing tool (shortcut : F2).

Select all nodes and click on the button "Make selected nodes corner"
(shortcut : Shift+C)
With menu item "file""save a copy...", you can now export the result in a new file
using "plain SVG" or "Optimized SVG" as the file type.

Usage

How to use it ?

When you will add a new SVG node, you will be prompted to choose between two options:

using an existing SVG file (located on your computer)


creating a new resource

Using the former, you will have to select the file with a file browsing dialog, then you will be
prompted whether you want the package to link to the resource on to fully copy it within the
package. Using the latter you will be prompted to give the name of the new resource, as well as
its width and height. You can then edit it using the Vector Graphic Editor.

Deleting the SVG node from the graph won't remove the SVG file from your the
resources folder : you have to manually delete it from your package in the explorer view
(using Right-click->Remove or selecting it and pressing the Del key).

Reciprocally, be careful when you delete a SVG file from the resource tree, as the SVG
result will be still visible in the graph (as it is still in the cache memory) but will be
missing the next time you reload the package.

When to use it ?

The SVG can be useful if you need an ID map that can be easily scaled to higher resolutions.

Inputs/Outputs
Input(s)

1. A background image, to fill in the transparent areas of the SVG node.

Output(s)

1. The rendered SVG file ( with its transparent areas filled with the input image or
background color if provided ).

Specific parameters

Color mode

This parameter will let you decide whether you want to render the SVG into an image with colors
(4 channels RGBA) or using grayscale values.

Background

This parameter is the color used to fill transparent areas of the SVG image. By default in RGBA
mode, it is set with an opacity of 0, i.e. it keeps the transparent areas transparent. In Grayscale
mode it is by default black, i.e. it sets the transparent areas black.

This parameter is not used if you have set an input image to the node. Rather,
transparent areas will sample the input image to determine the background color of
transparent pixel.
Substance Engine compatibility

Vector Graphic Editor


Substance Designer supports the editing of SVG-format vector images.

This editor supports multiple colors, and a new "Brush" tool for quick and easy mask creation. In addition, the SVG node now supports loading of
existing SVG files into a new node.

Please note that texts and primitives are not supported. If you are using Adobe Illustrator, make sure to use the option "Convert to
outline" when you export the file.

The SVG editor is most often used to create masks. To create a new SVG image, create a new SVG node, or double-click an existing one to
bring up the SVG Editor. This will appear in the 2D Views pane, as shown below.

Using the Brush tool, you can build up strokes that will be automatically converted into vector image data. Boolean operations are supported: you
can choose to keep each stroke separate, or use the Union, Subtract and Intersect Boolean modes as desired. These options are offered in the
upper toolbar.

The Shape Tool displays an additional toolbar, shown below:


From left to right, the options are: Draw a square, draw an ellipse, draw a rounded rectangle, and draw a regular polygon. These work just as
they do in most other vector drawing packages.

The Pen tool offers two path creation options: Freehand and Path. Freehand mode lets you draw freehand, while Path mode lets you draw lines
and polygons. You can 'close' the shapes by clicking back onto the starting node. In Freehand mode, you can double click anywhere and the
SVG Editor will automatically draw a closing line to the starting point for you.

SVG Node Editor Context Menu

Right-clicking anywhere in the SVG Editor will bring up the Node Editor Context Menu. This provides clipboard features for copying and pasting
selected nodes, and also includes the commands for changing the Z-ordering of SVG objects.

Text node
Presentation

The text node allows the user to write, edit and place text.
Usage

How to use it ?

Write the text you want in the text box located in the parameters
tweak the settings according to your needs (see options below.

Font

Please note that the font cannot be exposed as a parameter

Outputs

The text node just has one outputs that contains the generated text.

Output type:

Color or Grayscale (set in the parameters).

Specific parameters
Color Mode

Let the user switch between color or Grayscale.


While in Color mode, it is possible to define the text and background color

Text

Write the text you want to display here.

Pressing return will write the text on multiple lines.

Font Size

Let you define the size of the font, (relative to the node size)

Transformation

Let you tweak the rotation and poition of your text. Controls are similar to the Transform 2D
node.d view, thanks to the displayed handlers.

You can also directly tweak the position and the rotation in the 2

Position
Let you offset the position of the text.

Font Color

Let you set the color of the text (color or grayscale, depending of the color mode).

Background

Let you set the color of the background (color or grayscale, depending of the color mode).

Substance Engine compatibility

Substance Engine 6

Transform 2D node
Presentation

The Transform 2D node allows you to move, rotate and scale the input image.

Usage

How to use it ?

Plug your input image


Ajust the image position/Rotation/Scale using one of theses two ways:
Ajust the different settings in the parameters view
Use the handles in the 2D view

When to use it ?

Use it anytime you need to ajust your image position, rotation or scale.

Inputs/Outputs
Input(s):

1. Primary Input- Color - Grayscale - Sets the input to transform.

Output(s):

1. Color or Grayscale depending on the input image.

Specific parameters
Transformation Matrix

Offset

MipMap Mode

Matte Color

Filtering
Substance Engine compatibility

Requires Substance Engine 4 - 5

Uniform color node


Presentation

The uniform node let you specify a color

Usage

How to use it ?

Ajust the parameters to get the color you need...


...or use the color picker to select the color you need wherever on your screen

When to use it ?

Anytime you need a specific color in you graph

Inputs/Outputs

Input(s):

None

Output(s):

1. Color or Grayscale depending on the input image or Color

Specific parameters
Color Mode

Let you specify the output type.

Switching from mode to the other will update the second parameter from Output Color to
Grayscale Color

Output Color

Let you specify and ajust the desired color via different ways:

Click on the gradient to choose the desired color


Use the sliders to ajust the color.
Double click on the top left corner color square to open the advanced parameter view
Use the pick button to pick a color on your screen.

For you commodity, you can use the button located on the left of the slider to switch
between RGB (Red, Green, Blue) and HSV (Hue, Saturation, Value) models.

Your last choice will be recorded for the next time.

Substance Engine compatibility

Requires Substance Engine 4 - 5

Warp node
Presentation

The Warp node will warp the input map, according to the intensity input map, and the intensity
level defiend in the parameters.

Usage

How to use it ?

Plug the map you want to warp.


Plug the intensity input map (mandatory).
Ajust the intensity in the parameters.
Don't forget to plug a mask in the intensity input, or the node won't do anything (the
insity parameter will be multiplied by 0)

When to use it ?

The warp node can help you to create interesting patterns, and to break the "procedural" aspect of
your input.

Inputs/Outputs

Input(s):

1. Primary Input (Color/Grayscale)


2. Grayscale Input (Grayscale)

Output(s):

1. Color

Specific parameters

Intensity

Ajust the intensity of the warp effect.

Substance Engine compatibility

Requires Substance Engine 4 - 5

Input and Output nodes


Input and Output nodes have a special role inside Substance Designer, that is not clearly obvious
when you use them for the first time.

They won't directly affect the graph you are working on.
But when you will publish or reuse your graph in an other graph (as graph instance) the Input and
Output nodes will respectively create "entrances" to plug an input, and "exits" to output the result
of your graph.

You need Output node(s)

While input nodes can be optional (as your graph don't necessary requires an input map
to work), Output nodes can be considered as mandatory, if you don't want your graph to
be useless.

If you don't use Output node(s):

In an external software like Unity: your substance will simply return nothing.
In another graph: your graph instance will have no output pin, therefore will be
useless

Input node (Color and Grayscale)


Output node

Input node (Color and Grayscale)


Presentation

The Input node let you create an input entry into your graph.

Therefore, it will allow the user to plug a (color or grayscale) map when your substance will be
used in another graph or software.

Usage

How to use it ?

Plug the Input node to the location where you want the user to be able to choose the map
he wants. Choose either Color or Grayscale depending of the map you need to plug.

Most of the time, the input map is necessary to be able to work and visualize the final
result.

So in order to add an input AND visualize the final result, just drag and drop a relevant
map on the input node:

you will have the desired preview, and the map won't be included in the final substance.

When to use it ?

You will to use an Input node any time you want to give the control to the final user, on which
element should be affected by your Substance.
This a great way to make your work more modular, thus to expand its possible use.

Inputs/Outputs

Input(s):

None

Output(s):

1. Color or grayscale depending of the selected type of node.

Specific parameters
PKG Resource Path

If you have dragged 'n' dropped a bitmap onto the input node (to get a preview): stores the link of
the preview bitmap.

Attributes

Attributes section contains different sub-sections that can be completed by the author, in order to
give relevant information to the final user, about the Input node usage

Identifier

Input internal name (that can be somehow called by SD)

Description

Use this section to provide relevant information to the final user.

You can for example provide the description the kind of map that is expected to be plugued in this
input

Label
The public name of the input, that will appear when the user is hovering the node (depending of
the display options)

User Data

Some specific optional data that can be read by some external tools you or your studio could have
developed.

Group

Conditions

(optional) can create some rules in order to specify when the input should be visible (ex: when a
specific button is set to "true")

Substance Engine compatibility

Requires Substance Engine 4 - 5

Output node
Presentation

The Output node is where you are going to plug the final result you want to compute and use
outside of the graph.

You need as much inputs as there is maps to export.

Usage

How to use it ?

Setup the Output node parameters to match your output type.


Plug the node that represents the final step of your work into the relevant output node

When to use it ?

Anytime you need to output the result of a node chain.

Inputs/Outputs
Input(s)

Input (Color or grayscale)

Output(s):

None

Attributes & Integration attributes


Identifier

Output internal name (that can be somehow called by SD)

Description

Use this section to provide relevant information to the final user.

You can for example provide the description the kind of map that is expected to be outputed from
in this input

Label

The public name of the output, that will appear on the output pin when the user is hovering the
node (depending of the display options)

User Data

Some specific optional data that can be read by some external tools you or your studio could have
developed.

Group

Substance Engine compatibility

Requires Substance Engine 4 - 5

Node Library
Apart from the Atomic nodes, Designer also comes with a library of pre-made Graph Instances, divided up into many categories. There are over
200 different ones, some come in handy very often, some are intended for very specific use cases. This part of the Substance Designer
documentation intends to document and explain all nodes, as well as provide pointers and tips for which nodes are good to get started with.

The library panel of Designer displays more categories than we currently have documented, Most notably Functions and MDL nodes are missing,
these might be added in the future.
Generators
Generators are nodes that do not require any inputs: they only generate outputs, completely from scratch. You could see "Generators" as another
word for "Procedurals".

They are split into two categories:

Noises
Noises are the true procedural graphics, random shapes and pixels, like well-known Perlin and Clouds noises.
Patterns
Patterns are mostly shapes that look man-made, with many additional controls to randomise them.

Noises
Noises are organic, chaotic looking procedural graphics. The outputs generated by noises look very different from the artificial-looking shapes of
the Patterns category.

You would use noises as a starting point or detail layer for things like grit, dirt, random growth, for any kind of subtle-variation layering, etc...

All noises are fully resolution-independent, so you can scale up or down your result without any fear of ever losing quality.

There are 3 different use groups inside the Noises category. There are the new 3D noises that require at least a baked position map from a
mesh, they are intended for very specific use cases. The large majority are the standard noises, that spread a wide spectrum and are useful in
many cases. Then there are the Grungemaps, which are compound noises with much more depth and details than standard noises, at the cost of
a much slower computation speed.

Some good noises to start with:

Gaussian Noise
Clouds 1
Fractal Sum Base
Cells 4

3D Perlin Noise

3D Perlin Noise

In: Generators/Noises

Intermediate

Description

Generates a procedural noise when a baked Position Map is plugged into the input slot. It is meant for use with the GPU engine only.
Very similar to Perlin Noise and Gaussian Noise, but instead works in 3D Space, based on the UV coordinates.

This noise can be tested with Cube 3D GBuffers as input instead of an actual baked map (as seen in the Example Image below).

Parameters
Scale: 0.0 - 64.0
Set the global scale for the effect.
Size: 0.0 - 2.0
Perform non-uniform scaling on X, Y and Z axes separately.

Example Images

3D Perlin Noise Fractal

3D Perlin Noise Fractal

In: Generators/Noises

Intermediate

Description

Generates a procedural noise when a baked Position Map is plugged into the input slot. It is meant for use with the GPU engine only.
Very similar to Fractal Sum Base, but instead works in 3D Space, based on the UV coordinates.

This noise can be tested with Cube 3D GBuffers as input instead of an actual baked map (as seen in the Example Image below).

Parameters

Scale: 0.0 - 64.0


Set the global scale for the effect.
Size: 0.0 - 2.0
Perform non-uniform scaling on X, Y and Z axes separately.
Min Level: 1 - 10
Changes lower frequency for detail.
Max Level: 1 - 7
Changes upper frequency for detail.
Roughness: 0.0 - 2.0
Changes balance between large- and small-scale detail.
Global Opacity: 0.0 - 1.0
Works like a global brightness control.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Example Images

3D Simplex Noise

3D Simplex Noise

In: Generators/Noises

Intermediate

Description

Generates a procedural noise when a baked Position Map is plugged into the input slot. It is meant for use with the GPU engine only.
Similar to 3D Perlin Noise, but faster and simpler, for cases when performance and speed matter.

This noise can be tested with Cube 3D GBuffers as input instead of an actual baked map (as seen in the Example Image below).

Parameters

Scale: 0.0 - 64.0


Set the global scale for the effect.
Size: 0.0 - 2.0
Perform non-uniform scaling on X, Y and Z axes separately.

Example Images
3D Worley Noise

3D Worley Noise

In: Generators/Noises

Intermediate

Description

One of the most versatile and advanced noises in the library, it generates a Worley noise in 3D space, based on an input Position map. Has
plenty of options that make it much more powerful than the standard Cells or Distance based noises.

Parameters

Scale: 1 - 64
Set the global scale for the effect.
Size: 0.0 - 1.0
Perform non-uniform scaling on X, Y and Z axes separately.
Mode: Euclidean, Manhattan, Chebyshev, Minkowski
Change the distance metric. Allows for some very different noise types.
Minkowski Number: 0.0 - 20.0
Only with Minkowski distance metric. Blends between different types of metrics.
Style: F1, F2, F2-F1, Border, Random Color
Set the Metric combination math. Allows for many more combinations.
Border Width: 0.0 - 1.0
When Border combination math is active, controls the width of the border.
Roundess: 0.0 - 1.0
Only availble with F1, F2 and F2-F1 modes. Sets the level mid position.
Invert: False/True
Inverts the result.

Example Images
Anisotropic Noise

Anisotropic Noise

In: Generators/Noises

Intermediate

Description

This generates a stretched noise. It is one of the Noises with a higher number of parameters, making it a little trickier to use. Keep in mind that
the stretch effect is mostly determined by the proportions between the X and Y amount.

A very useful node for creating grain-type patterns (like wood grain).

Parameters

X Amount: 1 - 512
Amount of X-repetitions of the pattern. By default this is set very low compared to the Y, leading to the stretch. Reduce it even further to
get less X-axis variation.
Y Amount: 1 - 512
Amount of Y-repetitions of the pattern. This determines the amount of "stripes".
Y Amount By Resolution: False/True
Ties the Y-amount to the node resolution. Useful for keeping scale when you want to go bigger; avoids having to manually change the Y-
amount.
Rotate: False/True
Rotates the entire effect 90 degrees. X becomes Y and vice versa.
Smoothness: 0.0 - 1.0
Controls the additional anisotropic (motion) blur over the X-axis. Recommended not to reduce it unless the X-amount is 1.
Smoothness Interpolation: 0.0 - 1.0
Additional control for the smoothness, with minor influence on the stretch length.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Blue Noise Fast

Blue Noise Fast

In: Generators/Noises

Simple

Description

A simple, fast, pixel-scale noise.

Parameters

Rotation: 0.0 - 1.0


Rotates effect internal calculations. This can change the visual look of the noise quite a bit: the further away from 1, the less pixel-scaled
the effect is and the more visible "waves" are introduced.

Example Images

BnW Spots 1
BnW Spots 1

In: Generators/Noises

Simple

Description

This generates a multi-frequency noise with nice details in both large, medium and small scales, along with a slider to customise scale and detail
frequency.

Out of all three BnW Spots (See BnW Spots 2 and BnW Spots 3), this one is the most versatile due to the Roughness slider. Also see Fractal
Sum Base for a similar noise.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Roughness: 0.0 - 2.0
Blends between low and high frequency details.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

BnW Spots 2

BnW Spots 2

In: Generators/Noises
Simple

Description

This generates a multi-frequency noise with nice details in both large, medium and small scales. Nr 2 is less customisable than Nr 1, and has
more detail and contrast than Nr 3.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

BnW Spots 3

BnW Spots 3

In: Generators/Noises

Simple

Description

This node generates a multi-frequency noise with nice details in both large, medium and small scales. Nr 3 has less options than Nr 1, and less
contrast and small frequency details than Nr 2, resulting in a more even scale with less peaks and valleys.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Cells 1

Cells 1

In: Generators/Noises

Simple

Description

Generates a Worley Voronoi-type noise, with simple Euclidean distance metric.

It works well as a simple base noise. A similar result can be achieved with the Distance atomic node.

Parameters

Scale: 1 - 256
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Cells 2
Cells 2

In: Generators/Noises

Simple

Description

Generates a Worley Voronoi-type noise, with simple Euclidean distance metric.

It works well as a simple base noise for Cracks, geometric or shattering effects. A similar result can be achieved with the Distance atomic node.

Parameters

Scale: 1 - 256
Sets the global scale for the effect.
Edge Width: 0.0 - 4.0
Controls the thickness of the edges between cells.
Invert: False/True
Inverts the result.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Cells 3

Cells 3

In: Generators/Noises
Simple

Description

This generates a Worley Voronoi-type noise, with simple Euclidean distance metric. It is modified by warping, creating a more solid cell with
transitions that are still smooth.

It is a good base for cracked earth or mud. A similar result can be achieved with the Distance atomic node.

Parameters

Scale: 1 - 256
Sets the global scale for the effect.
Hardness: 0.0 - 1.0
Sets the sharpness/hardness of the edges between cells.
Invert: False/True
Inverts the result.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Cells 4

Cells 4

In: Generators/Noises

Simple

Description

Generates a Worley Voronoi-type noise, with simple Euclidean distance metric. This one has solid instead of linear gradient cells, resulting in a
very geometric effect.

It is one of the more interesting noises, as it generates a random yet geometric pattern. Very useful if you are after jagged, irregular, yet sharp
shapes, since despite being random this noise can still look man-made (instead of organic). From Designer 2017 2.1 onwards, some powerful
new options have been added, making this noise even more useful.

Similar results can be achieved with the Distance atomic node.

Parameters
Scale: 1 - 256
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Color Source: Random, Pseudo Random (manual seed), Image Input
Allows you to choose how the color of each cell is defined. The default behaviour is random, with little control. Pseudo Random unlocks
a new parameter (see below) and Image input allows you to use an image to drive.
Pseudo Random Seed: 0 - 10
When the Color Source is set to Pseudo Random, this option becomes available. It allows you to vary the colours of the cells without
changing their shapes.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Clouds 1

Clouds 1

In: Generators/Noises

Simple

Description

This node generates a classic Fractal noise, named for its cloud-like looks. This one is the only one with a Disorder parameter, which shows how
the changing motion can look like billowing clouds.

Its good balance of medium and fine detail makes this quite a useful noise.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Clouds 2

Clouds 2

In: Generators/Noises

Simple

Description

This is the classic clouds-type noise from other well-known image editing applications. It is stronger on large-scale detail and has less peaks and
valleys.

Very useful for all kinds of purposes.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Clouds 3

Clouds 3

In: Generators/Noises

Simple

Description

This is another variation of the classic Clouds noise. This noise is much more focused on small-to medium scale details, so it looks the most
repetitive out of the three clouds noises.

It is useful for all kinds of purposes where smaller detail is needed.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Creased

Creased

In: Generators/Noises

Simple

Description

This node generates a cloth-like noise. It can be interpreted as Heightmap

Creased is useful for when you need a semi-directional-noise with large scale variation.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Warp Intensity: 0.0 - 128.0
Sets the strengt of the bend/warp effect.
Disorder: 0.0 - 100.0
Slightly offsets the layers used to generate the noise, to introduce variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Crystal 1

Crystal 1

In: Generators/Noises

Simple

Description

Generates a Worlye Voronoi-type noise, with a slightly more angular distance metric. It can be useful for certain angular and geometric purposes.

Parameters

Scale: 1 - 256
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Crystal 2
Crystal 2

In: Generators/Noises

Simple

Description

Generates an angular, cloth crease-like pattern. Similar to Crease Noise.

This is a bit of a niche noise: it can be useful for rare cases where you're after this type of detail, such as when recreating subtle marble patterns
or doing cloth.

Parameters

Scale: 1 - 16
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Directional Noise 1
Directional Noise 1

In: Generators/Noises

Intermediate

Description

This generates a noise with a good spread of details and a clear directionality to it.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Angle: 0.0 - 1.0
Sets the global angle for the direction.
Angle Random: 0.0 - 1.0
Randomises the direction angle.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Directional Noise 2

Directional Noise 2

In: Generators/Noises

Intermediate

Description

This generates a noise with a good spread of details and a clear directionality to it. Compared to Directional Noise 1, it has a slightly finer detail
scale.

Parameters
Scale: 1 - 4
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Angle: 0.0 - 1.0
Sets the global angle for the direction.
Angle Random: 0.0 - 1.0
Randomises the direction angle.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Directional Noise 3

Directional Noise 3

In: Generators/Noises

Intermediate

Description

This generates a noise with a good spread of details and a clear directionality to it. Compared to Directional Noise 1 and Nr 2, it has a lighter tone
with less contract.

Parameters

Scale: 1 - 4
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Angle: 0.0 - 1.0
Sets the global angle for the direction.
Angle Random: 0.0 - 1.0
Randomises the direction angle.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Directional Noise 4

Directional Noise 4

In: Generators/Noises

Intermediate

Description

This generates a noise with a clear directionality and a focus on medium-scale details along with some smaller scale details. It is quite different
from Directional Noises 1, 2 and 3.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Angle: 0.0 - 1.0
Sets the global angle for the direction.
Angle Random: 0.0 - 1.0
Randomises the direction angle.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Directional Scratches

Directional Scratches

In: Generators/Noises

Intermediate

Description

This node generates a simple effect with directional streaks. You have some control over size, direction and proportions. It behaves like a Directio
nal Noise with more options, but less multi-frequency detail.

Parameters

Scale: 1 - 16
Sets the global scale for the effect.
Angle: 0.0 - 1.0
Sets the global angle for the direction.
Angle Random: 0.0 - 1.0
Randomises the direction angle.
Disorder: 0.0 - 1.0
Shifts the noise to introduce small variation.
Pattern Amount: 0.0 - 1.0
Sets the amount of scratches to appear.
Pattern Size: 0.0 - 40.0
Sets the global size and proportions for the scratches.
Pattern Size Random: 0.0 - 1.0
Sets to what extent the pattern size and proportions will be randomised.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Dirt 1

Dirt 1

In: Generators/Noises

Simple

Description

Dirt noises are all about small-frequency/scale detail. This one however, is the only one that has some medium-scale variation.

Due to the medium-scale detail, it is the least useful Dirt noise, as you can easily blend in your own detail.

Parameters

Scale: 1 - 4
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Dirt 2

Dirt 2

In: Generators/Noises

Simple

Description

Dirt noises are all about high-frequency, small-scale details. This one has some medium-scale masking going on, but it is the most sparse Dirt
noise of the series.

The sparse detail makes this the most useful Dirt noise, as it's perfect for adding a little bit of that small-scale detail into your procedural creations.

Parameters

Scale: 1 - 4
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Dirt 3
Dirt 3

In: Generators/Noises

Simple

Description

Dirt Noises are all about high-frequency, small-scale details. This version has a medium level of coverage, similar to Dirt 5.

It is useful for when you're after some smaller details to add to your procedural creations.

Parameters

Scale: 1 - 4
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Dirt 4

Dirt 4

In: Generators/Noises

Simple

Description
Dirt noises are all about high-frequency, small-scale details. This version has a high level of coverage, similar to Dirt 6.

It is useful for when you're after some smaller details to add to your procedural creations, but less applicable than other Dirt noises due to the
high coverage.

Parameters

Scale: 1 - 4
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Dirt 5

Dirt 5

In: Generators/Noises

Simple

Description

Dirt noises are all about high-frequency, small-scale details. This version has medium coverage, similar to Dirt 3.

It is useful for when you're after some smaller details to add to your procedural creations.

Parameters

Scale: 1 - 4
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Dirt Gradient

Dirt Gradient

In: Generators/Noises

Simple

Description

A Bnw Spots or Clouds-like noise blended with a linear gradient.

While you could easily construct this yourself, this noise can be a useful shortcut for blending in dirt "from the bottom up," for example on dirty
walls.

Parameters

Disorder: 0.0 - 1.0


Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Fluid

Fluid

In: Generators/Noises

Intermediate

Description

This is an interesting node that generates a flowing or falling fluid pattern. It is one of the more complex noises, with a few parameters.

This noise fills a specific niche: it can be useful for generating rain, leaks or any type of fluid under gravity effects.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Warp Intensity: 0.0 - 1.0
Pattern Size: 0.0 - 1.0
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Fractal Sum 1

Fractal Sum 1

In: Generators/Noises

Simple

Description

This is a higher contrast version of Fractal Sum Base, yet it is still fairly useful as contrast and high-frequency details are not too pronounced.

Parameters

Non Square Expansion: False/True


Enables compensation of squash and stretch with non-square ratios.

Example Images

Fractal Sum 2
Fractal Sum 2

In: Generators/Noises

Simple

Description

This is a high-contrast version of Fractal Sum Base.

Parameters

Non Square Expansion: False/True


Enables compensation of squash and stretch with non-square ratios.

Example Images

Fractal Sum 3

Fractal Sum 3

In: Generators/Noises

Simple

Description
This is a quick preset of Fractal Sum Base, with medium-small frequencies.

Parameters

Non Square Expansion: False/True


Enables compensation of squash and stretch with non-square ratios.

Example Images

Fractal Sum 4

Fractal Sum 4

In: Generators/Noises

Simple

Description

This is a quick preset of Fractal Sum Base, with medium-small frequencies.

Parameters

Non Square Expansion: False/True


Enables compensation of squash and stretch with non-square ratios.

Example Images
Fractal Sum Base

Fractal Sum Base

In: Generators/Noises

Simple

Description

This generates a fractal noise with strong small-scale, pixel-level details and subtle higher frequency variation, plus lots of control to modify
behaviour. It is similar to Clouds or BnW Spots, but more uniform and with less well-defined patterns in most cases.

A very useful node due to this subtle nature, ideal for blending in some subtle, pixel-level details. Additionally, its parameters make this node one
of the most powerful and customisable noises available.

Parameters

Roughness: 0.0 - 2.0


Changes balance between large- and small-scale detail.
Global Opacity: 0.0 - 2.0
Works like a global brightness control.
Min Level: 1 - 12
Changes lower frequency for detail.
Max Level: 1 - 12
Changes upper frequency for detail.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Fur 1

Fur 1

In: Generators/Noises

Simple

Description

This generates a straight-fur type of noise.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Fur 2
Fur 2

In: Generators/Noises

Simple

Description

This generates a wavy type of fur-like noise.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Waves Scale: 0.0 - 1.0
Modifies the scale of the waves, bigger means less repetitions.
Waves Rotation: 0.0 - 1.0
Twists the waves more. This value should probably be kept low, as results can be extreme.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Fur 3

Fur 3

In: Generators/Noises

Simple

Description
This generates a spreading/bristle-type noise.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Waves Amount: 0.0 - 8.0
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Gaussian Noise

Gaussian Noise

In: Generators/Noise, Perlin

Simple

Description

This node generates one of the most basic, but also most useful noises, with soft, simple random blobs at a customisable scale.

Gaussian noise is the closest match to the classic Perlin Noises from before Designer 2017 2.1, despite the name. See also the newer Perlin
Noise for a newer, slightly different version of the classic.

Parameters

Scale: 1 - 256
Sets the global scale of the noise.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Gaussian Spots 1

Gaussian Spots 1

In: Generators/Noises

Simple

Description

This generates blurry, soft dots in a random pattern. It is softer and larger than Gaussian Spots 2.

Parameters

Scale: 1 - 16
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Moves spots to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Gaussian Spots 2

Gaussian Spots 2

In: Generators/Noises

Simple

Description

This node is similar to Dirt Noises, but generates random spots at a higher frequency. Gaussian Spots 2 has a medium-high coverage, and the
spots all tend to have a good fall-off to them, making this node useful in combination with Histogram Scan.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Grunge Map 001


Grunge Map 001

In: Generators/Noises

Simple

Description

Generates a complex, combined Noisemap. This node can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Grunge Map 002

Grunge Map 002

In: Generators/Noises
Simple

Description

Generates a complex, combined Noisemap. This node can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Grunge Map 003

Grunge Map 003

In: Generators/Noises

Simple

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Grunge Map 004

Grunge Map 004

In: Generators/Noises

Simple

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Grunge Map 005

Grunge Map 005

In: Generators/Noises

Intermediate

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Grunge Map 006

Grunge Map 006

In: Generators/Noises

Simple

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Grunge Map 007

Grunge Map 007

In: Generators/Noises

Simple

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Grunge Map 008

Grunge Map 008

In: Generators/Noises
Simple

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Grunge Map 009

Grunge Map 009

In: Generators/Noises

Simple

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Grunge Map 010

Grunge Map 010

In: Generators/Noises

Intermediate

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Cracks: 0.0 - 1.0


Balance: 0.0 - 1.0
Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Grunge Map 011

Grunge Map 011

In: Generators/Noises

Intermediate

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Cracks: 0.0 - 1.0


Balance: 0.0 - 1.0
Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Grunge Map 012

Grunge Map 012

In: Generators/Noises

Simple

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Grunge Map 013

Grunge Map 013

In: Generators/Noises

Simple

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Grunge Map 014

Grunge Map 014

In: Generators/Noises
Simple

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Contrast: 0.0 - 1.0
Invert: False/True
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Grunge Map 015

Grunge Map 015

In: Generators/Noises

Simple

Description

This generates a complex, combined Noisemap. It can be very useful as a detailed procedural, but keep in mind these are very performance-
intensive and thus slower to generate.

Parameters

Balance: 0.0 - 1.0


Shifts the balance of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result.
Brush Pattern: 0.0 - 1.0
Adds a mask around the edges, for when used as a brush alpha.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Liquid

Liquid

In: Generators/Noises

Simple

Description

This is a simple variant of Perlin Noise, which warps with itself to create a liquid-like effect.

Parameters

Scale: 1 - 128
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation
Warp Intensity: 0.0 - 1.0
Sets the intensity of the warp effect.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Messy Fibers 1

Messy Fibers 1

In: Generators/Noises

Intermediate

Description

This scatters a fiber-like pattern over the canvas.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Angle: 0.0 - 1.0
Angle Random: 0.0 - 1.0
Lines Number: 3.0 - 32.0
Disorder: 0.0 - 1.0
Increases or decreases scattering randomisation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Messy Fibers 2
Messy Fibers 2

In: Generators/Noises

Simple

Description

This generates a random, scattered Fiber pattern.

Parameters

Scale: 1 - 16
Sets the global scale for the effect.
Angle: 0.0 - 1.0
Angle Random: 0.0 - 1.0
Links Number: 3.0 - 32.0
Disorder: 0.0 - 1.0
Shifts the Fibers to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Messy Fibers 3

Messy Fibers 3

In: Generators/Noises

Simple
Description

This generates a random, scattered, Fiber pattern. Messy Fibers 3 differs in that it can generate a directional pattern and that it can be made
much less scattered and randomised. This node is good for creating a more artificial woven pattern.

Parameters

Scale: 1 - 16
Sets the global scale for the effect.
Angle: 0.0 - 1.0
Angle Random: 0.0 - 1.0
Color Random: 0.0 - 1.0
Disorder: 0.0 - 1.0
Shifts the Fibers to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Microscope View

Microscope View

In: Generators/Noises

Simple

Description

This generates a warped noise that looks like bacteria or organisms under a microscope.

Parameters

Scale: 0 - 10
Sets the global scale for the effect.
Warp Intensity: 0.0 - 1.0
Sets intensity of the warp effect. Keep in mind you can go negative as well, by double clicking and entering -1.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Moisture Noise

Moisture Noise

In: Generators/Noises

Simple

Description

This generates a noise pattern that looks like mold or moisture damage.

Parameters

Scale: 1 - 8
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation
Pattern Size: 0.0 - 2.0
Pattern Angle: 0.0 - 1.0
Pattern Angle Random: 0.0 - 1.0
Global Opacity: 0.0 - 2.0
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Perlin Noise
Perlin Noise

In: Generators/Noises

Simple

Description

This nodes generates a classic Perlin Noise shape, with softer random blobs at a user-selectable scale. It is useful because it is simple and
cheap, yet it provides a slightly harsher and more artificial look than Gaussian Noise (mostly due to simple Box-blur interpolation vs Gaussian
interpolation).

If you're used to the older, classic Perlin Noise nodes (such as Perlin Noise Zoom) from before Designer Version 2017 2.1, Gaussian Noise come
s slightly closer to those. However, this new Perlin Noise is more correct in the technical sense.

Parameters

Scale: 1 - 256
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Plasma
Plasma

In: Generators/Noises

Simple

Description

This generates a slightly different variant of Perlin Noise Zoom (OLD), with longer dark streaks as valleys. It has a similar Distance control for
scale, which maintains tiling.

Parameters

Scale: 1 - 128
Sets the global scale for the effect.
Disorder: 0.0 - 1.0
Phase-shifts the noise to introduce small variation.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Waveform 1

Waveform 1

In: Generators/Noises

Intermediate

Description
This generates a visual representation akin to an audio waveform. It is a very specific node of limited use (mostly as a fake UI element inside a
texture), yet it could provide a good basis for other experiments where a graph is used as a base. (Right Click > Open Reference, or drag the
thumbnail into the explorer).

Parameters

Samples: 0 - 1024
Amount of individual samples, horizontal resolution.
SizeMin: 0.0 - 1.0
Scales the lowest values.
SizeMax: 0.0 - 1.0
Scales the highest values.
WaveNumber: 0 - 64
Sets the amount of waves to tile horizontally. 0 means no wave, flat shape.
Noise: 0.0 - 1.0
Sets the amount of secondary noise/choppiness.
Pattern: 2 - 15
Selects what shape of pattern to use.

Example Images

White Noise

White Noise

In: Generators/Noises

Simple

Description

This node creates classic, simple white noise, like when your TV isn't connected properly.

It is useful for adding a faint pixel-level variation when you don't need much control, but do want the quality.

Parameters

No Parameters.

Example Images
White Noise Fast

White Noise Fast

In: Generators/Noises

Simple

Description

This is a faster version of White Noise, for when quality isn't your biggest concern and you want to save a bit on performance. In most cases, you
should be fine with this fast version.

Parameters

No Parameters.

Example Images
Patterns
Patterns are artificial graphics that look man-made. They mostly follow rules for their placement, but random variation can be introduced most of
the time.

They are useful for when you want a regular pattern as base, such as bricks, tiles, woven patterns, etc.

All patterns tile perfectly and are resolution-independent, meaning you can rescale them without loss of quality.

Some good patterns to start with are:

Brick Generator
Shape
Tile Generator
Splatter Circular

3D Linear Gradient

3D Linear Gradient

In: Generators/Patterns

Intermediate

Description

Creates a volumetric gradient based on input Position map. Effectively generates a transition from black to white between 2 points in 3D Space.
Intened for use with the GPU engine only.

Also see 3D Volume Mask for a similar effect.

Parameters

Points Position Mode: UV Positions, World Space Positions


Choose if the Gradient Points work in UV Space (works best when setting them in 2D view) or in in 3D coordinates, if you want to
manually enter an exact position.
Point 1:
Start Point of the gradient. Can be 2D or 3D Coordinates based on Position Mode.
Point 2:
End Point of the gradient. Can be 2D or 3D Coordinates based on Position Mode.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.

Example Images

3D Volume Mask

3D Volume Mask

In: Generators/Patterns

Intermediate

Description

Creates a black-and white mask volumetric mask, based on the input Position map. Effectively allows you to translate a 3D selection to 2D. See 3
D Linear Gradient for a similar effect.

Can be tested with Cube 3D GBuffers if you don't have a baked Position map and mesh. See example below.

Parameters

Shape: Cube, Cylinder, Sphere


Change the shape of the volume mask.
Scale: 0.0 - 1.0
Set the global scale for the effect.
Size: 0.0 - 2.0
Set the non-uniform scale on X, Y and Z axes separately.
Position Input: UV Position, World Space Position
Choose whether the volume is moved in 2D or 3D space.
Position UV:
Allows you to move the volume in X and Y directions, when set to UV Position mode. This makes most sense when you manipulate the
2D/UV view.
Position: (Color value)
Allows you to move the volume in X, Y and Z directions, when set to World Space Position mode. This makes most sense if you want the
volume in an exact 3D location.
Rotation: -1.0 - 1.0
Rotate the volume.
Feather Width: 0.0 - 1.0
Set the Fall-off distance/fading of the Volume shape.

Example Images

Alveolus

Alveolus

In: Generators/Patterns

Simple

Description

A soft-sphere pattern that can altenatively generate hexagon tiles.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Gradient Filled Cells: False/True
Switches to sharp edges, making sharp-edged hexagon tiles.
Interstice Width: 0.0 - 1.0
Only works when the above option is set to "False". Changes interstice size.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Arc Pavement

Arc Pavement

In: Generators/Patterns

Intermediate

Description

Generates a Parisian arc pavement pattern. This effect cannot be achieved with standard Tile Generator or Tile Sampler, hence this dedicated
node.

Parameters

Scale: 1 - 8
Sets global scale/tiling.
Pattern Amount: 1 - 32
Sets amount of bricks used in every arc.
Pattern Amount Random: 0.0 - 1.0
Randomises the amount of bricks in every arc. Has the added effect of giving bricks different scales.
Pattern Minimum Amount: 1 - 10
Controls the minimum amount of bricks when randomising arcs.
Arcs Amount: 0 - 20
Sets the amount of arcs stacked vertically. Changes brick height.
Pattern: Input Image, Square, Disc, Paraboloid, Bell, Gaussian, Thorn, Pyramid, Brick, Gradations, Waves, Half Bell, Ridged Bell,
Crescent, Capsule, Cone
Selects what pattern shape to use.
Input Image Filtering: Bilinear + Mipmaps, Bilinear, Nearest
Pattern Scale: 0.0 - 1.0
Sets scale for each tile.
Pattern Width: 0.0 - 1.0
Sets width for each tile.
Pattern Height: 0.0 - 1.0
Sets height for each tile.
Pattern Width Random: 0.0 - 1.0
Randomises tile width.
Pattern Height Random: 0.0 - 1.0
Randomises tile height.
Global Pattern Width Random: 0.0 - 1.0
Randomises tile width, without creating bigger gaps between them.
Pattern Height Decrease: 0.0 - 1.0
Controls squashing of tile height at the ends of every arc.
Color Random: 0.0 - 1.0
Randomises tile colors.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Brick 1

Brick 1

In: Generators/Patterns

Simple

Description

Simple Brick Pattern, see Brick Generator or Tile Generator for more options.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Edge Smoothness: 0.0 - 1.0
Blends between harsh and smooth edges.
Interstice Width: 0.0 - 1.0
Sets interstice (gap size).
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Brick 2

Brick 2

In: Generators/Patterns

Simple

Description

Simple Brick Pattern, see Brick Generator or Tile Generator for more options.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Edge Smoothness: 0.0 - 1.0
Blends between harsh and smooth edges.
Interstice Width: 0.0 - 1.0
Sets interstice (gap size).
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Brick 3
Brick 3

In: Generators/Patterns

Intermediate

Description

Description

More advanced Brick Pattern, with support for luminance variation. See Brick Generator or Tile Generator for more options.

Parameters

Roundness: 0.0 - 1.0


Sets brick edges rounding/falloff.
Luminance Variation: 0.0 - 1.0
How much luminance variation there should be between bricks.
Luminance Variation Seed: 1 - 1000
Sets the random seed for above variation.
Random Position: 1 - 1000
Re-randomises the Luminance offset.
Disorder: 0.0 - 100.0
Jumbles the position of bricks to slightly random offsets.
Tiling: 1 - 16
Sets the amount of times the result should tile.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Brick Generator
Brick Generator

In: Generators/Patterns

Intermediate

Description

Advanced Brick-pattern generator. Has a lot of options for specifically generating man-made brick patterns

For more options see Tile Generator.

Parameters
Click here to expand parameters...

Bricks: 1 - 64
Sets the amount of bricks in both X- and Y-axes.
Bevel: 0.0 - 1.0
Changes the bevel profile for the bricks, allows for changing in two directions as well as setting falloff profile and corner rounding.
Keep Ratio: False/True
Makes the Bevel profile tied to brick size or not.
Gap: 0.0 - 1.0
Gap to leave between bricks. Keep in mind Bevel also introduces a gap, so setting bevels too means you have to compensate with
this parameter.
Middle Size: 0.0 - 1.0
Brick pattern offset, changes size of every other column or row.
Height: -1.0 - 1.0
Modifies height profiles. Allows for introduction of Luminance variation and all kinds of randomisation.
Slope: -1.0 - 1.0
Introduces a slope on a per-brick basis, as if certain bricks are lying at an angle.
Offset: 0.0 - 1.0
Offsets bricks on a row-basis, affects per-row spacing.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Checker 1

Checker 1

In: Generators/Patterns
Simple

Description

Very simple Checker pattern. Tiling is deliberately set low to make it as generic as possible.

It is a useful pattern for test cases, due to its obvious contrast and tiling.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Rotate 45 Degrees: False/True
Rotates the whole pattern 45 degrees.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Checker 2

Checker 2

In: Generators/Patterns

Simple

Description

Small-scale checker pattern with built-in Luminance variation. This one works more like a pixelated random noise than a true "Checker Pattern".

Parameters

Luminance Variation: 0.0 - 1.0


Amount of Luminance variation to blend in.
Disorder: 0.0 - 100.0
Randomises the position of every tile, moving them around in a random way.
Tiling: 1 - 16
Sets the amount of times the result should tile.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Cube 3D

Cube 3D

In: Generators/Patterns

Simple

Description

Renders a grayscale 3D cube with shading that also serves as screen-depth. The resulting cube has super-sharp and crisp edges when used
with high precision bit-depths. Very interesting and useful!

Parameters

Orientation Offset:
Allows for 3D-like X- and Y-rotation of the cube. Can also be done by manipulating the small dot in the 2D preview (as shown on the
example below)
Size: 0.0 - 1.0
Allows for non-uniform rescaling of the cube.
Scale: 0.0 - 1.0
Rescales entire cube uniformly.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Cube 3D GBuffers

Cube 3D GBuffers

In: Generators/Patterns

Simple

Description

Advanced version of Cube 3D that also outputs Position and normal maps instead of heightmap only.

Parameters

Orientation Offset:
Allows for 3D-like X- and Y-rotation of the cube. Can also be done by manipulating the small dot in the 2D preview.
Size: 0.0 - 1.0
Allows for non-uniform rescaling of the cube.
Scale: 0.0 - 1.0
Rescales entire cube uniformly.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Fibers 1

Fibers 1

In: Generators/Patterns
Simple

Description

Simple fiber-like pattern. Can be used for rope, mesh or cloth Heightmaps and details.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Fibers 2

Fibers 2

In: Generators/Patterns

Simple

Description

Simple cloth-like pattern. Can be used for mesh, cloth or other organic Height- and Detailmaps. Also see Fibers 1 for a smaller version.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Gaussian 1

Gaussian 1

In: Generators/Patterns

Simple

Description

Simple gaussian blob pattern.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Gaussian 2
Gaussian 2

In: Generators/Patterns

Simple

Description

Simple gaussian blob pattern.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Gradient Linear 1

Gradient Linear 1

In: Generators/Patterns

Simple

Description

Simple black-and-white linear gradient. Gives a perfectly smooth, interpolated result for a perfect gradient transition.
Despite its simplicity, this is an extremely useful pattern that can be used as a building block with many other nodes! Try it together with a Histogra
m Scan, for example.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Rotation: 0°, 90°, 180°, 270°
Rotates along a predefined angle. Changes the direction of the gradient.

Example Images

Gradient Linear 2

Gradient Linear 2

In: Generators/Patterns

Simple

Description

Simple, smooth double-sided gradient. Gives a perfect black-white-black gradient with perfect interpolation.

Despite its simplicity, it's very useful and can serve many purposes. Try it together with a Histogram Scan, for example!

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Rotation: 0, 90°
Changes the direction from left-right to top-bottom, or vice versa.

Example Images
Gradient Linear 3

Gradient Linear 3

In: Generators/Patterns

Simple

Description

The most advanced linear gradient. Instead of the rounded, pipe-like profile of Linear Gradient 2, this node returns a sharp, straight slope, plus
provides additional control for the midpoint.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Position: 0.0 - 1.0
Sets where the midpoint or peak of the gradient lies.
Rotation: 0, 90°
Changes the direction from left-right to top-bottom, or vice versa.

Example Images

Mesh 1
Mesh 1

In: Generators/Patterns

Simple

Description

Simple mesh pattern with thin blocks. Good for creating height and detail maps.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Rotate 45 Degrees: False/True
Rotates result 45 degrees.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Mesh 2

Mesh 2

In: Generators/Patterns

Simple

Description

Simple mesh pattern with fat blocks. Can be used to create height and detail maps.
Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Rotate 45 Degrees: False/True
Rotates the result.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Panorama Shape

Panorama Shape

In: Generators/Patterns

Complex

Description

This is a helpful node for generating procedural "Studio"-type panorama maps. Allows you to place and modify spotlight images, as well as set
their HDR properties. It can be chained together for multiple shapes.

Parameters
Click here to expand parameters...

Shape Matrix
Moves or translates the result, can be modified by directly interacting with the canvas.
Shape: square, disc
Sets Shape type.
Shape Color: (Color value)
Sets Shape color.
Shape Intensity: 0.0 - 100.0
Sets HDR-intensity of the shape.
Shape Soft Border: 0.0 - 1.0
Changes the shape's border softness.
Hotspot Intensity: 0.0 - 100.0
Sets HDR-intensity of the shape's hotspot.
Hotspot Size: 0.0 - 1.0
Changes the size of the hotspot within the shape.
Hotspot Falloff: 0.0 - 1.0
Changes the falloff, edge blending of the hotspot.
Hotspot Position: 0.0 - 1.0
Moves the hotspot in relation to the shape.
Enable Backgound: False/True
Enables filling of the background with a solid color. Note that this means you can no longer chain them together by blending.
Background Color: (Color value)
Sets background solid color.
Enable Texture Input: False/True
Allows for a custom input instead of a predefined shape type.

Example Images

Polygon 1

Polygon 1

In: Generators/Patterns

Intermediate

Description

Generates a polygon shape, with many options for adjustment. See Polygon 2 for a simpler version.

Parameters

Sides: 3 - 32
Sets the amount of sides the polygon should have.
Explode: 0.0 - 1.0
Moves polygon "slices" apart.
Triangle Size: 0.0 - 1.0
Adjusts size of slices/triangles. Any adjustment could break the shape apart, only 1,1. is perfectly connected!
Scale: 0.0 - 1.0
Scales the whole shape as one.
Auto Scale: False/True
Adjusts scales so the whole polygon fits into view, with default parameters.
Rotation: 0.0 - 1.0
Rotates the entire shape.
Gradient: False/True
Generates gradient slices/triangles instead of solid ones. Note: becomes similar to Polygon 2 with this setting enabled.
Gradient Invert: False/True
Flips the gradient direction if "Gradient" is enabled.
Tiling: 1 - 16
Sets the amount of times the result should tile.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.
Non Square Tiling: False/True
When Non Square Expansion is enabled, this will tile the shape without squashing.

Example Images
Polygon 2

Polygon 2

In: Generators/Patterns

Intermediate

Description

Generates a smooth gradient polygon shape with options for adjustment. See Polygon 1 for a more advanced version.

Parameters

Sides: 3 - 32
Amount of sides.
Scale: 0.0 - 1.0
Sets global scale.
Rotation: 0.0 - 1.0
Rotates entire shape.
Curve: -1.0 - 1.0
Modifies the gradient profile curve.
Gradient: 0.0 - 1.0
Adjusts gradient contrast.
Invert Gradient: False/True
Inverts gradient direction.
Auto Scale: False/True
Scales to fit in canvas with default settings.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Scratches Generator

Scratches Generator (Normal)

In: Generators/Patterns

Complex

Description

This places random scratches with a lot of customisation options, for example allowing you to set direction, spread and distortion.

There's a special version of Scratches Generator, Scratches Generator Normal, which generates Normalmaps based on the depth of these
scratches. Most options are exactly the same, but it has a few extra parameters clearly marked for Normal settings (see below).

Parameters
Click here to expand parameters...

Spline Number: 1 - 512


Amount of scratches (splines) to place.
Max Segments Per Spline: 2 - 256
Amount of segments/subdivisions over the length of a scratch. Leads to smoother curves and distortions. The effect is more
noticeable with higher Distortion values.
Spline Rotation: 0.0 - 1.0
Uniform rotation of all splines, to orient them in a direction.
Spline Rotation Random: 0.0 - 1.0
Variation of angle, randomly rotates every spline.
Spline Scale: 0.0 - 1.0
Uniformly scales all splines.
Spline Scale Random: 0.0 - 1.0
Randomly scales each spline individually.
Spline Distortion: 0.0 - 1.0
Uniform distortion level across all splines.
Spline Distortion Random: 0.0 - 1.0
Randomises the level of distortion of each spline individually.
Spline Distortion Frequency: 0.0 - 1.0
Sets the frequency of distortion, controls the scale of distortion detail.
Spline Width: 0.0 - 2.0
Sets the width of all splines uniformly.
Spline Width Random: 0.0 - 1.0
Randomises the spline width of each spline individually.
Spline Position Random: 0.0 - 1.0
Randomises the position of each spline individually. The lower this value, the more splines will cluster to the center of the canvas.
Can be used to create spots of scratches.
Set Spline Width in px: False/True
Determines the units used for spline width settings.
Luminance Random (Grayscale version only): 0.0 - 1.0
Randomises the Luminance of each spline individually.
Normal Intensity (Normal version only): 0.0 - 1.0
Sets the strength of the Normal effect for every spline globally.
Normal Intensity Random (Normal version only): 0.0 - 1.0
Randomises the normal strength for each spline individually.
Normal Format (Normal version only): DirectX, OpenGL
Switches between different Normalmap formats (inverts the green channel).
Fade Mode: None, Start, End, Start + End
Sets whether and in what direction the splines fade.
Fade Length: 0.0 - 1.0
Sets the length of the fade effect, if enabled above.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Shape

Shape

In: Generators/Patterns

Intermediate

Description

Generates a variety of procedural shapes, with options to modify base shapes. The shapes are always perfectly interpolated and high-precision.

Despite its simplicity, this is a very useful node: it is the building block of most procedural Heightmap generation! By combining basic shapes with
transform nodes, you can create a fully-procedural Heightmap shape that is much more precise than any bitmap.

Parameters
Tiling: 1 - 16
Sets the amount of times the result should tile.
Pattern: Square, Disc, Paraboloid, Bell, Gaussian, Thorn, Pyramid, Brick, Gradation, Waves, Half Bell, Ridged Bell, Crescant, Capsule,
Cone
Selects what pattern shape to use.
Pattern Specific: 0.0 - 1.0
Lets you change the selected pattern's shape. The effect is dependent on the selected pattern.
Scale: 0.0 - 1.0
Scales the entire shape.
Size: 0.0 - 1.0
Allows for non-uniform scaling over either X- or Y-axis.
Angle: 0.0 - 1.0
Rotates the entire shape.
Rotation 45°: False/True
Rotates at pre-set 45 degrees.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.
Non Square Tiling: False/True
When Non Square Expansion is enabled, this will tile the shape without squashing.

Example Images

Shape Mapper

Shape Mapper

In: Generators/Patterns

Intermediate

Description

Seamlessly distorts and maps an input pattern along a circle or polygonal path. Similar to Splatter Circular, but with the difference being that it
distorts the shapes to perfectly follow the path. It can be useful for certain specific cases, for example when you want Heightmap to be bent into a
circle.

Parameters

Shape: Circle, Polygon


Sets the shape of the path.
Pattern Amount: 0 - 10
Number of Patterns to place along path.
Link Segments with Pattern Amount: False/True
Only for polygons, the segments and Pattern Amount are linked together, so no patterns run over corners, leading to the perception that
the Pattern Amount does not work.
Segments: 1 - 16
Only for Polygon shapes, sets the amount of segments.
Radius: 0.0 - 1.0
Inner Radius of the path.
Width: 0.0 - 1.0
Width of patterns being placed along path.
Rotation: 0.0 - 1.0
Rotates the entire path.
Flip one on two: False/True
Flips every other pattern tile.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Splatter
Splatter (Color)

In: Generators/Patterns

Complex

Description

Splatter is a pattern generator intended for random placement of a map input. It has many controls for geometrically patterned placement, and is
simpler in use than Tile Generator. The latter can achieve similar results, but is much more complex.

Splatter works well for quickly getting some shapes stamped down, without needing too much tweaking.

Keep in mind that the default Splatter parameters do not look random at all: you need to tweak a few of them to get randomisation (mainly
Disorder parameters). Also keep in mind that Splatter requires a map input to work.

Parameters
Click here to expand parameters...

Pattern Size Width: 0.0 - 1000.0


Number of patterns to use on the X-axis.
Pattern Size Height: 0.0 - 1000.0
Number of patterns to use on the Y-axis.
Rotation: -360.0 - 360.0
Rotates every pattern by a set amount.
Rotation Variation: 0.0 - 360.0
Introduces random rotation for every separate shape.
Zoom: 100.0 - 10000.0
Scales up the final result. Keep in mind that this breaks tiling!
Gain: 0.0 - 10.0
Adjusts blending gain of every pattern. Makes them stand out more.
Pan X: -100.0 - 100.0
Pans whole result on X-axis.
Pan Y: -100.0 - 100.0
Pans whole result on Y-axis.
Disorder: 0.0 - 100.0
Randomly shifts shapes.
Grid Number: 0 - 8
Jumps through different grid sizes to adjust result scale. Maintains tiling.
Disorder Angle: 0.0 - 360.0
Controls the angle of disorder shifting.
Disorder Random: False/True
Randomises the disorder angle, adding much more chaos.
Pattern Size: 5 - 12
Size Variation: 0.0 - 100.0
Introduces random scaling for every shape.
Image Input Filtering (Engine > v4 only): Bilinear + Mipmaps, Bilinear, Nearest
Which filtering to apply to the input image.
Output Level Min: 0.0 - 1.0
Out minimum level adjustment.
Output Level Max: 0.0 - 1.0
Out maximum level adjustment.
Background Color: (Grayscale value)
Sets solid background color.
Luminance Variation: 0.0 - 1.0 (Grayscale version only)
Introduces luminance variation.
Color Variation: 0.0 - 1.0 (Color Version Only)
Introduces color variation.

Example Images

Splatter Circular

Splatter Circular (Color)

In: Generators/Patterns

Complex

Description

Splatter Circular generates a ring-based pattern with various controls. It can use pre-defined shapes or custom inputs. It's similar to Tile Generator
, but with a circular placement instead of a grid.

This is useful for when you want to place shapes in a circular way with various randomisation options.

Parameters
Click here to expand parameters...

Inputs

Both inputs are optional.


Pattern Image Input 1-6: Grayscale Input (Color input)
Splatter Circular only: Custom pattern image, used when the "Pattern" parameter is set to "Image Input".
Background: Grayscale Input (Color input)

Parameters

Pattern Amount: 1 - 64
Amount of pattern tiles to place on a ring.
Pattern Amount Random: 0.0 - 1.0
Randomisation of the amount of patterns to be placed. Best used with a Ring Amount higher than 1.
Pattern Amount Random Min: 1 - 10
Sets the minimal amount of patterns for randomisation.
Ring Amount: 1 - 10
Sets the number of rings to fill. The rings are always placed inside the outer one, and space evenly.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.
Pattern
Pattern: Image Input, Square, Disc, Paraboloid, Bell, Gaussian, Thorn, Pyramid, Brick, Gradation, Waves, Half Bell, Ridged
Bell, Crescent, Capsule, Cone
Selects what pattern shape to use.
Pattern Input Number: 1 - 6
Sets number of different Image inputs to use. Only available when Image Input is selected above.
Pattern Input Distribution: Random, By Pattern Number, By Ring Number
Sets how multiple Pattern Inputs are chosen. Random means a random one is chosen, Pattern Number means they are just
placed in a looping sequence, By ring numbers means every ring has a different one in sequence.
Image Input Filtering: Bilinear + Mipmaps, Bilinear, Nearest
Pattern Specific: 0.0 - 1.0
Lets you change the selected pattern's shape. The effect is dependent on the selected pattern.
Symmetry Random: 0.0 - 1.0
Sets the number of tiles that should be randomly flipped/mirrored according to the below behaviour.
Symmetry Random Mode: Horizontal + Vertical, Horizontal, Vertical
Determines symmetry mirroring behaviour.
Position
Radius: 0.0 - 1.0
Sets the radius from the center at which the patterns are placed.
Radius Random: 0.0 - 1.0
Randomises the radius for every pattern tile.
Ring Radius Multiplier: 0.0 - 1.0
Affects spacing of multiple rings.
Angle Random: 0.0 - 1.0
Randomises the angle of each pattern. A higher amounts means more rotation.
Spiral Factor: 0.0 - 1.0
Turns the rings into Spirals, where every tile is placed at a slightly increasing radius.
Spread: 0.0 - 2.0
Sets the amount of turns a ring does. This can be increased beyond its limits.
Offset along Direction: 0.0 - 1.0
Moves every pattern out from the center along its angle. The effect greatly depends on Angle Random, or it looks just like a
multiplier for the Radius.
Global Offset: 0.0 - 1.0
Translates the entire shape.
Size
Connect Patterns: False/True
Makes the length of pattern tiles dependent on the radius, meaning each shape should touch the previous and next one.
Size (Connected): 0.0 - 1.0
Changes the size of each pattern globally. When connected, it's relative to the total radius.
Size Random: 0.0 - 1.0
Randomises the size of each pattern individually.
Scale: 0.0 - 2.0
Uniformly scales each pattern.
Scale Random: 0.0 - 1.0
Randomises uniform scaling.
Scale by Pattern Number: 0.0 - 1.0
Makes the pattern scale dependent on the position along the ring.
Invert Pattern Number: False/True
Used with the previous option, this can invert scaling from small to large and vice-versa.
Scale by Ring Number: 0.0 - 1.0
Makes scale dependent on ring number.
Invert Ring Number: False/True
Used with the previous option, it can invert scaling from small to large and vice-versa.
Rotation
Pattern Rotation: 0.0 - 1.0
Rotates every pattern uniformly.
Pattern Rotation Random: 0.0 - 1.0
Randomises pattern rotation.
Pattern Rotation Pivot: Center, Min X, Max X, Min Y, Max Y
Sets the pivot point position around which to rotate every pattern individually.
Center Orientation: False/True
Rotates every pattern so it faces towards the center of the ring. Turning it of gives them all the same orientation - this can
produce unwanted effects with Offset along direction.
Ring Rotation: 0.0 - 1.0
Rotates entire ring around center.
Ring Rotation Random: 0.0 - 1.0
Randomises rotation per ring.
Ring Rotation Offset: 0.0 - 1.0
Offsets rotation per ring.
Color
Color: (Grayscale value)
Color to multiply with selected pattern.
Luminance Random: 0.0 - 1.0
Randomizss color or Luminance for every pattern tile.
Luminance By Scale: 0.0 - 1.0
Makes Luminance dependent on the individual pattern scale.
Luminance by Pattern Number: 0.0 - 1.0
Makes Luminance dependent on the pattern sequence. Can for example be used with spirals.
Invert Pattern Number: False/True
Inverts the previous option.
Luminance by Ring Number: 0.0 - 1.0
Makes Luminance dependent on the ring sequence.
Invert Ring Number: False/True
Inverts the previous option.
Random Mask: 0.0 - 1.0
Randomly hides patterns.
Background Color: (Grayscale value)
Changes solid background color.
Blending Mode: Add, Max, Add Sub
Sets how to blend overlapping patterns.
Global Opacity: 0.0 - 1.0
Sets the global opacity of the entire result.

Example Images

Star
Star

In: Generators/Patterns

Simple

Description

Generates a five-pointed star.

Parameters

Scale: 0.0 - 1.0


Scales the entire shape uniformly.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Starburst

Starburst

In: Generators/Patterns

Intermediate

Description

Generates a simple starburst effect, with adjustment parameters available.

Parameters

Branches: 3 - 512
Amount of branches for the effect.
Blur Amount: 0.0 - 32.0
Controls total amount of blurring or softness.
Randomness: 0.0 - 1.0
Sets axial randomness, rotates branches randomly around center.
Size Min: 0.0 - 1.0
Sets minimum size for variation.
Size Max: 0.0 - 2.0
Sets maximum size, controls global scale if variation is not used.
Size Variation: 0.0 - 1.0
Introduces random scaling per branch.
Tiling: 1 - 16
Sets the amount of times the result should tile.

Example Images

Stripes

Stripes

In: Generators/Patterns

Intermediate

Description

Generates a tiling, angled, stripe pattern. The pattern adjusts itself to always ensure continuity.

Parameters

Stripes: 1 - 100
Sets the amount of stripes. Automatically shifts the result to ensure tiling.
Width: 0.0 - 1.0
Sets Stripe width.
Softness: 0.0 - 1.0
Sets the transition of the stripe edges.
Shift: 0 - 20
Tilts the stripes. Automatically adds more stripes to ensure tiling.
Align: Edges, Center
Sets pivot for Shifting.
Filtering: False/True
Enables filtering.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Tile Generator

Tile Generator (Color)

In: Generators/Patterns

Complex

Description

Tile generator is one of the most advanced nodes in the library. If you learn to master it, you can create any kind of pattern (within some
limitations). As of Version 2017 2.1 there have been some big updates, bringing this node more in line with what Tile Sampler can do.

This node is highly useful for a variety of scenarios, but keep in mind that simply reading parameters will not fully teach you how to use them. We
suggest you experiment too!

For 99% of all cases, the color version is NOT needed!

Some general usage tips:

You can start with a basic shape, but if you have a custom input (Set Pattern Type to Image Input), create it first! It determines a lot of
the look.
Start by correctly setting your X and Y amounts.
Adjust global Scale and non-uniform Size next.
Finally, tweak any "Variation" parameter until it meets your needs. Subtlety is key with variation!

Parameters
Click here to expand parameters...

Inputs

Pattern Input 1-6: Grayscale Input


Custom pattern image, used when the "Pattern" parameter is set to "Image Input".
Background:Grayscale Input
Background to use instead of solid color.

Parameters

X Amount: 1 - 64
Amount of X-repetitions of the pattern.
Y Amount: 1 - 64
Amount of Y-repetitions of the pattern.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.
Pattern
Pattern: Image Input, Square, Disc, Paraboloid, Bell, Gaussian, Thorn, Pyramid, Brick, Gradation, Waves, Half Bell, Ridged
Bell, Crescent, Capsule, Cone
Selects which pattern shape to use.
Pattern Input Number: 1 - 6
Number of different Image inputs to use. Only available when Image Input is selected above.
Pattern Input Distribution: Random, By Pattern Number
How to pick between the different Image Inputs, if more than 1 is selected.
Pattern Specific: 0.0 - 1.0
Lets you change the selected pattern's shape. Effect is dependent on selected pattern.
Image Input Filtering (Engine >v4 only): Bilinear + Mipmaps, Bilinear, Nearest
Rotation: 0, 90, 180, 270
Rotates all tiles globally by a set angle in 90 degree steps.
Rotation Random: 0.0 - 1.0
Randomy rotates a tile by one of four 90 degree steps.
Quincunx Flip: False/True
Rotates every other tile by 90 degrees.
Symmetry Random: 0.0 - 1.0
Randomly mirrors certain patterns by the selected Symmetry random Mode. The higher this value, the more patterns will be
mirrored.
Symmetry Random Mode: Horizontal + Vertical, Horizontal, Vertical
Determines mirroring behaviour when Symmetry random is higher than 0.
Size
Middle Size: 0.0 - 1.0
Changes size on an alternating column- and row-basis.
Interstice X/Y: 0.0 - 1.0
Changes interstice gap. Affects the seam between shapes, allows for non-uniform control unlike Scale.
Scale: 0.0 - 2.0
Sets global Scale.
Scale Random: 0.0 - 1.0
Sets global scale variation per-tile.
Scale Random Seed: 0 - 1000
Offsets scale variation seed.
Position
Offset: 0.0 - 1.0
Offsets the entire pattern incrementally over every consecutive row or column (behaviour depends on Vertical Offset
parameter).
Offset Random: 0.0 - 1.0
Randomises line offsetting.
Offset Random Seed: 0 - 1000
Changes the relative seed for the random offsetting effect.
Vertical Offset: False/True
Sets whether Offset effect happens over rows or lines; Horizontal or Vertical.
Position Random: 0.0 - 1.0
Randomises position in a non-uniform way, with separate control for X and Y.
Global Offset: 0.0 - 1.0
Shifts the entire result over both X- and Y-axes.
Rotation
Rotation: 0.0 - 1.0
Does a uniform free Rotation of all pattern tiles.
Rotation Random: 0.0 - 1.0
Randomises free rotation of all tiles. The higher this value, the more tiles can be rotated.
Color
Color: (Grayscale value)
Sets tile solid color.
Luminance/Color Random: 0.0 - 1.0
Introduces per-tile Color or Luminance variation.
Luminance By Number: False/True
Fades Luminance over the entire pattern.
Luminance By Scale: False/True
Makes Luminance variation dependent on tile scale.
Checker Mask: False/True
Hides every other tile.
Horizontal Mask: False/True
Hides every other column.
Vertical Mask: False/True
Hides every other row.
Random Mask: 0.0 - 1.0
Randomly hides tiles. The higher this value, the more tiles will disappear.
Invert Mask: False/True
Inverts the result of any masking effects from this section.
Blending Mode: Add, Max, Add Sub
Sets what blending mode to use.
Background Color: (Grayscale value)
Sets solid background color.
Global Opacity: 0.0 - 1.0
Sets global tiles opacity.
Reverse Rendering Order: False/True
Renders tiles back to front or vice-versa.

Example Images

Example shows randomizes tiles and patterns, previously reserved for Tile Sampler nodes.
Tile Random

Tile Random (Color)

In: Generators/Patterns

Complex

Description

Tile Random generates a procedural tile pattern that has a little bit more chaos in the tile shapes than its counterpart, Tile Generator. It does this
by randomly splitting certain tiles into smaller tiles. We suggest you first find your way around Tile Generator before tackling Tile Random, as
many concepts are similar.

Tile Random is used instead of Tile Generator when the goal is an older-looking, less organised pattern. It does have its limitations though, so
consider Tile Sampler for any other advanced needs.

Parameters
Click here to expand parameters...

Inputs

Pattern Input: Grayscale Input (Color Input)


Custom pattern image, used when the "Pattern" parameter is set to "Image Input".
Background Input: Grayscale Input (Color input)
Parameters

X Amount: 1 - 64
Amount of X-repetitions of the pattern.
Y Amount: 1 - 64
Amount of Y-repetitions of the pattern.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.
Pattern
Pattern: Pattern Input, Square, Disc, Paraboloid, Bell, Gaussian, Thorn, Pyramid, Brick, Gradation, Waves, Half Bell,
Ridged Bell, Crescent, Capsule, Cone
Selects what pattern shape to use.
Image Input Filtering (Engine > v4): Bilinear + Mipmaps, Bilinear, Nearest
Pattern Specific: 0.0 - 1.0
Lets you change the selected pattern's shape. The effect is dependent on the selected pattern.
Pattern Specific Random: 0.0 - 1.0
Randomisation effect is dependent on the selected pattern.
Rotation: 0, 90, 180, 270, random horizontal, random vertical
Sets rotation in 90 degree steps, with optional randomisation.
Rotation Random: 0.0 - 1.0
Adds random free rotation.
Symmetry Random: 0.0 - 1.0
Randomly mirrors certain patterns by the selected Symmetry random Mode. The higher this value, the more patterns will be
mirrored.
Symmetry Random Mode: Horizontal + Vertical, Horizontal, Vertical
Determines mirroring behaviour when Symmetry random is higher than 0.
Split
Mode: none, auto, auto horizontal, auto vertical, random h+v
Sets the rule on how to split tiles.
Threshold: 0.0 - 1.0
Size treshold for when to split a tile.
Multiplier: 0 - 10
Splitting multiplier. The higher this value, the more splits.
Size
Random X: 0.0 - 1.0
Randomises non-uniform scaling over X-axis.
Random Y: 0.0 - 1.0
Randomises non-uniform scaling over Y-axis.
Interstice
Mode: Relative to smallest brick, Relative to largest brick
Sets what brick size interstice is relative to.
Amount: 0.0 - 1.0
Sets gap size between bricks.
Shape
Scale: 0.0 - 1.0
Globally scales every tile.
Scale Random: 0.0 - 1.0
Random scaling on a per-tile basis.
Rotation: 0.0 - 1.0
Global rotation for every tile.
Rotation Random: 0.0 - 1.0
Rotates randomly on a per-tile basis.
Rotation Constraint: False/True
Constrains the scale so rotated tiles never overlap.
Position
Offset: 0.0 - 1.0
Moves or translates the tiles globally, slides over X-axis only
Offset Random: 0.0 - 1.0
Randomises offset per-tile, slides over X-axis only
Random: 0.0 - 1.0
Randomises position, tiles move on both X- and Y-axis.
Random Constraints: False/True
Constrains scale so tiles touch, but don't overlap. Tones down the Random Position effect significantly.
Color
Color: (Grayscale value) / (Color value)
Sets solid color for all tiles.
Color Random: 0.0 - 1.0
Randomises color on a per-tile basis.
Color Parametrisation: none, area, size x, size y
Makes color variation dependent on one of these settings.
Color Parametrisation Intensity: 0.0 - 1.0
Multiplier for the above Parametrisation effect.
Color Parametrisation Effect (for Color only): RGB+Alpha, RGB only, Alpha only
Determines color-only parametrisation effect.
Background Color: (Grayscale value) / (Color value)
Sets solid background color.
Blending Mode: Add/Sub, Max / Add/Sub, Alpha Blend (Color)
Sets blending mode for tiles onto background.
Mask
Random: 0.0 - 1.0
Randomly begins masking out tiles. The higher the value, the more tiles dissappear.
Invert: False/True
Inverts the mask result.

Example Images

Tile Sampler

Tile Sampler (Color)

In: Generators/Patterns

Complex

Description

Tile Sampler is the ultimate tile-pattern generating node. It's an evolved, more complex version of Tile Generator. As of 2017 2.1, the differences
are much smaller between Tile Sampler and Generator. The main differences are now only in the seven different map slots which are available
for driving Scale, Position, Rotation, Size, Color and Masking. Their effect can be blended in separately.

Tile Sampler is useful for creating man-made procedural patterns, with additional control over certain parameters driven by external input maps.

Make sure you are familiar with Tile Generator before moving on to Tile Sampler. In most cases, you'll find Tile Generator suffices and you won't
need the added complexity of Tile Sampler.

Parameters
Click here to expand parameters...

Inputs
Pattern Input 1-6: Grayscale Input / Color Input
Custom pattern image, used when the "Pattern" parameter is set to "Image Input".
The amount of available inputs is determined by the Pattern Input Number parameter.
Scale Map Input: Grayscale Input
Grayscale map to drive tile scaling.
Displacement Map Input: Grayscale Input
Grayscale map to drive tile displacement.
Rotation Map Input: Grayscale Input
Grayscale map to drive tile rotation.
Vector Map Input: Color Input
Color vector map to drive non-uniform scaling.
Color Map Input: Grayscale Input / Color Input
Map to drive per-tile tinting.
Mask Map Input: Grayscale Input
Mask slot used for hiding certain tiles.
Pattern Distribution Map Input: Grayscale Input
Mask slot used to drive multiple custom pattern inputs.
Background Input: Grayscale Input / Color Input
Optional background image.

Parameters

X Amount: 0 - 64
Amount of X-repetitions of the pattern.
Y Amount: 0 - 64
Amount of Y-repetitions of the pattern.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.
Pattern
Pattern: Pattern Input, Square, Disc, Paraboloid, Bell, Gaussian, Thorn, Pyramid, Brick, Gradation, Waves, Half bell,
Ridged Bell, Crescent, Capsule, Cone
Selects what pattern shape to use.
Pattern Input Number: 1 - 6
Amount of custom patterns to randomly choose from.
Pattern Input Distribution: Random, Pattern Number, Distribution Map
Sets how multiple Pattern Inputs are chosen. Random means a random one is chosen, Pattern Number means they are just
placed in a looping sequence. Distribution map uses a grayscale map input to drive placement.
Pattern Input Filtering (Engine > v4): Bilinear + Mipmaps, Bilinear, Nearest
Pattern Specific: 0.0 - 1.0
Lets you change the selected pattern's shape. The effect is dependent on the selected pattern.
Pattern Specific Random: 0.0 - 1.0
The randomisation effect is dependent on the selected pattern.
Rotation: 0, 90, 180, 270
Stepped rotation (90 degree).
Rotation Random: 0.0 - 1.0
Random free-rotation on a per-tile basis.
Symmetry Random: 0.0 - 1.0
Sets the number of tiles that should be randomly flipped/mirrored according to below behaviour.
Symmetry Random Mode: Horizontal + Vertical, Horizontal, Vertical
Determines symmetry mirroring behaviour.
Size
Size: 0.0 - 1.0
Changes non-uniform proportions for tiles.
Size Random: 0.0 - 1.0
Randomises proportions per-tile.
Scale: 0.0 - 10.0
Sets global tile scale.
Scale Random: 0.0 - 1.0
Randomises scale per-tile
Scale Map Multiplier: 0.0 - 1.0
Blends in the effect of the Scale map.
Scale Vector Map Multiplier: 0.0 - 1.0
Blends in the effect of the scale vector map to drive non-uniform scaling.
Scale Parametrization Affect: X and Y, X, Y
Sets how the scale parametrization is driven.
Position
Position Random: 0.0 - 10.0
Randomises tile position over both axes.
Offset: 0.0 - 1.0
Shifts tiles depending on Offset Type.
Offset Type: horizontal quincux, vertical quincux, horizontal global, vertical global
Changes which direction the Offset operates in.
Global Offset: 0.0 - 1.0
Globally offsets all tiles on X- or Y-axis.
Displacement Map Intensity: 0.0 - 1.0
Blends in the strength of the Displacement map on the Offset.
Displacement Angle: 0.0 - 1.0
Sets the angle at which to displace.
Vector Map Displacement: 0.0 - 1.0
Uses Vector map to drive displacement and Angle.
Rotation
Rotation: 0.0 - 1.0
Globally rotates all tiles.
Rotation Random: 0.0 - 1.0
Rotates randomly per-tile.
Rotation Map Multiplier: 0.0 - 1.0
Blends in the effect of Rotation map on per-Tile rotation.
Vector Map Multiplier: 0.0 - 1.0
Uses Vector Map to drive per-tile rotation.
Color
Mask Map Threshold: 0.0 - 1.0
Treshold for mask map when to start hiding tiles.
Mask Map Invert: False/True
Inverts Mask map effect.
Mask Map Sampling Technique: Pattern Center, Pattern Bounding Box (slower)
Whether hiding should be determined by a single point or by a bounding box. Avoids stray pixels causing strange effects.
Mask Random: 0.0 - 1.0
Random masking, works parallel to mask map.
Invert Mask: False/True
Inverts random masking.
Blending Mode: Add/Sub, Max (Tile Sampler) / Add/Sub, Alpha Blend (Tile Sampler Color)
Blend mode for tiles onto background and each other.
Color: (Grayscale value) / (Color value)
Solid, global tile color.
Color/Luminance Random: 0.0 - 1.0
Randomisation of color, per-tile.
Color Parametrization Mode: Color Input, Scale, Line Index, Row Index, Pattern Index (Tile Sampler)
/ Color Map, Scale, Line Index, Row Index, Pattern Index, Pattern Center Position, Pattern Center Position (RG) Bsphere
Size (B) (Tile Sampler Color)
Sets how exactly color randomisation is parametrised.
Color Parametrization Multiplier: 0.0 - 1.0
Blends in the above Parametrization effect.
Color Parametrization Affect (Color only): RGB+Alpha, RGB only, Alpha only
Sets how the Parametrization affects color.
Global Opacity (Grayscale only): 0.0 - 1.0
Sets global tile opacity.
Background Color: (Grayscale value) / (Color value)
Sets solid background color.
Reverse Rendering Order: False/True
Reverses rendering order to go from back to front.

Example Images
Example shows how parameters are driven by input maps (Pattern Distribution, Scale, Rotation).
Weave 1

Weave 1

In: Generators/Patterns

Simple

Description

Generates a simple weave pattern.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Rotate 45 Degrees: False/True
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Weave 2

Weave 2

In: Generators/Patterns

Simple

Description
Generates a simple weave pattern. Has controls for randomisation. At max disorder, this can even be used as a noise.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Disorder: 0.0 - 100.0
Jumbles around the stitches of the weave to introduce variation.
Rotate 45 Degrees: False/True
Rotates to pre-set angle.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Weave 3

Weave 3

In: Generators/Patterns

Simple

Description

Generates a simple weave pattern.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Rotate 45 Degrees: False/True
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images
Weave 4

Weave 4

In: Generators/Patterns

Simple

Description

Generates a simple weave pattern.

Parameters

Tiling: 1 - 16
Sets the amount of times the result should tile.
Rotate 45 Degrees: False/True
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Weave Generator
Weave Generator

In: Generators/Patterns

Intermediate

Description

This node generates a simple weave pattern with a few options. It allows for more control than the pre-defined weave patterns and presents a
pattern that cannot be achieved with other nodes.

Parameters

Tile X: 1 - 20
Sets how many blocks repeat on the X-axis.
Tile Y: 1 - 20
Set how many blocks repeat on the Y-axis.
Shape: 0.0 - 1.0
Sets curve height profile of the stitch.
Weave: 1 - 10
Sets how many stitches per block.
Gap: 0.0 - 1.0
Sets the gap between stitches on X- and Y-axis.
Non Square Expansion: False/True
Enables compensation of squash and stretch with non-square ratios.

Example Images

Filters
Filters are nodes that process an input to create a modified, "filtered" output, in a way you might be used to from other well-known imaging
applications. The big difference with Material Filters is that they only work on one (sometimes more) inputs that do not represent a full material.

Filters are one of the most used major categories. Apart from the Atomic nodes category, no other category is as useful when building textures
from scratch. Take the time to get to know each of the subcategories:

Adjustments
Expanded color, tone and value adjustments.
Blending
Advanced and expanded blending modes.
Blurs
Advanced, high-quality blurs.
Channels
Expanded Channel-mixing nodes.
Effects
Texturing-oriented image effects, as well as "Layer Style"-type effects.
Normal Map
Normal Map focused operations.
Tiling
Nodes focused on fixing and improving tiling.
Transforms
Advanced (mathematical) 2D-space transformation operations.

Adjustments
This is one of the main Filter categories, with nodes intended for adjusting the values and ranges of inputs in various ways. Most of the nodes are
an advanced, expanded way of using Levels and Blend nodes, and are intended as smarter shortcuts to certain operations.

Some good nodes to check out:

Histogram Scan
Invert
Auto Levels
Highpass

Auto Levels

Auto Levels

In: Filters/Adjustments

Simple

Description

Automatically adjusts the levels of the input to use the full range from black to white. This means the darkest value in the image will be adjusted
to full black, while the brightest value will be adjusted to full white, thereby maximising contrast.

Example Images

Channel Mixer
Channel Mixer

In: Filters/Adjustments

Simple

Description

Allows you to mix, swap and blend RGB channels. Can be used to swizzle channels around, do more accurate grayscale conversions and
different kinds of packing.

Parameters
Click here to expand parameters...

Red Channel: -200.0 - 200.0


Determines how much of the input RGB channels go into the output Red channel.
Green Channel: -200.0 - 200.0
Determines how much of the input RGB channels go into the output Green channel.
Blue Channel: -200.0 - 200.0
Determines how much of the input RGB channels go into the output Blue channel.
Monochrome: False/True
Output to monochrome. Allows for more precise grayscale conversion.

Example Images

Chrominance Extract

Chrominance Extract

In: Filters/Adjustments

Simple
Description

Extracts the Chrominance value from the input. The result has luminance stripped away.

Parameters
No parameters.

Example Images

Clamp

Clamp (Grayscale)

In: Filters/Adjustments

Simple

Description

Clamps input values to defined limits.

Parameters

Min: 0.0 - 1.0


Lower clamp limit.
Max: 0.0 - 1.0
Upper clamp limit.
Apply to Alpha: False/True (Color version only)
Choose whether clamping is applied to the alpha as well.

Example Images
Color Match

Color Match

In: Filters/Adjustments

Complex

Description

Tries to match the defined Source Color range to a Target Color range, with support for input slots to define Source and Target.

For simpler versions, see Replace Color Range or Replace Color.

Parameters
Click here to expand parameters...

Inputs

Input: Color Input


Main input to modify for result.
Source Color: Color Input
Input slot for Source color, only used when 'Source Color Mode' is set to Input.
Target Color: Color Input
Input slot for Target color, only used when 'Target Color Mode' is set to Input.

Parameters

Source Color Mode: Average, Parameter, Input


Sets whether Source Color is defined by averaging the input image, by setting a parameter, or by using an input slot.
Source Color: (Color value)
If Source Color Mode is set to Parameter, this parameter determines the Source Color.
Target Color Mode: Parameter, Image Input
Sets whether Source Color is defined by averaging the input image, by setting a parameter, or using an input slot.
Target Color: (Color value)
If Target Color Mode is set to Parameter, this parameter determines the Target Color.
Custom Color Variation: False/True
Enables an additional color variation.
Color Variation
Sets Hue, Chrominance or Luminance variations to the result if enabled.
Use Mask: False/True
Toggles masking on or off.
Mask
Determines where exactly the Color Matching effect is applied, with additional controls for smoothing and blurring out the resulting
mask.

Example Images

Aucune image jointe à cette page.

Color To Mask

Color to Mask

In: Filters/Adjustments

Intermediate

Description

Turns a selected color range into a black-and-white mask. Can be used on Material-ID maps to single out a specific range.

Parameters

Color: (Color value)


Which color to base the mask on.
Mask Range: 0.0 - 1.0
Width of the range that should be selected.
Mask Softness: 0.0 - 1.0
How hard the contrast/falloff of the mask should be.
Keying Type: RGB, Chrominance, Luminance
Keying type for isolating the color.
Flatten Alpha: False/True
Whether the alpha should be flattened for the result.

Example Images

Contrast/Luminosity
Contrast/Luminosity (Grayscale)

In: Filters/Adjustments

Simple

Description

A simple contrast and luminosity (brightness) adjustment.

Parameters

Contrast: -1.0 - 1.0


Adjusts the contrast of the result.
Luminosity: -1.0 - 1.0
Adjusts the luminosity (brightness) of the result.

Example Images

Convert To Linear
Convert to Linear (Grayscale)

In: Filters/Adjustments

Simple

Description

Converts an sRGB colorspace image to linear. Useful when converting photo source material for example.

Parameters
No parameters.

Example Images

Aucune image jointe à cette page.

Convert to sRGB

Convert to sRGB (Grayscale)

In: Filters/Adjustments

Simple

Description
Converts a Linear input to sRGB colorspace. Useful when working and converting with photo reference material for example.

Parameters
No Parameters.

Example Images

Aucune image jointe à cette page.

Grayscale Conversion Advanced

Grayscale Conversion Advanced

In: Filters/Adjustments

Simple

Description

Advanced, quick grayscale conversion node that offers a few preset conversion modes.

Parameters

Grayscale Type: Desaturation, Luma, Average, Max, Min


Desaturation sets saturation value to 0, Luma uses official Luminance weights, Average is the same as the atomic node, and Max and
Min will use the brightest value for each channel respectively.

Example Images

HDR Range Viewer


HDR Range Viewer (Grayscale)

In: Filters/Adjustments

Simple

Description

Debug tool to check exact areas with High Dynamic Range. Both Color and Grayscale versions exist.

Parameters

Range Min: -2.0 - 0.0


Minimum range to start highlighting.
Range Max: 1.0 - 3.0
Maximum range to highlight up to.

Example Images

Height Map Frequencies Mapper

Height Map Frequencies Mapper


In: Filters/Adjustments

Simple

Description

Separates a Heightmap's frequencies into two separate maps: one with large-scale differences and one with small-scale differences.

Parameters

Relief: 0.0 - 32.0


Controls the Displacement output's detail size.

Example Images

Highpass

Highpass (Grayscale)

In: Filters/Adjustments

Simple

Description

Performs a highpass filter, available in color as well as in a grayscale version. Similar to the Photoshop action with the same name.
Useful for removing large Luminance differences in images, such as when cleaning up textures for tiling.

Important: make sure to use the appropriate version for your input! Use "Highpass" for Color inputs, "Highpass Grayscale" for Grayscale inputs.

Parameters

Radius: 0.0 - 64.0


Filter radius: a small radius removes small differences, a bigger radius removes large areas.
Example Images

Histogram Range

Histogram Range

In: Filters/Adjustments

Simple

Description

Reduce and/or move the range of a grayscale input. Can be used to remap transitions, similar to Contrast Luminosity, but with different controls
that might make more sense for some situations.
Also see Histogram Scan for another, more useful way to remap the range.

Parameters

Range: 0.0 - 1.0


How much to reduce the range down from. This is similar to moving both Levels min and Max sliders inwards.
Position: 0.0 - 1.0
Offset for the range reduction, setting a different midpoint for the range reduction.

Example Images

Histogram Scan
Histogram Scan

In: Filters/Adjustments

Simple

Description

Very simple yet useful node that provides an intuitive way to remap the contrast and brightness of input grayscale images. Can be used to "grow"
and "shrink" masks in dynamic ways.

Parameters

Position: 0.0 - 1.0


Similar to a brightness control, shifts the midpoint of the result. When used on a gradient input, this expands and shrinks the transition
point.
Important: a default value of 0 means the end result is always black, so try starting with 0.5!
Contrast: 0.0 - 1.0
Adjusts the contrast of the result. Can be used to set the hardness of the transition.
Invert Position: False/True
Inverts the final result.

Example Images

Histogram Scan Non-Uniform

Histogram Scan Non-Uniform

In: Filters/Adjustments

Complex
Description

Advanced version of Histogram Scan, with additional controls and input to drive the effect on a per-pixel level, rather than uniformly across the
whole image. Can be used to achieve even more intricate contrast and transitions in masks.

It's a lot more complex to use than the regular Histogram Scan, so make sure you are familiar with that before attempting to use the Non-Uniform
version.

Parameters
Click here to expand parameters...

Inputs

Input: Grayscale Input


Source result to modify.
Position Map: Grayscale Input
Input slot to drive Position parameter. Activated when "Use Position Input" is set to True. Effective value range is small and depends
on Contrast map and setting.
Contrast Map: Grayscale Input
Input slot to drive contrast parameter. Activated when "Use Contrast Input" is set to True. Effective value range is small.

Parameters

Use Position Input: False/True


Toggle use of Position Map input slot.
position: 0.0 - 1.0
Controls or modifies map results to drive the position setting.
Use Contrast Input: False/True
Toggle use of Contrast Map input slot.
contrast: 0.0 - 1.0
Controls or modifies map results to drive the contrast setting.

Example Images

Histogram Select

Histogram Select

In: Filters/Adjustments

Simple

Description

Similar to Histogram Scan, this effect sets a grayscale value position, with a range around that it fades from. Contrast can be adjusted to make
the range sharper.

Parameters

Position: 0.0 - 1.0


Sets the middle position where the range selection happens.
Range: 0.0 - 1.0
Sets width of the selection range.
Contrast: 0.0 - 1.0
Adjusts the contrast/falloff of the result.

Example Images
Histogram Shift

Histogram Shift

In: Filters/Adjustments

Simple

Description

Completely shifts the whole range of the image, wrapping around when reaching range limits.

Parameters

Position: 0.0 - 1.0


How much to shift the input by. 1.0 is a full rotation and is equal to 0.0.

Example Images

Invert
Invert (Grayscale)

In: Filters/Adjustments

Simple

Description

Inverts input colors.

Important: make sure to use the appropriate version for your input! Use "Invert" for Color inputs, "Invert Grayscale" for Grayscale inputs.

Parameters

Invert: False/True
Toggles effect on or off.

Example Images

Lighting Cancel High Frequencies

Lighting Cancel High Frequencies

In: Filters/Adjustments
Simple

Description

Similar to Highpass, but more suited for full color images (it doesn't desaturate the result as much), this node tries to cancel out high frequency,
small lighting details.

Also see Lighting Cancel Low Frequencies, and the more advanced, recommended Luminance Highpass.

Parameters

Intensity: 0.0 - 1.0


Strength of the lighting cancel effect.
Radius: 0.0 - 10.0
Radius or size of the lighting details to cancel.

Example Images

Lighting Cancel Low Frequencies

Lighting Cancel Low Frequencies

In: Filters/Adjustments

Simple

Description

Similar to Highpass, but without desaturating the end result.

Also see Luminance Highpass for a more advanced version.

Parameters

Cancellation Radius: 0.0 - 64.0


Radius of the highpass effect.

Example Images
Luminance Highpass

Luminance Highpass

In: Filters/Adjustments

Simple

Description

Cancels out lighting information by performing a highpass on the input's Luminance value. Useful for fixing photographed textures with lighting
information. Can be combined in multiple passes to remove different frequencies of lighting details.

Does a slightly better job at preserving colors than Lighting Cancel Low Frequencies.

Parameters

Radius: 0.0 - 64.0


Radius of the highpass effect. A smaller radius cancels smaller lighting, adjust to match the input images.

Example Images

Pow
Pow (Grayscale)

In: Filters/Adjustments

Simple

Description

Powers the input by a specified exponent. Similar to adjusting the Levels Midpoint, but in a simpler package. Useful also for when you want to
perform an exact mathematical power operation.

Important: make sure to use the correct version, depending on whether you have a Color or Grayscale input!

Parameters

exponent: 0.0 - 10.0


Exponent by which to power the input.

Example Images

Quantize
Quantize (Grayscale)

In: Filters/Adjustments

Simple

Description

Approximate the input range to a predefined number of values. Effectively introduces banding. The closer the parameters are to 256, the less
banding there will be.

Parameters
Click here to expand Parameters...

Quantize: 2 - 256 (Grayscale Version Only)


Sets number of steps to approximate by.
Quantize Red Channel: 2 - 256 (Color Version Only)
Sets number of steps to approximate the Red channel by.
Quantize Green Channel: 2 - 256 (Color Version Only)
Sets number of steps to approximate the Green channel by.
Quantize Blue Channel: 2 - 256 (Color Version Only)
Sets number of steps to approximate the Blue channel by.
Quantize Alpha Channel: 2 - 256 (Color Version Only)
Sets number of steps to approximate the Alpha Channel by.

Example Images

Replace Color
Replace Color

In: Filters/Adjustments

Simple

Description

Hue shifts Source Color towards Target Color.

See Replace Color Range or Color Match for more advanced versions.

Parameters

Source Color: (Color value)


Color to start shifting hue from.
Target Color: (Color value)
Color to shift hue towards.

Example Images

Replace Color Range

Replace Color Range

In: Filters/Adjustments

Simple

Description

Replaces Source Color by Target Color, with additional controls. Can for example be used to re-color parts of a Material ID map (bake).
For a more advanced version, see Color Match.

Parameters

Source Color: (Color value)


Color to replace.
Target Color: (Color value)
Color to replace with.
Source Range: 0.0 - 1.0
Range or tolerance of the picked Source. Can be increased so further neighbouring colours are also hue-shifted.
Threshold: 0.0 - 1.0
Falloff/contrast for range. Set low to replace only Source color, set higher to replace colors blending into Source as well.

Example Images

Blending
This category is an extension of the atomic Blend node. It contains expanded, more complex Blend modes that are not in the standard node.

Some interesting Blend nodes:

Difference
Switch
Multi Switch

Color (Blend Node)

Color

In: Filters/Blending

Simple

Description

Performs a Color blend mode, which preserves the luminance of the Background, while adopting the hue and chrominance of the Foreground.

Parameters

Inputs

Foreground: Color Input


Background: Color Input
Mask: Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Alpha Blending" parameter.
Parameters

Opacity: 0.0 - 1.0


Blending Opacity between Foreground and Background.
Alpha Blending: False/True
Toggles the use of the Mask map on or off.

Example Images

Color Burn

Color Burn

In: Filters/Blending

Simple

Description

Performs a Color Burn blend between Foreground and Background. Mathematically the formula is 1 - (1-Background) / Foreground.

Parameters

Inputs

Foreground: Color Input


Background: Color Input
Mask: Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Alpha Blending" parameter.

Parameters

Opacity: 0.0 - 1.0


Blending Opacity between Foreground and Background.
Alpha Blending: False/True
Toggles the use of the Mask map on or off.

Example Images

Color Dodge

Color Dodge

In: Filters/Blending
Simple

Description

Performs a Color Dodge blend. Mathematically the formula is Background / (1-Foreground).

Parameters

Inputs

Foreground: Color Input


Background: Color Input
Mask: Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Alpha Blending" parameter.

Parameters

Opacity: 0.0 - 1.0


Blending Opacity between Foreground and Background.
Alpha Blending: False/True
Toggles the use of the Mask map on or off.

Example Images

Difference

Difference

In: Filters/Blending

Simple

Description

Peforms a Difference blend mode between Fore- and Background inputs. Subtracts Background from Foreground, returning an absolute result
(never a negative value).

Parameters

Inputs

Background: Color Input


Foreground: Color Input
Mask: Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Alpha Blending" parameter.

Parameters

Opacity: 0.0 - 1.0


Blending Opacity between Foreground and Background.
Alpha Blending: False/True
Toggles the use of the Mask map on or off.
Example Images

Dissolve

Dissolve

In: Filters/Blending

Simple

Description

Blends two inputs together with White Noise as mask for the transition.

Parameters

Inputs

Foreground: Color Input


Background: Color Input
Mask: Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Alpha Blending" parameter.

Parameters

Opacity: 0.0 - 1.0


Blending Opacity between Foreground and Background.
Alpha Blending: False/True
Toggles the use of the Mask map on or off.

Example Images

Linear Burn

Linear Burn

In: Filters/Blending

Simple

Description

Performs a Linear Burn blend. Mathematical formula is Foreground + Background - 1.


Parameters

Inputs

Foreground: Color Input


Background: Color Input
Mask: Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Alpha Blending" parameter.

Parameters

Opacity: 0.0 - 1.0


Blending Opacity between Foreground and Background.
Alpha Blending: False/True
Toggles the use of the Mask map on or off.

Example Images

Luminosity (Blend Node)

Luminosity

In: Filters/Blending

Simple

Description

Performs a Luminosity blend mode, which preserves the hue and chrominance of the Background, while adopting the luminance of the
Foreground.

Parameters

Inputs

Foreground: Color Input


Background: Color Input
Mask: Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Alpha Blending" parameter.

Parameters

Opacity: 0.0 - 1.0


Blending Opacity between Foreground and Background.
Alpha Blending: False/True
Toggles the use of the Mask map on or off.

Example Images

Multi Switch
Multi Switch (Grayscale)

In: Filters/Blending

Simple

Description

Acts as a switch-box, only passing through the input defined by the 'Input Selection' parameter. So if two Inputs are connected, only one of those
will be returned (unmodified), depending on the user's choice.

Very useful for adding many different options in a graph. Combined with exposing (preferably as a Drop Down List), a lot of customisation is
possible.

Important: make sure to use the appropriate version for your input! Use "Multi Switch" for Color inputs, "Multi Switch Grayscale" for Grayscale
inputs.

Parameters

Inputs

Input 1-20: Color Input

Parameters

Input Number: 2 - 20
Amount of inputs to expose. Important: does not remove connections when the number is reduced!
Input Selection: 1 - 20
Which input to return as the result.

Example Images

Switch
Switch (Grayscale)

In: Filters/Blending

Simple

Description

A simple 2-position switch node. Returns either Input 1 or Input 2 based on the Switch parameter setting. Result is unmodified. See Multi Switch
for a more advanced version.

Very useful for exposing a boolean (True/False) choice in a graph, where you only need a single button and not a complex drop-down list for a
whole selection of options.

Important: make sure to use the appropriate version for your input! Use "Switch" for Color inputs, "Switch Grayscale" for Grayscale inputs.

Parameters

Inputs

Input 1 (True): Color or Grayscale Input


Input 2 (False): Color or Grayscale Input

Parameters

Switch: False/True
Switches between Input 1 (True) and 2 (False).

Example Images

Blurs
The Blurs category expands on the standard, atomic Box Blur node. It contains more advanced, higher-quality Blurs that have multiple uses.

Keep in mind that every Library Blur node comes in a Grayscale and Color version. Try to use the version that is appropriate for your input!

Some good Blurs to check out:

Blur HQ
Slope Blur

Anisotropic Blur
Anisotropic Blur (Grayscale)

In: Filters/Blurs

Simple

Description

Performs a high quality directional blur, with a few settings to customise appearance. Also known as "motion blur".

Important: make sure to use the appropriate version for your input! Use "Anisotropic Blur" for Color inputs, or "Anisotropic Blur Grayscale" for Gray
scale inputs.

Parameters

Intensity: 0.0 - 16.0


Strength (Radius) of the blur. The higher this value, the further the blur will reach.
Anisotropy: 0.0 - 1.0
Directionality of the blur. Setting this to 0.0 is the same as performing a regular blur.
Angle: 0.0 - 1.0
Sets the angle for the blur direction.
Quality: 0 - 1
Switches between a box blur and an HQ blur internally. Trades in speed for quality.

Example Images

Blur HQ
Blur HQ (Grayscale)

In: Filters/Blurs

Simple

Description

Performs a High-Quality gaussian blur on the result. Much better quality than the standard atomic box blur.

Important: make sure to use the appropriate version for your input! Use "Blur HQ" for Color inputs, or "Blur HQ Grayscale" for Grayscale inputs.

Parameters

Intensity: 0.0 - 16.0


Strength (Radius) of the blur. The higher this value, the further the blur will reach.
Quality: 0 - 1
Increases internal sampling amount for even higher quality, at reduced computation speed.

Example Images

Non Uniform Blur


Non Uniform Blur (Grayscale)

In: Filters/Blurs

Intermediate

Description

Performs a High Quality Blur, where the intensity is driven by an input mask. Options allow for Anisotropy and Assymetry to be added.

Parameters

Inputs

Blur Map: Grayscale Input


Mask map to drive effect strength.

Parameters

Intensity: 0.0 - 50.0


Maximum strength to apply the blur with. Masked by the Blur Map, so this setting will have no effect on black areas of that map.
Anisotropy: 0.0 - 1.0
Optionally adds directionality to the blur effect. Driven by the Angle parameter.
Asymmetry: 0.0 - 1.0
Optionally adds a bias to the sampling. Driven by the Angle parameter.
Angle: 0.0 - 1.0
Angle to set directionality and sampling bias.
Samples: 1 - 16
Amount of samples, determines quality. Multiplied by amount of Blades.
Blades: 1 - 9
Amount of sampling sectors, determines quality. Multiplied by amount of Samples.

Example Images

Below example is driven by a gradient ramp (at 90 degrees) in the Blur Map slot.
Radial Blur

Radial Blur (Grayscale)

In: Filters/Blurs

Simple

Description

Generates a spinning, motion-type blur on an input.

Parameters

Samples: 1 - 128
Set the quality of the blur effect.
Angle: 0.0 - 0.5
Set the amount of "spin" of the effect.
Center Position:
Set the centerpoint of the effect.

Example Images
Slope Blur

Slope Blur (Grayscale)

In: Filters/Blurs

Intermediate

Description

Performs an advanced, High Quality blur where the Anisotropy/Direction is driven by a Grayscale "Slope Map". Picture it as the Slope Blur effect
following the slopes of your Slope Map as if it were a Heightmap, similar to Directional Warp (which it is based on internally).

This is one of the most interesting and powerful blurs in Designer. It can be used to achieve some very interesting and unexpected effects, such
as chipping and weathering edges or smearing and leaking dirt or rust.

Important: make sure to use the appropriate version for your input! Use "Slope Blur" for Color inputs, or "Slope Blur Grayscale" for Grayscale
inputs.

Parameters

Inputs

Slope: Grayscale Input


Slope map to drive angle of the anisotropy. Should ideally contain sloping gradients; harsh, sharp transitions will not work well!

Parameters

Samples: 0 - 32
Amount of samples, affects the quality at the expense of speed.
Intensity: 0.0 - 16.0
Blur amount or strength.
Mode: Blur, Min, Max|
Blending mode for consequent blur passes. "Blur" behaves more like a standard Anisotropic Blur, while Min will "eat away" existing areas
and Max will "smear out" white areas.

Example Images

Channels
Since connections in Designer can be full color RGB or single value grayscale, this category allows you to split, merge and mix these channels.

The following nodes can help you get started:

Alpha Merge
RGBA Split

RGBA Merge

RGBA Merge

In: Filters/Channels

Simple

Description

Packs a separate grayscale input into each of the four channels. Not to be confused with RGB-A Merge, as this node gives you more merging
control!

Very useful node for channel-packing maps together. Can for example be used for packing Smoothness, Metallic and AO into respective R, G
and B channels.

Parameters

Inputs

R: Grayscale Input
G: Grayscale Input
B: Grayscale Input
A: Grayscale Input

No Parameters.
Example Images

Aucune image jointe à cette page.

RGBA Split

RGBA Split

In: Filters/Channels

Simple

Description

Splits an input image into its respective Red, Green, Blue and Alpha channels. Effectively "unpacks" an image.

Helpful for analysing and using packed channels separately. When using a baked Position map, or a baked World Space Normalmap for effects
in Substance Painter, it allows you to single out the X-, Y- or Z-component, for example.

Parameters

No Parameters.

Example Images

Aucune image jointe à cette page.

Alpha Merge

Alpha Merge

In: Filters/Channels

Simple

Description

Adds an alpha channel to an input without alpha channel. Not to be confused with RGBA Merge, this node is much simpler and only adds alpha!

Simple but handy node for when you just want to mask something out, or when your result requires an alpha.

Parameters

Inputs
RGB: Color Input
Color image without alpha
A: Grayscale Input
Grayscale image to be used as result's alpha.

No Parameters.

Example Images

Aucune image jointe à cette page.

Alpha Split

Alpha Split

In: Filters/Channels

Simple

Description

Strips away and singles out the alpha of an input image. Also see Alpha Merge for the opposite result.

Outputs the image stripped of alpha, and the alpha channel separately.

Parameters

No Parameters.

Example Images

Aucune image jointe à cette page.

Pre-Multiplied to Straight

Pre-Multiplied to Straight

In: Filters/Channels

Simple

Description

Removes pre-multiplied color from RGB on alpha-blended edges. Effectively "unpremultiplies" the background color, but does strip the alpha
channel away in the process.

This removes the fringe effect sometimes seen around edges of images with an alpha channel.
Parameters

No Parameters.

Example Images

Aucune image jointe à cette page.

Straight to Pre-multiplied

Straight to Pre-multiplied

In: Filters/Channels

Simple

Description

Converts a straight alpha to pre-multiplied, multiplying a color into alpha-blended pixels.

Parameters

No Parameters.

Example Images

Aucune image jointe à cette page.

Effects
This category contains a large variety of nodes intended for multiple uses. These nodes are mainly intended for a single channel input and
perform a fairly advanced effect or modification as output.

A large group of nodes is intended for processing, generating and modifying Baked maps, such as Normalmap or AO and Curvature. Examples
are:

Curvature Smooth
Ambient Occlusion (HBAO)

Another group of nodes is intended for layer shape effect or "Layer Styles", as seen in other popular image editing software. Examples are:

Glow
Shape Stroke
Uber Emboss

Finally, there are some useful advanced effects, of which Flood Fill, Edge Detect and Vector Warp are the best examples.
Ambient Occlusion (Filter Node)
Ambient Occlusion

In: Filters/Effects

Simple

Description

Generates an Ambient Occlusion map based on a Heightmap input.

Very useful when creating a Heightmap procedurally, as it allows you to procedurally generate the AO alongside.

Also see Ambient Occlusion (HBAO) for a more advanced version, as this node is much simpler and faster.

Parameters

Spreading: 0.0 - 1.0


Main scale control for the AO generation, set this according to the detail in your input.
Equalizer: -1.0 - 1.0
Allows you to control how strong the AO generation is for three different scale levels; Low, Middle and High.
Levels: 0.0 - 1.0
Allows adjusting of the final AO's outputs levels. You can slightly adjust brightness and contrast if needed.

Example Images

Ambient Occlusion (HBAO) (Filter Node)

Ambient Occlusion (HBAO)

In: Filters/Effects

Intermediate

Description

Takes a Heightmap as input and generates an Ambient Occlusion map from that. It uses Horizon-Based Ambient Occlusion, an algorithm
originally intended for screen-space realtime AO-generation. Very useful for creating procedural AO maps from procedural Heightmaps.

This is a much more advanced and thus slower method than using the standard Ambient Occlusion effect, but it does result in much higher
quality.

Parameters

Use World Units: False/True


Toggles use of world or sceen-space units. Enables extra parameters that allow for more precise control.
Height Depth: 0.0 - 1.0
Only used when World Units is set to False. Controls global scaling.
Surface Size: 0.0 - 1000.0
Only used when World Units is set to True. Controls global scaling.
Height Scale (cm): 0.0 - 1000.0
Only used when World Units is set to True. Controls global scaling.
Radius: 0.0 - 1.0
Controls the spread of the AO.
Quality: 4 samples, 8 samples, 16 samples
Sets Quality level by determining amount of samples used for calculation.
GPU Optimization: False/True
Enables internal GPU optimisation, speeds up processing.

Example Images

Bevel (Filter Node)

Bevel

In: Filters/Effects

Intermediate

Description

Peforms an edge-beveling effect on an input grayscale Heightmap. Returns both beveled Heightmap and Normalmap based on that Heightmap.

This is a useful node for applying exact curve profiles on an ideally binary (high contract black/white), basic Heightmap.

Parameters
Click here to expand parameters...

Inputs

input: Grayscale Input


Heightmap to convert.
Custom Curve: Grayscale Input
Gradient that determines the exact curve/slope. Ideally a Gradient Linear node, on which you can perform any kind of adjustment
such as Levels or Curves. Only active when "Use Custom Curve" is True.

Parameters

Distance: -1.0 - 1.0


How far the bevel effect should reach.
Corner Type: Round, Angular
Whether the beveling profile should be rounded or straight.
Smoothing: 0.0 - 5.0
How much additional smoothing (blurring) to perform after the bevel.
Use Non-Uniform Blur: False/True
Whether smoothing should be done non-uniformly.
Use Custom Curve: False/True
Toggles use of your own custom height curve. See above for more info.
Normal Intensity: 0.0 - 50.0
Intensity of the generated Normalmap.
Normal Format: DirectX, OpenGL
Switch between different Normalmap formats (inverts the Green channel).

Example Images

Curvature (Filter Node)

Curvature

In: Filters/Effects

Simple

Description

Performs a simple, harsh single-pass curvature conversion to input Normalmap. The resulting map has white tints for convex areas and black
tints for concave. Curvature will always produce pixel-thin lines and sharp transitions.

This node is useful for some quick highlighting or darkening of certain edges. It is limited in comparison to Curvature Smooth (which produces
higher quality results) and Curvature Sobel (which has more options).

Parameters

Intensity: 0.0 - 10.0


Intensity of the effect. Increases contrast of the result.

Normal Format: DirectX, OpenGL


Switches between different Normalmap formats (inverts the Green channel).

Example Images
Curvature Smooth

Curvature Smooth

In: Filters/Effects

Simple

Description

Performs a smooth multi-pass curvature conversion to input Normalmap. The resulting map has white tints for convex areas and black tints for
concave. Curvature Smooth will always have sloping transitions and large gradients.

Look at Curvature for a sharper version, or Curvature Sobel if you need more options.

Parameters

Normal Format: DirectX, OpenGL


Switches between different Normalmap formats (inverts the Green channel).

Example Images

Curvature Sobel
Curvature Sobel

In: Filters/Effects

Simple

Description

Performs a simple, harsh single-pass curvature conversion to input Normalmap. The resulting map has white tints for convex areas and black
tints for concave. Curvature will always produce thicker lines and sharp transitions.

This node is useful for quick highlighting or darkening of certain edges. It is slightly different from Curvature, as it produces better quality results
but is still sharp and harsh.

Parameters

Intensity: 0.0 - 1.0


Intensity of the effect, adjusts contrast.
Normal type: DirectX, OpenGL

Example Images

Edge Detect

Edge Detect

In: Filters/Effects

Simple

Description

Detects contrast in a black and white images, then creates a black and white mask highlighting the contrast.
Useful in many cases where some sort of mask for edges is needed. Keep in mind that it works best with high-contrast input; if needed, adjust the
contrast before passing something into this node.

Parameters

Edge Width: 1.0 - 16.0


Width of the detected areas around the edges.
Edge Roundness: 0.0 - 16.0
Rounds, blurs and smooths together the generated mask.
Invert: False/True
Inverts the result.
Tolerance: 0.0 - 1.0
Tolerance treshold factor for where edges should appear.

Example Images

Emboss With Gloss

Emboss With Gloss

In: Filters/Effects

Intermediate

Description

Performs an Embossing effect with added gloss (specular reflection) on a color and height input. Essentially adds fake, baked lighting to an
image based on height information. Useful for some texturing styles that require lighting baked into the textures.

For a version with more options, see Uber Emboss. There's also the simpler, atomic version of Emboss.

Parameters
Click here to expand parameters...

Inputs

Color: Color Input


Height: Grayscale Input

Parameters

Highlight Color: (Color value)


Color of the specular highlight.
Shadow Color: (Color value)
Color used in shadowed/unlit areas.
Gloss: 0.0 - 0.5
Glossiness highlight size.
Intensity: 0.0 - 10.0
Intensity of the highlight.
Light Angle: 0.0 - 1.0
Incidence angle of the (faked) light.

Example Images

Aucune image jointe à cette page.

Flood Fill

Flood Fill

In: Filters/Effects

Simple

Description

Flood Fill is part of an advanced set of effects that allow you to add much more variation to a basic, binary tiles texture. It is not meant to be used
by itself: instead, it is more of a starting point for Other Flood Fill effects. While this split-functionality might seem strange, it is essentially a
simplification and optimisation step.

The other Flood Fill effects are Flood Fill to Gradient, Flood Fill to Random Grayscale, Flood Fill to Random Color, Flood Fill to BBox Size and Flo
od Fill to Position

The input map needs to be suited to Flood Fill to work. Ideally it is a binary map (black/white only, no grayscale) where every tile is
separated from the other lines by a border that is full black (0,0,0) for every pixel. An example of a perfect candidate for this is the Tile
Generator.

Problems arise if tiles are not separated by full black pixels, usually when grayscale, sloping values are used. You can identify this by
an overall lack of red values in the result, and possibly strange artifacting lines. In such cases, adjust the contrast on the input map or
switch the input map out.

Parameters

No Parameters.

Example Images
Good and bad examples of results from Flood Fill.
Flood Fill to BBox Size

Flood Fill to BBox Size

In: Filters/Effects

Simple

Description

Generates a grayscale map from a Flood Fill base, with values tied to each tile's individual size.

Values are relative to the total canvas size (a full white tile would mean it stretches the entire canvas), so contrast is often low.

Parameters

Output: max(X, Y), X, Y


Sets what metric the value is based on: width, length or both.

Example Images
Flood Fill to Gradient

Flood Fill to Gradient

In: Filters/Effects

Simple

Description

Transforms a Flood Fill base into (randomly oriented) gradients. Very useful for creating a Heightmap where tiles are randomly tilted and sloped.

Parameters

Angle: 0.0 - 1.0


Sets uniform, global angle for all tiles.
Angle Variation: 0.0 - 1.0
Randomises the angle for each tile individually. This is the most useful and powerful parameter!
Multiply by Bounding Box Size: 0.0 - 1.0
Scales the entire linear effect by the tile's individual bounding box size. This means smaller tiles will end up being darker than larger ones.

Example Images
Flood Fill to Position

Flood Fill to Position

In: Filters/Effects

Simple

Description

Generates a per-tile position map from a Flood Fill base.

The color of each tile represents its X- and Y-coordinate center, stored in the Red and Green channels. This map is intended as a base for further
calculations, rather than a ready-to-use map.

Parameters

No Parameters.

Example Images
Flood Fill to Random Color

Flood Fill to Random Color

In: Filters/Effects

Simple

Description

Generates tiles with random RGB colors from a Flood Fill base. Useful for adding color variation to tiles.

Parameters

No Parameters.

Example Images
Flood Fill to Random Grayscale

Flood Fill to Random Grayscale

In: Filters/Effects

Simple

Description

Generates random grayscale Luminance values from a Flood Fill base. Useful for adding Luminance variation to tiles.

Parameters

No Parameters.

Example Images
Glow

Glow

In: Filters/Effects

Simple

Description

Performs an "Outer Glow"-type of effect, as seen in other popular image editing software. Essentially adds a fading gradient outline around the
input.

Keep in mind that this is not intended to work for images with Alpha Channels, as you might expect. Even the color version only expects binary,
black and white masks as input; it only allows for using a colored glow. If you're after a version that works on images with transparency, see Shap
e Glow.

Important: make sure to use the appropriate version for your input! Use "Glow" for Color inputs, or "Glow Grayscale" for Grayscale inputs.

Parameters

Glow Amount: 0.0 - 1.0


Global opacity for the glow effect.
Clear Amount: 0.0 - 1.0
Treshold for when to cut off the glow effect. Useful for semi-transparent areas.
Glow Size: 0.0 - 20.0
Controls how far the glow effect reaches.
Glow Color: (Color value) (Color Version Only)
Sets the color of the glow effect.

Example Images

Mosaic

Mosaic (Grayscale)

In: Filters/Effects

Intermediate

Description

"Facetises" an existing, smooth, sloping gradient map by performing a multi-pass Warp effect. When the same map is used for both inputs, it
essentially grows and accentuates the brightest areas.

This is useful for adding more definition to grayscale maps such as Heightmap, as it can introduce more definition to shapes.

Parameters

Inputs

Color: Color/Grayscale Input


Mosaic Map: Grayscale Input
Warp driver map. Can be the same as First input.

Parameters

Samples: 0 - 16
Determines multi-sample quality.
Intensity: 0.0 - 1.0
Strength of the effect.

Example Images
Shadows (Filter Node)

Shadows

In: Filters/Effects

Simple

Description

A raw, grayscale-only version of the Shape Drop Shadow node. It only takes a black and white, binary shapes as input and returns only the
shadow.

Can be useful if you're just after the shadow and do not want to work with a more complete node, for example when building your own material or
baked lighting.

Parameters

Shadow Distance: 0.0 - 1.0


Controls how far away the shadow should fall.
Light Angle: 0.0 - 1.0
Controls the incidence angle of the light.
Edges Softness: 0.0 - 1.0
Determines how hard or soft the shadows edges are.
Samples: 1 - 16
Sets quality for the Edges Softness setting.

Example Images

Shape Drop Shadow


Shape Drop Shadow (Grayscale)

In: Filters/Effects

Intermediate

Description

Performs the well-known "Drop Shadow" effect from other 2D image processing software, on an input black and white mask (for the grayscale
version) or image with transparency (for the color version).

It differs from the Shadows effect in that it returns images with full transparency applied, making for a more complete effect similar to what you'd
expect in other software.

Parameters

Angle: 0.0 - 1.0


Incidence Angle of the (fake) light.
Distance: -0.5 - 0.5
Distance the shadow drop down to/moves away from the shape.
Size: 0.0 - 1.0
Controls blurring/fuzzines of the shadow.
Spread: 0.0 - 1.0
Cutoff/treshold for the blurring effect, makes the shadow spread away further.
Opacity: 0.0 - 1.0
Blending Opacity for the shadow effect.
(Shadow) Color: (Color value)
Color tint to be applied to the shadow.
Mask Color: (Color value) (Grayscale Version Only)
Solid color to be used for the transparency mapped output.
Input Is Pre-Multiplied: False/True (Color Version Only)
Whether the input should be assumed as pre-multiplied.
Pre-Multiply Output: False/True
Whether the output should be pre-multiplied.

Example Images
Shape Glow

Shape Glow (Grayscale)

In: Filters/Effects

Intermediate

Description

Creates a soft glow around an input mask (for the grayscale version) or a shape with an alpha channel (for the color version). Compared to Glow,
this works in ways more similar to other 2D image editing software, as it is a more complete effect with more controls.

Parameters

Mode: Soft, Precise


Switches between two accuracy modes.
Width: -1.0 - 1.0
Controls how far the glow reaches.
Spread: 0.0 - 1.0
Cut-off / treshold for the blurring effect, makes the glow appear solid close to the shape.
Opacity: 0.0 - 1.0
Blending Opacity for the glow effect.
(Shadow) Color: (Color value)
Color tint to be applied to the glow.
Mask Color: (Color value) (Grayscale Version Only)
Solid color to be used for the transparency mapped output.
Input Is Pre-Multiplied: False/True (Color Version Only)
Whether the input should be assumed as pre-multiplied.
Pre-Multiply Output: False/True
Whether the output should be pre-multiplied.
Shape Stroke

Shape Stroke (Grayscale)

In: Filters/Effects

Intermediate

Description

Adds a stroke or outline around a black and white mask (for the grayscale version) or a shape with an alpha channel (for the color version), as
you might be familiar with from other 2D Image editing applications. Can be seen as a more complete version of Edge Detect.

Very useful for a variety of image editing effects.

Parameters

Width: -1.0 - 1.0


Width of the stroke effect.
Opacity: 0.0 - 1.0
Global Opacity of the effect.
(Outline) Color: (Color value)
Color used for the outline effect.
Mask Color: (Color value) (Grayscale Version Only)
Solid color to be used for the transparency mapped output.
Input Is Pre-Multiplied: False/True (Color Version Only)
Whether the input should be assumed as pre-multiplied.
Pre-Multiply Output: False/True
Whether the output should be pre-multiplied.
Swirl

Swirl (Grayscale)

In: Filters/Effects

Simple

Description

This transforms an input image by warping it in a swirling direction. It has additional control for moving the Swirl around to parts of the canvas.

Parameters

Matrix
Allows you to manually move the Swirl effect around. Can also be modified by interacting with the handles in the 2D preview.
Matrix: (Transformation Matrix)
Offset: 0.0 - 1.0
Amount: -16.0 - 16.0
Strength of the swirling effect.

Example Images

Uber Emboss
Uber Emboss

In: Filters/Effects

Intermediate

Description

Advanced, feature-rich version of Emboss. Performs an elaborate 2D, fake lighting effect based on a Heightmap.

Useful when creating baked-in lighting for certain texturing styles when a lot of control is needed.

Parameters

Inputs

Color: Color Input


Base image to modify.
Height: Grayscale Input
Heightmap used as driver for the effect.

Parameters

Ambient Color: (Color value)


Color used in shadowed areas.
Diffuse Color: (Color value)
Color used in lit areas.
Specular Color: (Color value)
Color used for specular reflections
Light Intensity: 0.0 - 1.0
Intensity of the (faked) light.
Light Angle: 0.0 - 1.0
Incidence angle of the (faked) light
Specular Intensity: 0.0 - 1.0
Intensity of the specular reflections.
Specular Glossiness: 0.0 - 1.0
Size of the specular highlight.
Diffuse Roughness: 0.0 - 1.0
Roughness used in calculating the diffuse lighting.
Shadows Opacity: 0.0 - 1.0
Blending opacity of the shadowed areas.

Example Images

Vector Morph
Vector Morph (Grayscale)

In: Filters/Effects

Intermediate

Description

Distorts an input image by a Vector Map. The effect is similar to UV distortion with a Normalmap, or using a "flow map" in videogame shaders.
Input pixels are moved by the vectors defined in the Red and Green values of the vector map.

This node itself is not the most difficult to use, but creating a proper Vector Map takes care. We recommend that you work with the highest bit-
depths to ensure precision when morphing.

Vector Morph is very similar to Vector Warp: the main difference is that this Morph node does not "loop" or "tile" the result when it gets pushed
outside of the canvas bounds. Instead, it clamps and repeats the edges.

Parameters

Inputs

Input: Color/Grayscale Input


The source input that should be the target for the warping.
Vector Field: Color Input
The Vector Map used to drive the warping.

Parameters

Amount: 0.0 - 1.0


Sets the intensity of the warping effect, works as a multiplier for the Vector Map.

Example Images

Vector Warp
Vector Warp (Grayscale)

In: Filters/Effects

Complex

Description

Vector warp is an advanced distortion effect, similar to Warp and Directional Warp, with the main difference being that it is driven by a (color)
vector bitmap rather than a grayscale map. This means it is more powerful and versatile than its atomic node cousins.

The Vector Map is similar to a Normalmap, but it does not need to be normalised and only the R and Green (X and Y) channel are used. Blue
and Alpha channels can be left black if you want. Constructing a good Vector Map can be the biggest challenge in using this node; you can either
convert grayscale maps to Normal, or construct the map by combining channels with RGBA Merge. Alternatively, something like a "Flow Map" is
also useable.

This node can be useful when you want to do very specific distortions with varying directions, where standard Warp nodes don't cut it.

Parameters

Inputs

Input: Color Input


Map to distort.
Vector Map: Color Input
Distortion driver map. Color channels Red and Blue are used.

Parameters

Intensity: 0.0 - 1.0


Intensity multiplier for the Vector Map.
Vector Format: DirectX, OpenGL
Swaps the Green channel between Up and Down interpretation.

Example Images
Normal Map
This category only contains nodes for processing and working with Normalmaps. They are an absolute must when you want your Normalmap
processing to be mathematically correct, to avoid any Tangent-space issues.

Some very useful nodes in this category are:

Normal Combine
Normal Sobel
Normal Normalize

Facing Normal

Facing Normal

In: Filters/Normal Map

Simple

Description

This filter takes a Normalmap as an entry image and produces a grayscale image in which the value corresponds to how much the normals are
facing the viewer in texture space.

Parameters

No Parameters.

Example Images

Aucune image jointe à cette page.

Height Normal Blender

Height Normal Blender

In: Filters/Normal Map

Simple

Description

A shortcut node that blends a grayscale Heightmap onto a Normalmap. The Height input is converted to a Normalmap internally and then
blended correctly with the Normal input.

This is a quicker way to blend details than manually doing this with separate nodes, but you might find it lacks some control and refinement for
certain needs.
Parameters

Inputs

Height: Grayscale Input


Grayscale Heightmap to blend with.
Normal: Color Input
Base Normalmap to blend onto.

Parameters

Normal Intensity: 0.0 - 16.0


Intensity of the Height input's normal conversion.
Normal Format: DirectX, OpenGL
Switches between different Normalmap formats (inverts the green channel).

Example Images

Aucune image jointe à cette page.

Height to Normal World Units

Height to Normal World Units

In: Filters/Normal Map

Simple

Description

An advanced Height-To-Normal conversion node that makes use of real-world units during the conversion.

Useful for when you know your source Heightmap's dimensions and want to perform the most accurate conversion, such as when working with
scanned material.

Parameters

Surface Size (cm): 0.0 - 1000.0


Dimensions of the input Heightmap.
Height Depth (cm): 0.0 - 100.0
Maximum depth of Heightmap details.
Normal Format: OpenGL, DirectX
Switches between different Normalmap formats (inverts the green channel).
Sampling: Standard, Sobel
Switches between two sampling modes determining accuracy.

Example Images

Aucune image jointe à cette page.

Normal Blend
Normal Blend

In: Filters/Normal Map

Intermediate

Description

Normal Blend allows you to blend two Normalmaps together with an optional mask, while making sure all values stay normalised. It doesn't differ
much from an atomic Blend Node, but has added internal calculations for Normalmaps.

Normal Blend is not intended for combining (overlaying) Normalmaps, where the top map adds detail to the bottom map. For that, use Normal
Combine instead.

Parameters

Inputs

NormalFG: Color Input


Foreground/Top Normalmap.
NormalBG: Color Input
Background/Bottom Normalmap.
Mask: Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Use Mask" parameter.

Parameters

Opacity: 0.0 - 1.0


Blending Opacity between Foreground and Background
Use Mask: False/True
Toggles the use of the Mask map on or off.

Example Images

(.gif format introduces dithering in example, in-application results are smooth)


Normal Combine
Normal Combine

In: Filters/Normal Map

Simple

Description

Normal Combine combines the details of two Normalmaps in a mathematically correct way. It is similar to the well-known "Overlay" method from
other 2D image editing software, but does work slightly different internally (three options).

This is the best and most correct way to add 2D-generated Normalmap details to a baked map.

If you want to blend two Normalmaps without combining their details (using a mask, for example), you should use Normal Blend.

Parameters

Inputs

Normal 2: Color Input


Normal 1: Color Input

Parameters

Technique: Whiteout (Low Quality), Channel Mixer (High Quality), Detail Oriented (High Quality)
Sets which internal blending technique to use, trading in speed for quality.

Example Images

Normal Invert
Normal Invert

In: Filters/Normal Map

Simple

Description

Allows you to invert any and all channels of a Normalmap, providing a quick and easy shortcut to doing this manually.

Keep in mind that almost every node that uses a Normalmap as input or output has an option to invert the Green channel, for DirectX or OpenGL
style Normalmaps. This means that for those cases, you should almost never need this node.

Parameters

Invert Red: False/True


Invert Green: False/True
Invert Blue: False/True
Invert Alpha: False/True

Example Images

Aucune image jointe à cette page.

Normal Normalize

Normal Normalize

In: Filters/Normal Map

Simple

Description

Performs a mathematical vector normalisation operation on every single pixel in the image.

Useful for when a lot of blending and modifications have been made to the Normalmap, and you want to ensure a correct result gets exported.

Parameters

No Parameters.

Example Images

Aucune image jointe à cette page.

Normal Sobel
Normal Sobel

In: Filters/Normal Map

Simple

Description

Converts a Heightmap input to a Normalmap output. A slightly more advanced version of the Normal Atomic Node, this node uses Sobel
sampling rather than the standard sampling method.

Parameters

Intensity: 0.0 - 3.0


Strength of the converted normals.
Normal Format: OpenGL, DirectX
Switches between different Normalmap formats (inverts the green channel).

Example Images

Aucune image jointe à cette page.

Normal to Height

Normal to Height

In: Filters/Normal Map

Intermediate

Description

A reverse-conversion node that attempts to convert a tangent-space Normalmap back into a Heightmap. This is the slightly simpler version; Norm
al to Height HQ has more options.

Useful for when you only have a Normalmap source, yet still want to perform operations combining it with a Heightmap. Keep in mind that this will
never be able to provide a 100% correct result, as information is lost by nature of the process when Height is converted to Normal. If you tune the
settings accordingly, this Non-HQ version does do a decent job of converting simple details.

Parameters

Relief Balance: 0.0 - 1.0


Adjust the extent to which the different frequencies influence the final result. This is largely dependent on the input map and requires a
fair bit of tweaking.
Normal Format: DirectX, OpenGL
Switches between different Normalmap formats (inverts the green channel).
Global Opacity: 0.0 - 1.0
Adjusts the global opacity of the effect.
Example Images

Normal To Height HQ

Normal To Height HQ

In: Filters/Normal Map

Intermediate

Description

A reverse-conversion node that attempts to convert a tangent-space Normalmap back into a Heightmap. This is the more advanced node; Normal
to Height has less options and uses different calculations.

Useful for when you only have a Normalmap source, yet still want to perform operations combining it with a Heightmap. Keep in mind that this will
never be able to provide a 100% correct result, as information is lost by nature of the process when Height is converted to Normal. It can never
replace a properly generated Heightmap!

Parameters

Normal Format: DirectX, OpenGL


Switches between different Normalmap formats (inverts the green channel).
Relief Balance: 0.0 - 1.0
Blends between low and high frequency bias.
Height Intensity: 0.0 - 1.0
Intensity or multiplier for the Heightmap, works a bit like global opacity.
Height Normalize: False/True
Automatically scales the Heightmap range to use full contrast, like an auto-levels.
Quality: Normal, High
Switches between speed or quality.

Example Images
Tiling
The tiling category contains nodes used for improving the tiling of textures. Keep in mind that there are other nodes available for this in Scan
Processing.

There are two nodes in this category:

Make It Tile Patch


Make It Tile Photo

Make It Tile Patch

Make It Tile Patch (Grayscale)

In: Filters/Tiling

Complex

Description

This node is a grid-based semi-random tiler. It takes an input patch and stamps it around, attempting to turn it into a tiling image without too many
repetitions, based on your settings.

Useful for when you have a small patch of texture and want to create a larger scale, tiling texture from it.

Keep in mind that this is different from Make-It-Tile Photo, which mainly fixes up edges.

To do this with an entire material, see Smart Auto Tile.

Parameters
Click here to expand parameters...

Mask Size: 0.0 - 1.0


Size of the round mask used when stamping the patch.
Mask Precision: 0.0 - 1.0
Falloff/smoothness precision of the mask.
Mask Warping: -100.0 - 100.0
Introduces warping at mask edges. Good for avoiding smooth, undefined transitions between patches.
Pattern size width: 0.0 - 1000.0
Changes the width of the patch non-uniformly.
Pattern size height: 0.0 - 1000.0
Changes the height of the patch non-uniformly.
Disorder: 0.0 - 1.0
Introduces translational randomness, slightly shifting patches around.
Size Variation: 0.0 - 100.0
Introduces size variation for the mask.
Octave: 0 - 6
This is the main control that determines the overal size.
Rotation: -360.0 - 360.0
Pre-rotates the patch.
Rotation Variation: 0.0 - 360.0
Introduces random rotation for every patch stamp.
Background Color: (Color value)
Sets the background color for areas where no patch appears.
Color Variation: 0.0 - 1.0 (Color Version Only)
Introduces color variation per patch.
Luminosity Variation (grayscale version only)
Introduces luminosity variation per patch.

Example Images

Make It Tile Photo

Make It Tile Photo (Grayscale)

In: Filters/Tiling

Intermediate

Description

This node provides edge-fixup functionality for any image that might not tile due to non-continuous edges. It does not affect anything other than
the input image's edges. If you want to adjust scale or tile in different ways, look at Make It Tile Patch.

Parameters

Mask Warping H: -100.0 - 100.0


Introduces warping on the horizontal axis, to avoid undefined transitions.
Mask Warping V: -100.0 - 100.0
Introduces warping on the vertical axis, to avoid undefined transitions.
Mask Size H: 0.0 - 1.0
Sets how far the transition edge reaches horizontally.
Mask Size V: 0.0 - 1.0
Sets how far the transition edge reaches vertically.
Mask Precision H: 0.0 - 1.0
Sets how smooth the transition is horizontally.
Mask Precision V: 0.0 - 1.0
Sets how smooth the transition is vertically.

Example Images

Transforms
This category contains a large number of advanced transformation nodes for single-channel inputs.

The following nodes are useful examples to get started with:

Mirror
Symmetry
Safe Transform
Noise Upscale 1

Cartesian To Polar

Cartesian To Polar (Grayscale)

In: Filters/Transforms

Simple

Description

Converts an input with Cartesian coordinates (X&Y) to Polar coordinates (Angle & Radius). The reverse is possible with Polar To Cartesian.
Parameters

No Parameters.

Example Images

Polar to Cartesian

Polar to Cartesian (Grayscale)

In: Filters/Transforms

Simple

Description

Converts an input in Polar Coordinates (Angle & Radius) to Cartesian Coordinates (X & Y). The reverse is possible with Cartesian to Polar.

Parameters

No Parameters.

Example Images
Clone (Filter Node)

Clone

In: Filters/Transforms

Intermediate

Description

Clones input image once to a specified location. Can function as a crude "clone stamp" tool.

Requires some care to get the intended results:

Ideally, the input image will have an alpha channel (like a decal), since blending is just a straight copy.
Mask defaults to black, so to see any results a uniform white grayscale value needs to be plugged in at least.
Offset will clip outside of the image easily, so use small values.

Parameters

Inputs

Source: Color Input


Image to clone. Important: ideally, the image will have an alpha channel!
Mask: Grayscale Input
Mask slot used for masking the node's effects. Defaults to black!

Parameters

Offset: -
Moves or translates the result. Positive is Left and Up, Negative is Right and Down. Use small values, 1.0 and above moves it outside of
the image!
Blur Mask: 0.0 - 10.0
Apply a blur filter to mask, to soften edges.

Example Images
Mirror (Filter Node)

Mirror (Grayscale)

In: Filters/Transforms

Intermediate

Description

Mirrors the input image over a chosen axis, from a chosen side. Very useful, quick way to get symmetrical effects.

Parameters

Mode: Mirror Axis X, Mirror Axis Y, Mirror Corner


Choose to mirror left-right, top-bottom, or both.
Axis X Offset: 0.0 - 1.0
Only used when Axis X is chosen, define an offset.
Axis Y Offset: 0.0 - 1.0
Only used when Axis Y is chosen, define an offset.
Invert Axis X: False/True
Only used when Axis X is chosen, Flip direction.
Invert Axis Y: False/True
Only used when Axis Y is chosen, Flip direction.
Corner Type: Top Left, Top Right, Bottom Left, Bottom Right
Only used when Corner type is chosen, define what corner to mirror from.

Example Images
Noise Upscale 1

Noise Upscale 1

In: Filters/Transforms

Simple

Description

Takes an input noise procedural and scales it up to double resolution, keeping detail but without introducing too much tiling. Uses an "X" type of
mask and blends with contrast similar to the original input (internal blend mode is Copy).

This node is mostly intended for optimising slow graphs that use heavy, big noises. It allows you to use higher resolutions without introducing too
much extra compute time.

See also Noise Upscale 2 and Noise Upscale 3 for different variations of this process.

Parameters

Offset1X: 0.0 - 1.0


Slides top and bottom parts over X axis.
Offset1Y: 0.0 - 1.0
Slides top and bottom parts over Y axis.
Offset2X: 0.0 - 1.0
Slides left and right parts over X axis.
Offset2Y: 0.0 - 1.0
Slides left and right parts over Y axis.

Example Images

Noise Upscale 2
Noise Upscale 2

In: Filters/Transforms

Simple

Description

Takes an input noise procedural and scales it up to double resolution, keeping detail but without introducing too much tiling. Uses an "X" type of
mask and blends with less contrast than the original input (internal blend modes are Max and Min).

This node is mostly intended for optimising slow graphs that use heavy, big noises. It allows you to use higher resolutions without introducing too
much extra compute time.

See also Noise Upscale 1 and Noise Upscale 3 for different variations of this process.

Parameters

Offset1X: 0.0 - 1.0


Slides top and bottom parts over X axis.
Offset1Y: 0.0 - 1.0
Slides top and bottom parts over Y axis.
Offset2X: 0.0 - 1.0
Slides left and right parts over X axis.
Offset2Y: 0.0 - 1.0
Slides left and right parts over Y axis.

Example Images

Noise Upscale 3

Noise Upscale 3

In: Filters/Transforms
Simple

Description

Takes an input noise procedural and scales it up to double resolution, keeping detail but without introducing too much tiling. Uses a user-defined
mask to blend noise on top of its original scale.

This node is mostly intended for optimising slow graphs that use heavy, big noises. It allows you to use higher resolutions without introducing too
much extra compute time.

See also Noise Upscale 1 and Noise Upscale 2, which in most cases tend to be slightly better at hiding tiling.

Parameters

Inputs

Grayscale: Grayscale Input


Target Noise image.
Mask: Grayscale Input
Mask slot used for masking the node's effects.

No Parameters.

Example Images

Safe Transform

Safe Transform (Grayscale)

In: Filters/Transforms

Intermediate

Description
Tiling-safe version of Transform 2D. Allows you to scale, rotate and offset without breaking tiling and without losing pixel detail (loss of crispness
/sharpness) due to small offsets and rotations.

Useful for transforming noise when maximum control or perfect sharpness is required.

Parameters

Tile: 1 - 16
Scales the input down by tiling it.
Offset Mode: Manual, Random
Switches to a random offset instead of a manually defined one.
Offset: 0.0 - 1.0
Moves or translates the result. Makes sure pixels are snapped and not interpolated.
Rotation: 0.0 - 1.0
Rotates input along angle.
Tile Safe Rotation: False/True
Determines the behaviour of the Rotation, whether it should snap to safe values that don't blur any pixels.
Symmetry: none, X, Y, X+Y
Background Color: (Color value) (Color Version Only)
Mipmap Mode: Automatic, Manual
Determines mipmapping mode. Setting this to Manual leads to sharper results.
Mipmap Level: 0 - 10
When Mipmap mode is set to Manual, this allows you to choose a different Mipmap.

Example Images

Aucune image jointe à cette page.

Non-Square Transform

Non-Square Transform (Grayscale)

In: Filters/Transforms

Intermediate

Description

Nonsquare-safe version of Transform 2D. Automatically detects nonsquare ratios and can transform square input images onto a nonsquare
canvas.

Make sure you fully understand the Graph Parameters to make the best use of this node, as you will need to set a few settings correctly:

Your Graph Size should be nonsquare, otherwise there is no need for this node.
Set the Non Square Transform node's Output Size to "Relative to Parent".
Set the node's tiling mode to "No Tiling" if you only want to transform your input to a single position.

Parameters
Tile Mode: Automatic, Manual
Enable automatic non-square compensations or not.
Tile: 1 - 16
Only accessible when Tile Mode is set to Manual. Allows you to change the scale in a tiling-safe way.
Offset: 0.0 - 1.0
Moves or translates the result. Double-click the slider to enter negative values.
Rotation: 0.0 - 1.0
Rotates the input image.
Safe Rotation (Square Only): False/True
Snaps to safe values to maintain sharpness of pixels.
Background Color: (Color value)
Background color to fill image with. Only visible when Tiling Mode in Base Parameters is set to "No Tiling".

Example Images

Skew

Skew (Grayscale)

In: Filters/Transforms

Simple

Description

Skews an input image.

Parameters

Axis: Horizontal, Vertical


Choose to skew vertically or horizontally.
Amount: -1.0 - 1.0
Amount of skew.
Align: Center, Top Left, Bottom Right
Sets the origin point of the Skew transformation.
Example Images

Symmetry

Symmetry

In: Filters/Transforms

Intermediate

Description

Performs a variety of symmetry operations on an input image. Can be used to make geometrical shapes symmetrical.

This node is very similar to Mirror, but has extra controls for blending modes.

Parameters

Symmetry Mode: Mirror Y, Mirror X, Diagonal Left, Diagonal Right, Mirror X/Y, Mirror X / Mirror Y, Diagonal Left / Diagonal Right,
Diagonal Right / Diagonal Left, 8
Chooses symmetry geometrical mode.
Transfer Mode: 0 - 6
Chooses symmetry blending mode: Copy, Add, Subtract, Multiply, Add Sub, Max, Min.

Example Images

Symmetry Slice
Symmetry Slice

In: Filters/Transforms

Complex

Description

Complex Symmetry/mirroring operation node. Allows for a large variety of geometric operations with full control, but requires some experimenting.

Compared to Mirror and Symmetry, this node has many more options.

Parameters

Symmetry Mode: 0 - 6
Choose symmetry geometry/mirror line. Options are Horizontal, Vertical, Diagonal Left-Right, Diagonal Right-Left, Vertical Invert, Corner
and Diagonal Corner.
Transfer Mode: 0 - 6
Blend mode. Options are:
Blend: 0.0 - 1.0
Blends the original image back into the result.
Flip Side: False/True
Flips origin, meaning the origin side of the operation is reversed. Left to right symmetry for example becomes right to left.
Flip Side2: False/True
Only used when Symmetry Mode is 5 or 6. Flip corner origin.

Example Images

Material Filters
Material Filters are nodes that work with Full Material inputs: combinations of multiple channels, best used through Link Creation Modes. Any
time you are working with a full PBR material and not just a single channel such as Basecolor or Normal, or a simple black and white mask, you
will want to use the Material Filters category.

This category consists of a number of sub-categories:

1-Click
Only contains Bitmap2Material.
Effects
Fancy, all-in-one material effects.
Transforms
Multi-channel transformation helpers.
Blending
Multi-channel blend nodes.
PBR Utilities
PBR helper nodes and tools.
Scan Processing
Tools specifically intended for photoscanned textures.

1-Click
This category only contains Bitmap to Material Light. It is intended for single-click, very easy material generation.
Bitmap to Material Light

Bitmap to Material Light

In: Material Filters/1-Click

Intermediate

Description

This node converts a single Diffuse/Basecolor input into a full material. As the simple, "light" version of Allegorithmic's fully fledged
Bitmap2Material, which can be purchased separately, it gives you a bit of a taste of the full version. It can work well for simpler cases.

While not guaranteed to result in perfect, PBR-correct materials, it is a good and quick way to get started if you only have a single image and
want a full material.

Parameters
Click here to expand parameters...

Channels
Toggles material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
Global
Depth Balance: -1.0 - 1.0
Sets a bias/shift for the Heightmap.
Diffuse
Sharpen: 0.0 - 1.0
Adds sharpening to the diffuse result.
Hue: 0.0 - 1.0
Tints diffuse with a user-selected Hue shift.
Saturation: 0.0 - 1.0
Modifies saturation of Diffuse result.
Brightness: 0.0 - 1.0
Adjusts Diffuse result brightness.
Contrast: -1.0 - 1.0
Adjusts the contrast of the result.
Relief
The Relief group controls both Normal and Height outputs.
Output Normal Format: DirectX, OpenGL
Switches between Normal formats (flips green).
Invert Generated Relief: False/True
Inverts interpretation of height.
Normal Strength: 0.0 - 20.0
Sets strength of generated Normalmap.
Relief Equalizer: 0.0 - 1.0
Sets conversion balances for different detail scales.
Pinch Intensity: 0.0 - 1.0
Makes Normal transitions sharper. Effectively adds a sharpening filter before converting to normal, making the edges more
pronounced.
Normal Sharpen: 0.0 - 1.0
Sharpens Normalmap after conversion, brings out the details.
Normal Soften: 0.0 - 1.0
Softens Normalmap after conversion, hides details.
Specular
Specular Diffuse Influence: 0.0 - 1.0
Sets influence of diffuse on Specular. Affects Glossiness and Roughness outputs as well.
Specular Saturation: 0.0 - 1.0
Changes saturation for Specular output.
Specular Sharpen: 0.0 - 1.0
Sharpens Specular output.
Specular Levels In: 0.0 - 1.0
Sets input levels for Specular interpretation.
Specular Levels Out: 0.0 - 1.0
Modifies output levels of Specular.
Metallic Specular Influence: 0.0 - 1.0
Determines influence of the optional Metallic input on Specular map.
Glossiness
Glossiness Levels In: 0.0 - 1.0
Sets input levels for Glossiness interpretation.
Glossiness Levels Out: 0.0 - 1.0
Modifies Glossiness output levels.
Metallic Glossiness Influence: 0.0 - 1.0
Determines influence of the optional Metallic input on Glossiness map.
Roughness
Roughness Levels In: 0.0 - 1.0
Sets input levels for Roughness interpretation.
Roughness Levels Out: 0.0 - 1.0
Modifies Roughness output levels.
Metallic Roughness Influence: 0.0 - 1.0
Determines influence of the optional Metallic input on Glossiness map.
Ambient Occlusion
Ambient Occlusion In Diffuse: 0.0 - 1.0
Blends in generated AO into Diffuse output.
Ambient Occlusion Spread: 0.0 - 1.0
Sets how far generated AO spreads.
Ambient Occlusion Light Distance: 0.0 - 1.0
Sets AO "depth" interpretation. Has less influence when there is a large Spread.
Ambient Occlusion Light Angle: 0.0 - 1.0
Sets fake lighting AO cast angle. Can be used to compensate for any directional AO already in the Diffuse, if set to an
opposite angle.
Ambient Occlusion Levels: 0.0 - 1.0
Modifies AO output levels.

Example Images

Aucune image jointe à cette page.

Effects (Material)
This category contains nodes that generate fully-fledged material effects, similar to how Weathering nodes work, but with the main difference
being that these Effects nodes can take any material as input. They also require a baked map as input, mostly a Heightmap.

Two good examples are Water Level and Snow Cover.


Height Blend

Height Blend

In: Material Filters/Effects

Simple

Description

Combines two Heightmaps based on their height information. Generates a blended Heightmap, but also a Black and White mask that can be
used elsewhere.
This is useful when you have two high-quality Heightmaps to combine, but not necessarily a full material, as is required for Material Height Blend.

Parameters
Click here to expand parameters...

Inputs

Height Top: Grayscale Input


Height Bottom: Grayscale Input
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Height Offset: 0.0 - 1.0


Offsets Heightmaps so the blend level is moved along the height axis. This is the main control for the blending.
Contrast: 0.0 - 1.0
Adjusts the contrast of the blending, makes transitions sharper.
Mode: Balanced height, Bottom height priority
Switches between two different blending modes.
Opacity: 0.0 - 1.0
Blending Opacity of the foreground height, fades it in or out.

Example Images

Aucune image jointe à cette page.

Material Height Blend

Material Height Blend

In: Material Filters/Effects

Intermediate

Description

This node is a more advanced version of Height Blend that blends two materials based on their Heightmaps. There is no user-defined mask, so
you must have two Heightmaps, one for each material, of which at least one is not a uniform value.

This can be useful for combining two different, high-quality materials without a high-quality blending mask.

If you want to blend in water or snow, the nodes Snow Cover and Water Level are available instead.

Parameters
Click here to expand parameters...

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic/Roughness.
Height Offset: 0.0 - 1.0
Offsets Heightmaps so the blend level is moved along the height axis. This is the main control for the blending.
Contrast: 0.0 - 1.0
Adjusts the contrast of the blending, makes transitions sharper.
Mode: Balanced height, Bottom height priority
Switches between two different blending modes.
Opacity: 0.0 - 1.0
Blending Opacity of the foreground height, fades it in or out.
Albedo Matching: 0.0 - 1.0
The amount of internal color matching to perform between Albedo colors.

Example Images

Aucune image jointe à cette page.

Season Filter

Season Filter

In: Material Filters/Effects

Complex

Description

This node adds effects such as an animated water level, snow, ice and/or moss.

Keep in mind that this is an older filter that is not intended to be fully PBR-correct. It is mostly kept for legacy/compatibility reasons, although it
can still be useful in some cases. More recent PBR-correct versions can be found in Snow Cover and Water Level.

The node requires a proper set of material inputs, mainly with a decently detailed Heightmap or Normalmap.

Parameters
Click here to expand parameters...

Inputs

Mask : Grayscale Input


Mask slot used for masking the node's effects. Can be toggled with the "Mask" parameter.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
Advanced
Normal Format: DirectX, OpenGL
Switches between different Normalmap formats (inverts the green channel).
Mask: False/True
Toggles the use of the Mask map on or off.
Light Intensity: 0.0 - 1.0
Intensity of the (faked) light.
Light Angle: 0.0 - 1.0
Incidence angle of the (faked) light
Effect
Effect From Height or Normal: Height, Normal
Chooses which input map drives the effects.
Water Level: 0.0 - 1.0
Raises or lowers the water level based on Height/Normal info.
Water Details: 0.0 - 1.0
Sets amount of details in the water.
Refraction: 0.0 - 1.0
Sets amount of fake refraction in the effect.
Reflection: 0.0 - 1.0
Sets amount of fake reflection in the effect.
Reflection Distance: 0.0 - 1.0
Controls reflection visuals.
Reflection Angle: 0.0 - 1.0
Controls reflection visuals.
Flow Direction: 0.0 - 1.0
Controls animation flow (use Substance Player to visualise).
Ice: 0.0 - 1.0
Sets how frozen the water is.
Ice Details: 0.0 - 1.0
Sets amount of details in the ice.
Snow: 0.0 - 1.0
Sets amount of snow coverage.
Moss: 0.0 - 1.0
Sets amount of moss coverage.
Moss Scale: 1 - 4
Sets scale of generated moss texture.
Moss Color: (Color value)
Sets color of moss.
Water Color: (Color value)
Sets color of water, including alpha/opacity.
Blending
Diffuse Intensity: 0.0 - 1.0
Blending strength of the Diffuse.
Base Color Intensity: 0.0 - 1.0
Blending strength of the Base Color.
Normal Intensity: 0.0 - 1.0
Blending strength of the Normal.
Specular Intensity: 0.0 - 1.0
Blending strength of the Specular.
Glossiness Intensity: 0.0 - 1.0
Blending strength of the Glossiness.
Roughness Intensity: 0.0 - 1.0
Blending strength of the Roughness.
Ambient Occlusion Intensity: 0.0 - 1.0
Blending strength of the Ambient Occlusion.
Height Intensity: 0.0 - 1.0
Blending strength of the Height.

Example Images

Aucune image jointe à cette page.

Snow Cover

Snow Cover

In: Material Filters/Effects

Intermediate

Description

All-in-one effect to add snow buildup on a full material. Strongly relies on a good, high-quality Heightmap, such as from a photoscan. The result is
intended to be PBR-correct.

Parameters
Click here to expand parameters...

Inputs
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic/Roughness.
Fresh Snow: 0.0 - 1.0
Sets amount of snow in Raised areas. The result is tied to the Melted Snow parameter.
Melted Snow: 0.0 - 1.0
Sets amount of melted snow in lowered corners.
Buildup: 0.0 - 1.0
Mostly affects Height output, determines height pile-up effect.
Smoothness: 0.0 - 1.0
Sets smoothing out of height details by snow buildup.
Flakes Intensity: 0.0 - 1.0
Mainly affects Normalmap, intensity of flake details.

Example Images

Aucune image jointe à cette page.

Water Level

Water Level

In: Material Filters/Effects

Complex

Description

All-in-one effect that adds a water level to a full material input. Input material must have a good, high-quality Heightmap for the effect to work. The
result is PBR-correct.

Parameters
Click here to expand parameters...

Inputs

Mask: Grayscale Input


Mask slot used for masking the node's effects.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic/Roughness.
Water Level: 0.0 - 1.0
Main control to raise or lower the water level.
Water Darkness: 0.0 - 1.0
Sets general "transparency" of the water.
Edges Wetness: 0.0 - 1.0
Determines how much of a wet look the water edges should have.
Edges Wetness Distance: 0.0 - 1.0
Sets how far the wet edges reach.
Depth Blur Amount: 0.0 - 1.0
Sets amount of blur based on depth below water. Modifies blur radius.
Depth Blur Opacity: 0.0 - 1.0
Determines how much depth blur is blended in, can be used to lower the effect of the blur.
Sludge Color: (Color value)
Sets the color of the sludge effect.
Sludge Depth: 0.0 - 1.0
Sets the depth at which sludge starts appearing, relative to water level.
Sludge Opacity: 0.0 - 1.0
Sets global opacity of the sludge effect.
Frost: 0.0 - 1.0
Sets the amount of frost. Starts appearing from the outer edges and moves inwards.
Frost Intensity: 0.0 - 1.0
Sets the intensity of frost, controls the "opacity" of the effect.
Frost Cracks: 0.0 - 1.0
Sets the amount of cracks in the transitions from frozen to liquid.
Frost Normal Format: DirectX/OpenGL
Switches Frost Normalmap effect green channel.

Example Images

Aucune image jointe à cette page.

Transforms (Material)
This category contains nodes intended to transform full multi-channel materials. Right now it includes only Material Transform.
Material Transform

Material Transform

In: Material Filters/Transforms

Simple

Description

Material Transform is simply the "Multi-Channel" Materials version of the atomic Transformation 2D node. It transforms all channels of an input
material at the same time, with the same interface as Transform 2D.

Just make sure to set up the Channels properly! By default, both Metallic/Roughness and Specular/Glossiness are enabled, which could lead to
some confusion.

Parameters

Transformation: (Transformation Matrix)


Rotates and scales the result. Moving/panning is done via the Offset parameter
Offset: -0.5 - 0.5
Moves or translates the result. When the Transformation control is present, the result can be modified by directly interacting with the
canvas.
Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic/Roughness.

Example Images

Aucune image jointe à cette page.

Blending (Material)
The Blending category is one of the most important multi-channel material categories. It contains nodes intended for combining, switching and
blending materials that consist of multiple simultaneous outputs.

These nodes can save massive amounts of work, but make sure you fully understand Link Creation Modes to properly utilise them.

The following nodes are good ones to start with:


Multi-Material Blend
Material Adjustment Blend

Material Adjustment Blend

Material Adjustment Blend

In: Material Filters/Blending

Intermediate

Description

This node allows adjusting of any and all channels of a full material, based on a mask. It is intended for making a full material workflow easier and
quicker.

It is useful for when you want to adjust a few channels of a material (such as making diffuse brighter and roughness darker) based on the same
mask.

Parameters
Click here to expand parameters...

Inputs

Color ID Mask: Color Input


Mask slot used for masking the node's effects.
Greyscale Mask: Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Channels
Toggles material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
This also enables and disables the appearance of the channel's relevant groups.
Diffuse
Performs adjustment operations on the Diffuse channel, in areas defined by the mask.
Base Color
Performs adjustment operations on the Base Color channel, in areas defined by the mask.
Normal
Intensity: 0.0 - 1.0
Tones down Normal Intensity
Specular
Performs adjustment operations on the Specular channel, in areas defined by the mask.
Emissive
Performs adjustment operations on theEmissive channel, in areas defined by the mask.
Glossiness
Performs adjustment operations on the Glossiness channel, in areas defined by the mask.
Roughness
Performs adjustment operations on the Roughness channel, in areas defined by the mask.
Metallic
Performs adjustment operations on the Metallic channel, in areas defined by the mask.
Specular Level
Performs adjustment operations on the Specular Level channel, in areas defined by the mask.
Ambient Occlusion
Performs adjustment operations on the Ambient Occlusion channel, in areas defined by the mask.
Height
Performs adjustment operations on the Height channel, in areas defined by the mask.
Opacity
Performs adjustment operations on the Opacity channel, in areas defined by the mask.
Color ID Mask: False/True
Set to use Color ID Mask instead of grayscale mask.
Fuzziness: 0.01 - 1.0
If Color ID Mask is enabled, this determines the spread of the Color ID selection color.
Color: (Color value)
Sets what color to pick from the Color ID map and mask with.
Padding: 0.0 - 1.0
Determines Blending contrast/transitions of the Color ID masking.

Example Images

Aucune image jointe à cette page.

Material Blend

Material Blend

In: Material Filters/Blending

Complex

Description

Material Blend is the Multi-Channel, Full Material Equivalent of the atomic Blend Node. It blends between two full materials (all possibe channels)
based on a grayscale mask, or optionally based on one single color from a Color ID mask.

This node is useful if you want to blend two materials and have a grayscale map but no full Color ID bake. If you do have a Color ID bake and
want to blend more than two materials, we suggest you use Multi-Material Blend.

Parameters
Click here to expand parameters...

Inputs

ColorID: Color Input


Optional Baked color ID map.
Greyscale Mask: Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Channels
Toggle material channels on and off in this group, when using Specular/Glossiness maps instead of Metallic/Roughness for
example.
Diffuse
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Base Color
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Normal
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Specular
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Emissive
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Glossiness
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Roughness
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Metallic
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Specular Level
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Ambient Occlusion
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Height
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Opacity
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Color ID Mask: False/True
Use Color ID mask instead of grayscale mask. Keep in mind that this is only for one color!
Color: (Color value)
Which color to pick and convert to white.
Fuzziness: 0.01 - 1.0
The extent to which the color you picked blends over into its neighbours.
Padding: 0.0 - 1.0
Transition contrast of the color you picked.

Example Images

Aucune image jointe à cette page.

Material Color Blend

Material Color Blend

In: Material Filters/Blending

Intermediate

Description

This node allows for adjustments to a Multi Channel, Full Material by blending solid colors on top. This is the main difference with Material
Adjustment Blend, which only allows for Levels-type adjustments to channels, whereas this node uses Blend-type adjustments with a solid color.
This node is most useful when you want to either introduce a flat color hint into Diffuse or Base Color, or went you want to "flatten" out other
channels by using a set, solid color value.

Parameters
Click here to expand parameters...

Inputs

ColorID: Color Input


Mask slot used for masking the node's effects.
Greyscale Mask: Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Channels
Toggle material channels on and off in this group, when using Specular/Glossiness maps instead of Metallic/Roughness for
example.
Diffuse
Color: (Color value)
Which color value to blend on top of the Diffuse Channel.
Opacity: 0.0 - 1.0
Blending Opacity between Foreground and Background.
Blending Mode: Normal, Add, Subtract, Multiply, Add/Sub, Max, Min, Switch
Blend mode to use in the operation.
Base Color
Blends a solid color on top of this channel with options as in the Diffuse group.
Normal
Source: Height, Mask
Blending Mode: Combine, Blend
Height Intensity: 0.0 - 1.0
Height Opacity: 0.0 - 1.0
Format: DirectX, OpenGL
Specular
Blends a solid color on top of this channel with options as in the Diffuse group.
Emissive
Blends a solid color on top of this channel with options as in the Diffuse group.
Glossiness
Blends a solid color on top of this channel with options as in the Diffuse group.
Roughness
Blends a solid color on top of this channel with options as in the Diffuse group.
Metallic
Blends a solid color on top of this channel with options as in the Diffuse group.
Specular Level
Blends a solid color on top of this channel with options as in the Diffuse group.
Ambient Occlusion
Blends a solid color on top of this channel with options as in the Diffuse group.
Height
Blends a solid color on top of this channel with options as in the Diffuse group.
Opacity
Blends a solid color on top of this channel with options as in the Diffuse group.
Color ID Mask: False/True
Use Color ID mask instead of grayscale mask. Keep in mind that this is only for one color!
Enables all the below options.
Color: (Color value)
Which color to pick and convert to white.
Fuzziness: 0.01 - 1.0
The extent to which the colour you picked blends over into its neighbours.
Padding: 0.0 - 1.0
Transition contrast of the color you picked.

Example Images

Aucune image jointe à cette page.

Material Switch
Material Switch

In: Material Filters/Blending

Simple

Description

This node is the Multi-Cannel, Full material version of Switch. It takes two materials as input and returns only one of them based on the switch
parameter.

Parameters
Click here to expand parameters...

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic/Roughness.
Switch: False/True
Switch to return either Material 1 or 2.

Example Images

Aucune image jointe à cette page.

Multi-Material Blend

Multi-Material Blend

In: Material Filters/Blending

Intermediate

Description

This node combines multiple materials based on a Material ID / Color ID map, one that can be baked from a mesh. It takes up to 16 different full
materials, with whatever kind of channels you enable in the Channels group.

The node is very useful when texturing full props, as it allows full parametrisation of materials while still dynamically combining them all. Perfect
for texturing simple to complex props that have proper ID bakes, or even for creating fully pipelined "Template" Substances that fully cohere to
team standards.

Keep in mind that when using this, Material 1, Slot 1 is always the default material and will appear anywhere no other material appears. That is
why you cannot set up a color for it. If you want to play this safe, you can for example plug in a Base Material that is set to rough black.

Parameters
Click here to expand parameters...
Inputs

1-16 Full material slots


Amount of slots is determined by the Materials dropdown.
Color ID: Color Input
Baked Color ID map.

Parameters

Materials: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16


Sets the maximum amount of different materials to blend.
Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic/Roughness.
Material 2-16
One group appears for every material enabled.
Color: (Color value)
Color to pick from the ID map that matches this material slot.
Fuzziness: 0.01 - 1.0
Bleed over into neighbouring colors.
Padding: 0.0 - 1.0
Hardness of transitions: mask contrast.

Example Images

Aucune image jointe à cette page.

PBR Utilities
This category contains helper nodes for working with PBR materials. It's intended for use with both Specular-Glossiness as well as Metallic-
Roughness PBR workflows. All nodes are intended for multi channel-materials, and channels can be (de)activated to support one or both
worfklows.

The following nodes are especially useful:

Base Material
PBR BaseColor / Metallic Validate

BaseColor / Metallic / Roughness converter

BaseColor / Metallic / Roughness


converter

In: Material Filters/PBR Utilities

Simple

Description

This node converts Basecolor, Metallic and Roughness maps to different PBR model outputs, such as Specular/Glossiness model. Some of the
included output targets are well-known render engines such as Vray, Corona, Redshift, Renderman and Arnold.

This is useful if you have graphs or materials that are made with one model of PBR, while your target requires a different model.

Parameters

Use SpecularLevel input: False/True


Exposes an extra input slot to SpecularLevel input. This is also taken into account during conversion.
Target: PBR Diffuse/Specular/Gloss, Vray (GGX), Corona, Corona 1.6+, Redshift 1.x, Arnold 4 (AiStandard), Arnold 4 (AlSurface),
RenderMan (PxrSurface)
Sets the conversion target model.

Example Images

Aucune image jointe à cette page.

Base Material

Base Material

In: Material Filters/PBR Utilities

Intermediate

Description

The quickest, easiest way to create a Multi-Channel material. This node returns a bundled Full material based on simple, solid color settings and
values. This can then be used as placeholder or to refine into a complex material.

The node is very useful when texturing full props and blending multiple materials. In fact, you could start every single material from this node,
without ever needing a complex material base.

Parameters
Click here to expand parameters...

Inputs

Optional inputs for every channel that can be toggled with the switches in "User Defined Inputs".

Parameters

PBR Workflow: Metal - Roughness, Specular - Glossiness


Sets the PBR model used.
Material Preset: Custom, Dielectric, Gold, Silver, Aluminium, Iron, Copper, Titanium, Nickel, Cobalt, Platinum
Quick shortcut to create certain metals. Disables irrelevant options.
Base Color: (Color value)
Solid color used for Base Color.
Metallic: (Grayscale value)
Solid value used for Metallic.
Diffuse Color: (Color value)
Solid color used for Diffuse.
Specular: (Color value)
Solid color used for Specular.
Specular Presets: Plastic, Wood, Stone, Brick, Sand, Concrete, Fabric, Rusted Metal, Water, Ice, Glass
Optional quick presets to set PBR-correct Specular values.
Specular Range: 0.0 - 1.0
Adjusts Specular range.
Roughness - Glossiness
Roughness Value: (Grayscale value)
Set the global, base roughness value, if channel is active.
Glossiness Value: (Grayscale value)
Solid color used for Glossiness, if channel is active.
Grunge Amount: 0.0 - 1.0
Extent to which the optional Grunge map input is blended in to Gloss or Roughness.
Grunge Tiling: 1 - 16
Extent to tile the optional Grunge map by.
Custom Grunge Input: False/True
Enables or disables the optional custom Grunge map .
Normal
Normal from Height Intensity: 0.0 - 16.0
Optionally converts custom Heightmap to normal and returns this as the material Normalmap.
Height
Height Position: 0.0 - 1.0
Solid value used for Height output.
Height Range: 0.0 - 1.0
Sets influence of User-Defined Heightmap, if enabled.
User-Defined Maps
Toggles on or off all user-defined maps, returning these instead of any solid values.

Example Images

Aucune image jointe à cette page.

PBR Albedo Safe Color

PBR Albedo Safe Color

In: Material Filters/PBR Utilities

Simple

Description

This is a utility node that makes corrections if Basecolor or Diffuse values are outside an acceptable, PBR-correct range. When set to Metallic,
the node also attempts to correct Basecolor values based on Metallic intensity.

Also see PBR BaseColor / Metallic Validate for visual feedback on which areas might be wrong.

This is useful as a quick correction tool, especially when one is still learning PBR, but not intended as an absolute measure that is always
supposed to be correct.

Parameters

PBR Workflow: Base Color - Metallic, Diffuse - Specular


Switches between two different PBR workflows.
Tolerance: 0.0 - 1.0
Amount of tolerance for values that are out-of-range.

Example Images

Aucune image jointe à cette page.

PBR BaseColor / Metallic Validate

PBR BaseColor / Metallic Validate

In: Material Filters/PBR Utilities


Simple

Description

A utility node that generates a Good-to-Bad "Heatmap" on which values are correct or incorrect according to PBR standards.

It is very useful as a learning tool for PBR, since it provides very clear visual feedback of what the mistakes are and where they can be found.

Don't use this as the end-all-tool, but still make sure you always have a clear understanding of why you're breaking any rules this tool might
highlight.

Parameters

Validation Mode: Albedo , Metal, Combined


Sets wether to check only Albedo, Metal, or both combined as an overview mode.
Albedo Dark Range Threshold: 50 sRGB, 30 sRGB
Sets the lower Albedo limit to either 50 or 30 sRGB. Can decrease or increase tolerance for red areas.
Metal Reflectance Range: 70-100% Reflective, 60-100% Reflective
Changes Metallic range to be deemed correct. Can decrease or increase tolerance for red areas.
Overlay Map: False/True
Quick debug mode to overlay input maps, allows for quicker tracking down of problem areas.

Example Images

Aucune image jointe à cette page.

PBR Dielectric F0

PBR Dielectric F0

In: Material Filters/PBR Utilities

Simple

Description

A utility "Preset" node for Specular values when using the Specular PBR model.

Useful to quickly get correct values as a starting point, so you can avoid colorpicking from a chart.

Parameters

Specular F0: Plastic, Wood, Stone, Brick, Sand, Concrete, Fabric, Rusted Metal, Water, Ice, Glass, Custom IOR
Picks a predefined Specular range.
Specular Range: 0.01 - 1.0
Adjusts Specular value within the range of selected preset. Allows for some tweaking.

IOR: 1.0 - 5.0


Only enabled when set to Custom IOR. Pick your own value.

Example Images

Aucune image jointe à cette page.

PBR Metal Reflectance


PBR Metal Reflectance

In: Material Filters/PBR Utilities

Simple

Description

This is a quick Preset helper node to return the correct reflection colors for a few pre-defined pure metals. It can be used in the Basecolor for the
Metallic model, or the Specular channel for the Specular/Glossiness model.

This node is useful when you want a starting point for a pure metal, and allows you to avoid colorpicking from a chart.

Parameters

Metal Color: Gold, Silver, Aluminium, Iron, Copper, Titanium, Nickel, Cobalt, Platinum
Picks a pre-defined metal value.

Example Images

Aucune image jointe à cette page.

Scan Processing
This category is intended to meet your needs for processing photos and scans into full, tiling PBR materials. It contains a large assortment of
tools with functions to remove lighting, crop out borders and improve tiling.

The following nodes are good introductions:

Clone Patch
Multi Crop
Smart Auto Tile

AO Cancellation

AO Cancellation

In: Material Filters/Scan Processing

Simple

Description

This node attempts to remove any Ambient Occlusion lighting information from your Albedo (Base Color) map, based on a separate AO map
input. It can be used to ensure your Albedo information is PBR correct and mostly devoid of (strong) lighting information.

A useful node for when you have a baked AO map from a scanned mesh, or alternatively even an AO map generated from Height or Normal info.
Parameters

AO Cancellation: 0.0 - 1.0


Strength with which to remove lighting information.
AO Saturation: 0.0 - 1.0
(De)Saturation compensation for areas where lighting is removed. This can be used to return any loss of color in darker areas.

Example Images

Aucune image jointe à cette page.

Clone Patch

Clone Patch / Clone Patch Grayscale

In: Material Filters/Scan Processing

Complex

Description

Clone Patch is a procedural, parametric "Clone Stamp" node. It clones one area of an input to another, hiding potentially unwanted details. While
it's not as quick and easy as using a familiar tool in a brush-based application, it does provide the key advantage of being non-destructive and
working within a node-based workflow. Additionally, this node performs a smart analysis of both target and source area, and tries to blend things
as well as possible based on contrast, values and shapes.

This is mostly intended for those rare moments where you want to do a manual fix of a specific area, in case there is an unwanted detail
somewhere.

Keep in mind this does not work like a standard, simple "Stamp" brush. The shape of your blended area is based on the shapes and values of the
areas you're working with, meaning this is quite a heavy node that requires patience - but does offer excellent results.

Also important to understand is the fact that you can move the Target area with a gizmo, but the Source area needs to be set by changing the
"Source Matrix" Parameters.

If you want this for a full material (as is most often the case), see Material Clone Patch.

For those cases where you want to perform this operation on multiple inputs at the same time (without it being a material), see Multi
Clone Patch.

Parameters
Click here to expand parameters...

Is Normal (only for Color): False/True


Sets whether the input is a Normalmap, and whether blending should be treated as such.
Shape: Square, Disc
Sets Stamp shape. Used only as base.
Edge
Threshold: 0.0 - 1.0
Sets how far the blended area should reach. This grows in steps, along shapes in the target area, and has very little effect
with uniform backgrounds.
Blur: 0.0 - 2.0
Blurs the edges of the stamp area in case a softer transition is needed.
Smoothness: 0.0 - 2.0
Rounds off the edges of the stamp shape, making for smoother-flowing outlines.
Grid Resolution: 1 - 11
Sets the quality resolution of the blending analysis. A higher value means more accurate blending.
Transformations
Source Matrix: (Transformation Matrix)
Transforms source (Scale & Rotation). Cannot be done on canvas, change through these parameters only.
Source Offset: -0.5 - 0.5
Translates source location. Cannot be done on canvas, change through these parameters only. This parameter is probably
the main one you want to change!
Target Matrix: (Transformation Matrix)
Transforms target location (Scale & Rotation). Can also be done through gizmo on canvas.
Target Offset: -0.5 - 0.5
Translates target location. Can also be done through gizmo on canvas.

Example Images

Aucune image jointe à cette page.

Color Equalizer

Color Equalizer

In: Material Filters/Scan Processing

Complex

Description

This node works like a high-quality Highpass for color differences. Where a normal Highpass removes saturation and can introduce unwanted
sharpness, Color Equalizer works for evening out color differences and removing unwanted tints at a user-selectable scale.

This is very useful if a photo or scan has unwanted color differences, or a tint that you want removed. If you've used Highpass, this node should
feel familiar.

The masking options are intended for removing very specific tints or for operating only in specific value ranges. Use these if you feel the effect is
too broad.

Parameters
Click here to expand parameters...

Inputs

Input: Color Input


Mask Input: Grayscale Input
Mask slot used for masking the node's effects. Only active when Mask is set to "Input".

Parameters

Input Tiled: False/True


Optionally preserves tiling on edges.
Radius: 0.0 - 50.0
Sets equalising radius. A larger radius will only remove large color differences. This requires tweaking for every image.
Bright/Dark Balance: 0.0 - 1.0
Bias setting to leave or remove darker tints.
Custom Color Variation: False/True
Enables the ability to vary the effect towards a user-specified color.
Color Variation
Only active if Custom Color Variation is enabled. Settings allow you to select a tint offset to equalise towards.
Hue: 0.0 - 360.0
Chroma: 0.0 - 1.0
Luma: 0.0 - 1.0
Mask Source: None, Image Average, Color Parameter, Input
Set if any kind of masking should happen. Color Parameter enables the below additional settings, Input switches to a user-defined
mask input.
Mask
This is only active with Color Parameter masking. Additional masking parameters to determine the mask based on the image itself.
The below parameters allow you to precisely convert a tint to a binary mask on which the Equalisation is applied. Note that the
Radius parameter's effects can become much less pronounced when using these settings.
Color: (Color value)
Hue Range: 0.0 - 360.0
Chroma Range: 0.0 - 1.0
Luma Range: 0.0 - 1.0
Blur: 0.0 - 2.0
Smoothness: 0.0 - 2.0

Example Images

Aucune image jointe à cette page.

Crop

Crop (Grayscale)

In: Material Filters/Scan Processing

Intermediate

Description

Crop is a parametric, non-destructive version of the familiar crop tool. You select an area of an image and the result is returned with the
unselected areas discarded.

It can be useful in many ways, as performing a Crop operation with atomic nodes is not so straightforward. Especially for converting non-square
images, this node comes in handy. Make sure to set the input resolution correctly in that case.

Very important to understand is that to use this node with ease, you must make good use of the ability to preview a different node than the one
whose parameters you're editing!
In short: Double-click the node you are using as input for this one (the original, uncropped image), then single-click the crop node that follows
right after it. You can then modify the crop gizmo to fit the area you want to crop to.

Parameters

Input Size: 0 - 8192


Input image's resolution and proportions. Very important for non-square images.
Background: (Color value) / (Grayscale value)
Background uniform value for areas not covered by Crop.
Transform: (Transformation Matrix)
Rotates and scales the result. The result can be modified by directly interacting with the canvas.
Offset: 0.0 - 1.0
Moves or translates the result. The result can be modified by directly interacting with the canvas.
Is Normal (only for Color version): False/True
Whether or not the input should be treated as a Normalmap.

Example Images

Aucune image jointe à cette page.

Material Clone Patch

Material Clone Patch

In: Material Filters/Scan Processing

Complex

Description

This is the Multi-Channel, full material version of Clone Patch. It performs a Clone Patch on any and all channels of a material. See the original
version for more information!

This is very useful if you want to remove a detail from all channels of a material. Outputs debug images for multiple channels to see what the
smart patch area looks like exactly.

Parameters
Click here to expand parameters...

Inputs

Mask: Grayscale Input


Mask slot used for masking the node's effects. Can be toggled with the "Mask" parameter.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
Shape: Square, Disc
Sets Stamp shape. Used only as base.
Edge
Threshold (for multiple channels): 0.0 - 1.0
Sets how far the blended area should reach. This grows in steps, along shapes in the target area, so it has very little effect
with uniform backgrounds.
Be careful with changing this too much between channels, as it could lead to visual discrepancies!
Blur: 0.0 - 2.0
Blurs the edges of the stamp area in case a softer transition is needed.
Smoothness: 0.0 - 2.0
Rounds off the edges of the stamp shape, making for smoother-flowing outlines.
Grid Resolution: 1 - 11
Sets the quality resolution of the blending analysis. A higher value means more accurate blending.
Transformations
Source Matrix: (Transformation Matrix)
Transforms source (Scale & Rotation). Cannot be done on canvas, change through these parameters only.
Source Offset: -0.5 - 0.5
Translates source location. Cannot be done on canvas, change through these parameters only. This parameter is probably
the main one you want to change!
Target Matrix: (Transformation Matrix)
Transforms target location (Scale & Rotation). Can also be done through gizmo on canvas.
Target Offset: -0.5 - 0.5
Translates target location. Can also be done through gizmo on canvas.

Example Images

Aucune image jointe à cette page.

Material Crop

Material Crop

In: Material Filters/Scan Processing

Simple

Description

This node is the multi-channel, full material version of Crop. It allows you to perform a crop operation on any and all Material channels in parallel.

See the original Crop for more info.

Parameters
Click here to expand parameters...

Parameters

Channels
Toggle material channels on and off in this group, when using Specular/Glossiness maps instead of Metallic/Roughness for
example.
Input Size: 0 - 8192
Input image's resolution and proportions. Very important for non-square images.
Background: (Color value) / (Grayscale value)
Background uniform value for areas not covered by Crop.
Transform: (Transformation Matrix)
Rotates and scales the result. Result can be modified by directly interacting with the canvas.
Offset: 0.0 - 1.0
Moves or translates the result. Result can be modified by directly interacting with the canvas.

Example Images

Aucune image jointe à cette page.

Multi-Angle to Albedo
Multi-Angle to Albedo

In: Material Filters/Scan Processing

Simple

Description

This node attempts to remove all-lighting information from a set of input photographs/scans that were taken under different lighting angles. It
combines all samples into one single image that should be as lighting-neutral, and thus PBR-correct, as possible.

Keep in mind that the more samples you have and the bigger the difference in lighting angle is, the greater the success you will achieve. From
four samples onwards, it should be possible to achieve near-perfect results, depending on your input images. Input images should be taken with
a tripod and have minimal or ideally even no differences, except for lighting from a different angle!

See Multi-Angle to Normal for the Normalmap version of this node. If you want to pre-process your inputs, Multi Color Equalizer, Multi
Crop and Multi Clone Patch can be useful, as they are intended to be combined with these nodes.

The blog post "Your Smartphone is a material scanner" illustrates this process a bit better.

Parameters
Click here to expand parameters...

Inputs

Input 1-8: Color Input


The number of inputs is determined by the Samples Amount parameter.

Parameters

Samples Amount: 2 - 8
Sets the number of samples (inputs) to use in processing.

Example Images

Aucune image jointe à cette page.

Multi-Angle to Normal

Multi-Angle to Normal

In: Material Filters/Scan Processing

Intermediate

Description
This node constructs a Normalmap out of a set of photographs/scans made under different lighting conditions. It allows for a much more accurate
Normalmap conversion than when trying to extract Normals from one single albedo image.

It is more complicated than Multi-Angle to Albedo, as it requires you to use set, precise lighting angles for your inputs. Every sample's lighting
angle should be spaced evenly and samples need to be input in sequence. So for three samples, lighting angles should be taken at: 0, 120, 240 -
or any uniform offset of that (such as 90, 210, 330).

See Multi-Angle to Albedo for the albedo version of this node. If you want to pre-process your inputs, Multi Color Equalizer, Multi Crop
and Multi Clone Patch can be of use, since they are intended to be combined with these nodes.

Parameters
Click here to expand parameters...

Inputs

Input 1-8: Color Input

Parameters

Normal Format: DirectX, OpenGL


Switches between different Normalmap formats (inverts the green channel).
Samples Amount: 2 - 8
Sets amount of samples (inputs) to process.
Intensity: 0.0 - 1.0
Sets Normalmap intensity.
First Sample Light Angle: 0.0 - 360.0
Sets the lighting angle direction of the first input.
Next Sample Light Angle: Counterclockwise, Clockwise
Sets towards which direction the lighting in the next sample moves.

Example Images

Aucune image jointe à cette page.

Multi Clone Patch

Multi Clone Patch (Grayscale)

In: Material Filters/Scan Processing

Complex

Description

This node is the Multi-input version of Clone Patch. It links together up to eight inputs and performs the exact same Clone Patch operation on all
of them. It is mainly intended for use with multi-angle photos, which are then combined with Multi-Angle to Albedo or Multi-Angle to Normal.
See Clone Patch for more info, see Material Clone Patch for the material version.

Parameters
Click here to expand parameters...

Parameters

Input Count: 1 - 8
Sets amount of inputs that will receive the same Patch operation.
Is Normal (only for Color): False/True
Sets whether the input is a Normalmap, and whether blending should be treated as such.
Shape: Square, Disc
Sets Stamp shape. Used only as base.
Edge
Threshold: 0.0 - 1.0
Sets how far the blended area should reach. This grows in steps along shapes in the target area; it has very little effect with
uniform backgrounds.
Blur: 0.0 - 2.0
Blurs the edges of the stamp area, in case a softer transition is needed.
Smoothness: 0.0 - 2.0
Rounds off the edges of the stamp shape, making for smoother-flowing outlines.
Grid Resolution: 1 - 11
Sets quality resolution of the blending analysis. A higher value means more accurate blending.
Transformations
Source Matrix: (Transformation Matrix)
Transforms source (Scale & Rotation). Cannot be done on canvas, change through these parameters only.
Source Offset: -0.5 - 0.5
Translates source location. Cannot be done on canvas, change through these parameters only. This parameter is probably
the main one you want to change!
Target Matrix: (Transformation Matrix)
Transforms target location (Scale & Rotation). Can also be done through gizmo on canvas.
Target Offset: -0.5 - 0.5
Translates target location. Can also be done through gizmo on canvas.

Example Images

Aucune image jointe à cette page.

Multi Color Equalizer

Multi Color Equalizer

In: Material Filters/Scan Processing

Complex

Description

This is the multi-input version of Color Equalizer. It evens out color differences and removes unwanted tints at a user-selectable scale. It is mainly
intended for use with multi-angle photos, which are then combined with Multi-Angle to Albedo or Multi-Angle to Normal.

See the original Color Equalizer for more info.

Parameters
Click here to expand parameters...

Inputs

Input 1-8: Color Input


Multiple inputs to process.
Mask Input: Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Input Count: 1 - 8
Sets the number of inputs to process in parallel.
Input Tiled: False/True
Optionally preserves tiling on edges.
Radius: 0.0 - 50.0
Sets equalising radius. A larger radius will only remove large color differences. This requires tweaking for every image.
Bright/Dark Balance: 0.0 - 1.0
Bias setting to leave or remove darker tints.
Custom Color Variation: False/True
Allows you to vary the effect towards a user-specified color.
Color Variation
Only active if Custom Color Variation is enabled. Settings allow you to select a tint offset to equalise towards.
Hue: 0.0 - 360.0
Chroma: 0.0 - 1.0
Luma: 0.0 - 1.0
Mask Source: None, Image Average, Color Parameter, Input
Sets whether any masking should happen. Color Parameter enables additional settings below, Input switches to a user-defined
mask input.
Mask
Only active with Color Parameter masking. Contains additional masking parameters to determine the mask based on the image
itself. The below parameters allow you to precisely convert a tint to a binary mask on which the equalisation is applied. Note that the
Radius parameter's effects can become much less pronounced when using these settings.
Color: (Color value)
Hue Range: 0.0 - 360.0
Chroma Range: 0.0 - 1.0
Luma Range: 0.0 - 1.0
Blur: 0.0 - 2.0
Smoothness: 0.0 - 2.0

Example Images

Aucune image jointe à cette page.

Multi Crop

Multi Crop (Grayscale)

In: Material Filters/Scan Processing


Intermediate

Description

This is the multi-channel version of Crop. It crops out an area from an image and is mainly intended for use with multi-angle photos, which are
then combined with Multi-Angle to Albedo or Multi-Angle to Normal.

See the original Crop for more info.

Parameters
Click here to expand parameters...

Parameters

Input Count: 1 - 8
Sets the number of inputs to process in parallel.
Input Size: 0 - 8192
Input images' resolution and proportions. Very important for non-square images.
Background: (Color value) / (Grayscale value)
Background uniform value for areas not covered by Crop.
Transform: (Transformation Matrix)
Rotates and scales the result. The result can be modified by directly interacting with the canvas.
Offset: 0.0 - 1.0
Moves or translates the result. The result can be modified by directly interacting with the canvas.
Is Normal (only for Color version): False/True
Whether or not the input should be treated as a Normalmap.

Example Images

Aucune image jointe à cette page.

Smart Auto Tile

Smart Auto Tile

In: Material Filters/Scan Processing

Complex

Description

This node turns a non-tiling set of Basecolor, Normal and Heightmaps into a tiling version according to smart analysis of the inputs. It is similar to
Make It Tile Photo, but much more advanced as it uses information from all channels to blend things together in the smartest way (similar to what
Clone Patch does). It also has an internal Crop function to determine which area to use when tiling - make sure to read more about the Crop node
to understand this function properly.

To use this node, start by defining your Cropped area and then use the Edge settings to determine how the tiled edges are blended into the
centre. The Treshold parameters are of key importance to this! Keep in mind that big, uniform areas don't work very well with this effect; the more
details and shapes there are, the more it has to work with.

Parameters
Click here to expand parameters...

Inputs
Mask: Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Use Mask" parameter.

Parameters

Crop
Input Size: 0 - 8192
Input images' resolution and proportions. Very important for non-square images.
Transform: (Transformation Matrix)
Rotates and scales the result. The result can be modified by directly interacting with the canvas.
Offset: 0.0 - 1.0
Moves or translates the result. The result can be modified by directly interacting with the canvas.
Edge
Detect Edges: False/True
Turns on or off special edge detected blending.
Use Threshold Per Channel: False/True
Switches between a global treshold value, or one for every channel.
Threshold: 0.0 - 1.0
Threshold Base Color: 0.0 - 1.0
Threshold Normal: 0.0 - 1.0
Threshold Height: 0.0 - 1.0
Cut Offset: 0.0 - 0.5
Main control for moving the cut, both X- and Y-axes are separated.
Blur: 0.0 - 2.0
Blurs the blending transition.
Smoothness: 0.0 - 2.0
Controls jaggedness of edge analysis results.
Grid Resolution: 1 - 11
Quality resolution of edge analysis.
Use Base Color: False/True
Toggles Base Color processing (in and out).
Use Normal: False/True
Toggles Normal processing (in and out).
Use Height: False/True
Toggles Normal processing (in and out).
Use Mask: False/True
Toggles the use of the Mask map on or off, for custom stamp mask shapes.

Example Images

Aucune image jointe à cette page.

Mesh Adaptive
Simply put, Mesh adaptive are nodes intended to process Baked maps such as a Normalmap, Curvature, Ambient Occlusion, etc. The category
gets its name from the fact that baked maps are the only way for Designer to use data based on 3D meshes. Quite some of the functionality in
this category is similar to Smart Materials and Masks from Substance Painter.

There are three main categories:

Mask Generators
Black-and-white mask generators based on one or more baked maps.
Weathering
Full-material weathering effects based on baked maps.
Utilities
Extra utilities and tools to work with bakes.

Mask Generators
This category contains a selection of black-and-white mask-generating nodes. Based on baked map information, they generate masks that can
then be used to blend together materials and other effects. These nodes are similar to Smart Masks and Generators in Substance Painter.

All of these nodes require baked maps, as without baked maps there won't be much of a result.

The main intended usage is to use these mask generators with multi-channels materials. Once a mask is generated, it is used as the blend mask
for Material Blend.

Some interesting nodes in this category are:

Dripping Rust
Edge Damages
Bottom To Top
Mask Builder

Bottom To Top

Bottom To Top

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This generates a white to black transition from the bottom to the top of a model, useful for making geometry-based falloffs and selections.

Parameters
Click here to expand parameters...

Inputs

Position: Color Input


Baked Position map. Required!
Roughness: Grayscale Input
This has nothing to do with PBR roughness, but is an (optional) variation map to break up the transition. Only appears when
Roughness is set higher than 0.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Shifts the average level of the result between black or white, like a brightness adjustment.
Contrast: 0.0 - 1.0
Adjusts the contrast of the transition.
Roughness_Variation: 0.0 - 1.0
Determines amount of the Roughness map to blend in for variation. Increasing this over 0 reveals the map slot.

Example Images

Cloth Wear
Cloth Wear

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

The mask represents frazzled edges on cloth materials. It uses a cloth detail Heightmap that determines most of the look; without an appropriate
map, the effect looks very basic.

Parameters
Click here to expand parameters...

Inputs

Cloth Height: Grayscale Input


Height for the cloth pattern only. This is not the height of your (baked) object, but rather a tiling detail pattern.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.
Curvature: Grayscale Input
Baked/generated curvature to determine raised edges.

Parameters

Hard Edges Amount: 0.0 - 1.0


Wear Softness: 0.0 - 5.0
Determines how blurred out/soft the worn edges are.

Example Images

Dirt
Dirt

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represent dirts in occluded and sunken edges and corners, based on baked AO and curvature.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used for internal effects and masking. Required!
Ambient Occlusion: Grayscale Input
Baked map used for internal effects and masking. Required!
Grunge input: Grayscale Input
Custom grunge map input, optional, enabled by parameter.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.
World Space Normal: Color Input
Only used for Triplanar.
Position: Color Input
Only used for Triplanar.

Parameters

Dirt Level: 0.0 - 1.0


Main control for amount of dirt.
Dirt Contrast: 0.0 - 1.0
Controls main contrast for the dirt in the mask.
Grunge Amount: 0.0 - 1.0
Sets how grungy the dirt is. Set to 0 for perfectly smooth dirt.
Edges Masking: 0.0 - 1.0
Amount of dirt to remove from raised edges (based on the curvature map).
Use Custom Grunge: False/True
Enables use of custom grunge map input instead of built-in Grunge.
Grunge Scale: 1 - 16
Sets tiling scale of Grunge detail.
Use Triplanar: False/True
Use Triplanar projection for Grunge mapping, removes seams.
Triplanar Blending Contrast: 0.001 - 1.0
Sets contrast of the Triplanar projection.

Example Images
Dripping Rust

Dripping Rust

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents rust flakes and specks, with leaks running down.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked or generated map to help with rust placement.
Ambient Occlusion: Grayscale Input
Baked or generated map to help with rust placement.
Position: Grayscale Input
Baked or generated map for drip directions.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Rust Spreading: 0.0 - 1.0


Main control for the amount of rust.
Rust Contrast: 0.0 - 1.0
Sets the amount of contrast in generated rust specks (does not affect drips).
Spreading Smoothness: 0.0 - 1.0
Amount of blurring/smearing effect to apply to the rust specks.
Drips Intensity: 0.0 - 1.0
Sets strength and length of drips from flecks.
Drips Smoothness: 0.0 - 1.0
Amount of blurring and smoothing to apply to drips.
Drips Samples Amount: 0 - 32
Sets quality level (steps) for the drips effect. Has a slight effect on speed.
Example Images

Dust

Dust

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents dust accumulated in occluded, lowered areas, as well as only in areas that face upwards. Requires proper baked AO and
World Space Normals to work.

Parameters
Click here to expand parameters...

Inputs

Ambient Occlusion: Grayscale Input


Baked map used for dust placement. Required!
World Space Normal: Color Input
Baked map used for dust placement. Required!
Noise: Grayscale Input
Custom dust map (optional), only appears when Override Noise is set to True.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets total amount of dust.
Contrast: 0.0 - 1.0
Adjusts contrast of the dust.
Occlusion Amount: 0.0 - 1.0
Sets influence of AO; more dust will appear in occluded areas.
Noise Opacity: 0.0 - 1.0
Sets amount of noise that is visible in the dusty areas.
Override Noise: False/True
Set to use custom dust map input.
Example Images

Edge Blur

Edge Blur

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask highlights edges based on a baked curvature map. It is one of the more simple Mask Generators.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used to base the effect on.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets the amount of edge highlighting.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Blur Radius: 0.0 - 8.0
Sets the amount of blurring on the highlighted edges.

Example Images
Edge Damages

Edge Damages

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents damage done to raised, convex edges based on curvature and baked AO.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used for effect placement. Required!
Ambient Occlusion: Grayscale Input
Baked map used for effect placement. Required!
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Amount of edge damage to apply.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Damages Intensity: 0.0 - 1.0
Shifts between a chipped, consistent look and a chaotic, scratched, heavily damaged look.

Example Images
Edge Dirt

Edge Dirt

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents a dirt effect that accumulates around edges, based solely on a curvature map.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used for effect placement. Required!
Variation Mask: Grayscale Input
Mask slot used for masking the node's effects, only used when override parameter is enabled.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets the amount of dirt.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Variation: 0.0 - 1.0
Blends in how much large-scale masking/breakup should happen.
Override variation mask: False/True

Example Images
Edge Notch

Edge Notch

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents a simple mask for raised edges, broken up by a high-frequency noise. See Edge Dirt or Edge Damages for more options.

Inputs

Curvature: Grayscale Input


Baked map used for highlighting edges. Required!
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets the level of the Edge Notch effect.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.

Example Images
Edge Select

Edge Select

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask is the best way to select any kind of edge based on the curvature. Convex, Concave at any level or contrast can be isolated, providing
an excellent shortcut to avoid manually doing this through a Levels node.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used for highlighting edges. Required!
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets the total amount of edge highlighting for both Convex and Concave.
Contrast: 0.0 - 1.0
Adjusts the contrast of the highlighting for both Convex and Concave.
Convex
Convex Edges Width: 0.0 - 1.0
Sets width of the highlighting for Convex edges. Keep in mind that increasing Softness slightly can lead to thinner edges.
Convex Softness: 0.0 - 1.0
Set softness of the transition for Convex edges.
Convex Intensity: 0.0 - 1.0
Sets the maximum intensity of the Edge highlighting for Convex edges. Set to 0 for no highlighting.
Concave
Concave Edges Width: 0.0 - 1.0
Set width of the highlighting for Concave edges. Keep in mind that increasing Softness slightly can lead to thinner edges.
Concave Softness: 0.0 - 1.0
Set softness of the transition for Concave edges.
Concave Intensity: 0.0 - 1.0
Set the maximum intensity of the Edge highlighting for Concave edges. Set to 0 for no highlighting.

Example Images

Edge Speckle

Edge Speckle

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents edges with a slight speckle added to break them up. Also see Edge Dirt.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used for Edge highlighting. Required!
Variation Mask: Grayscale Input
Optional mask slot used for masking the node's effects. Enable with "override variation mask".
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets the total amount of edge highlighting.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Edge selection: 0.0 - 1.0
Sets the influence of convex edges.
Variation: 0.0 - 1.0
Sets extent to which the variation mask breaks up the effect.
Override variation mask: False/True
Overrides built-in mask with custom input slot.

Example Images

Edge Wear

Edge Wear

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This node represents wear on object edges. It has quite a few parameters, but is not the easiest to use: we recommend that you play around and
get a feel for things. The node is quite powerful, although no custom override mask can be done.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used for internal effects and masking
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets total spread of the effect.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Threshold: 0.0 - 1.0
Similar to Level, sets total spread of the effect.
Edges Width: 0.0 - 1.0
Sets the fullness of the highlighting effect. Reduce to make them sparser.
Disorder: 0.0 - 1.0
Sets the amount of noise to blend in to break up the smoothness.
Example Images

Fiber Glass Edge Wear

Fiber Glass Edge Wear

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

Represents a mask specifically intended for a fibreglass-type of wear, could perhaps be used for cloth. Due to the very tiled, repetitive nature of
the fibres, Triplanar blending can optionally be enabled.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used for edge highlighting. Required!
Ambient Occlusion: Grayscale Input
Baked map used for masking occluded areas. Not required, but definitely recommended.
Grunge Input: Grayscale Input
Optional custom slot to override fiber pattern.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.
World Space Normal: Color Input
Only used for Triplanar.
Position: Color Input
Only used for Triplanar.

Parameters

Wear Level: 0.0 - 1.0


Like a Histogram Scan, progressively reveals the wear.
Wear Contrast: 0.0 - 1.0
Sets total effect contrast.
Edges Smoothness: 0.0 - 16.0
Sets bleed out/blurring from highlighted edges.
Grunge Amount: 0.0 - 1.0
Sets how much of the fibre effect to blend in between the edges. Tweak this together with Wear Level to get maximum control.
Ambient Occlusion Masking: 0.0 - 1.0
Sets amount of influence the AO has on hiding the effect.
Curvature Weight: 0.0 - 1.0
Sets amount of influence Convex edges from the Curvature have.
Use Custom Grunge: False/True
Overrides built-in fibres with custom map.
Use Triplanar: False/True
Enables Tri Planar to hide seams.
Triplanar Blending Contrast: 0.0 - 1.0
Controls contrast of the Triplanar effect.

Example Images

Grease

Grease

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask is specifically intended for character faces and other specific areas. Generates a skin-grease type of mask on areas of low thickness.

Parameters
Click here to expand parameters...

Inputs

Thickness: Grayscale Input


Baked Thickness map on which the entire effect is based. Required!
Noise: Grayscale Input
Optional Noise map to override Grease grunge with.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.
Parameters

Level: 0.0 - 1.0


Sets the total amount of effect to appear.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Thickness Threshold: 0.0 - 1.0
Sets a minimum thickness at which the effect should appear. Equally important as Level; tweak this to fit your Thickness map.
Override Noise: False/True
Set to override internal grease grunge map with custom input slot.

Example Images

Ground Dirt

Ground Dirt

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents dirt that has accumulated from the ground up, the opposite of Bottom To Top or Dust. It has no custom map override.

Inputs

Position: Grayscale Input


Baked position map to base effect on. Required!
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets the total appearance level of the dirt.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Dirt Height: 0.0 - 1.0
Sets up to what height (proportionally) the dirt should appear.
Example Images

Leaks

Leaks

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This node represents leaking streaks of dirt and grime coming from sharp edges. As streaks are generated with baked Position, they always run
downwards.

Make sure to try changing the variation mask: because it drives the placement of streaks, it can have a much larger influence than with other
Mask Generators.

Parameters
Click here to expand parameters...

Inputs

Position: Grayscale Input


Baked position map, used for streak directions. Required!
Curvature: Grayscale Input
Baked map used for streak placement. Required!
Ambient Occlusion: Grayscale Input
Baked map used for internal effects and masking. Recommended, but you could use flat white instead.
Normal World Space: Color Input
Baked World Space Normalmap, used for streak direction. Required!
Variation Mask: Grayscale Input
Optional variation mask, enable by setting the override to True.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters
Level: 0.0 - 1.0
Total level of the result. Progressively reveals the effect, affects length as well. Should be set fairly high to get long drips.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Variation: 0.0 - 1.0
Sets the amount of large-scale variation used to mask the streaks. Setting this value to 0 leads to full uniform streaks, so avoid this.
Lenght: 0.0 - 8.0
Length of the streak drips. Setting this value too high at a small scale will lead to visible stepping. Play around with the Level too.
Occlude: X, Y, Z, None
Sets what direction the AO should affect.
Override variation mask: False/True
Enables overriding of the variation mask with a custom input slot. Using sparser or denser masks can be interesting and is a good
way to control the drips.

Example Images

Leather Wear

Leather Wear

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents wear with a leather pattern, with more wear on edges based on Curvature. It is similar to Fiber Glass Edge Wear in
functionality and has mostly the same parameters.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used for edge placement. Required!
Ambient Occlusion: Grayscale Input
Baked map used occluding certain areas. Recommended, but not required.
Grunge Input: Grayscale Input
Optional Grunge map input slot that can be toggled through the "Use Custom Grunge" parameter.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Wear Level: 0.0 - 1.0


Sets global wear level, gradually revealing.
Wear Contrast: 0.0 - 1.0
Sets contrast of the effect.
Grunge Amount: 0.0 - 1.0
Sets the amount of grunge (default leather pattern) to blend in between edges.
Ambient Occlusion Masking: 0.0 - 1.0
Sets extent to which the AO masks out the wear effects.
Curvature Weight: 0.0 - 1.0
Sets extent to which the curvature's edges affect the final result. Even if set to 0, you still need a curvature map.
Use Custom Grunge: False/True
Enables overriding of the built-in default leather pattern. Use a custom input slot instead.

Example Images

Light

Light

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask is a bit different from other Generators: it purely does fake lighting, based on the World Space Normalmap, returning a black and white
"lightmap" mask.

Parameters

Horizontal Angle: 0.0 - 1.0


Sets the horizontal angle of the fake light.
Vertical Angle: 0.0 - 1.0
Sets the vertical angle of the fake light.
Highlight Glossiness: 0.0 - 0.999
Sets the falloff spread of the highlighted area.
Highlight Level: 0.0 - 1.0
Sets the brightness level of the highlighted area.

Example Images

Mask Builder

Mask Builder

In: Mesh Adaptive/Mask Generators

Complex

Description

Generates a black and white mask based on baked maps and user settings. This is pretty much the Designer version of Painter's Mask Builder.

It is a complicated tool intended as an all-encompassing mask builder, based on baked maps, user parameters and grunge patterns and maps. It
is mainly intended as a very advanced, full-control node to blend in crease dirt and edge wear. This node is powerful enough to mimic every other
Mask Generator.

No bakes are explicitely required, but the more you supply, the more this node is capable of doing.

Parameters
Click here to expand parameters...

Inputs

Ambient Occlusion: Grayscale Input


Curvature: Grayscale Input
World Space Normal: Color Input
Grunge Input: Grayscale Input
Grunge Input 2: Grayscale Input
Scatter Input: Grayscale Input
Custom scatter stamp, required to make use of the Scatter parameters.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.
Position: Color Input
Used for Triplanar and Top-Bottom effects.

Parameters
Level: 0.0 - 1.0
Sets the total level of the effect, gradually revealing.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Invert: False/True
Inverts the result. Useful to achieve the opposite of the mask you are building.
Use Triplanar: False/True
Enables Triplanar projection, avoiding any seams with grunge maps.
Triplanar Blending Contrast: 0.0 - 1.0
Sets the contrast for the Triplanar Blending.
Grunge: 0.0 - 1.0
Sets amount of Grunge to blend in globally.
Grunge
Scale: 0 - 10
Sets the scale of the global Grunge.
Use Custom Grunge: False/True
Enables custom Grunge input.
Secondary Custom Grunge: 0.0 - 1.0
Enables a second custom Grunge input.
Invert: False/True
Inverts the Grunge map.
AO: -1.0 - 1.0
Sets extent to which the effect should appear in occluded AO areas. Can be tweaked with the below group.
AO
Range: 0.0 - 1.0
Sets the treshold or range for the appearance of dirt.
Contrast: 0.0 - 1.0
Adjusts the contrast of the AO effect.
Noisiness: 0.0 - 1.0
Sets amount of noise/grunge to blend into the AO effect.
Noise Scale: 0 - 10
Sets the scale of the AO noise/grunge.
Noise Type: Spots, Cloud, Moisture, White Noise
Switches between 4 different types of AO noise.
Invert: False/True
Inverts the interpretation of the AO map: noise will appear in bright AO areas, not dark ones.
Curvature: 0.0 - 1.0
Sets how much effect should appear on Curvature edges; can be both Convex and Concave. Tweak this with the group below.
Curvature
Convex Range: -1.0 - 1.0
Sets how much effect to appear on Convex (bright) curvature edges.
Convex Contrast: 0.0 - 1.0
Sets the contrast of the Convex effect.
Convex Invert: False/True
Inverts the interpretation of the Convex edges.
Concave Range: -1.0 - 1.0
Sets how much effect to appear on Concave (dark) curvature edges.
Concave Contrast: 0.0 - 1.0
Sets the contrast of the Concave Range.
Concave Invert: False/True
Inverts the interpretation of the concave edges.
Smoothness: 0.0 - 16.0
Amount of blurring and smoothing to apply to Curvature edges.
Level Boost: 0.0 - 1.0
Additional booster if the effect is not visible enough.
Noisiness: 0.0 - 1.0
Sets the influence of the noise/grunge on the Curvature effect.
Noise Scale: 0 - 10
Sets the scale of the noise.
Noise Type: Spots, Cloud, Moisture, White Noise
Choose between 4 different Noise types.
Top/Down Gradient: -1.0 - 1.0
Blends over or masks with a top-to-bottom gradient based on the Position map. Positive values make things brighter, negative
values mask away existing effects.
Gradient
Range: 0.0 - 1.0
Sets the position of the gradient.
Contrast: 0.0 - 1.0
Adjusts the contrast of the gradient.
Invert: False/True
Inverts the gradient. Effectively swaps bottom and top.
World Space Normal: 0.0 - 1.0
Similar to Top/Down Gradient, but with the position map and in six directions, akin to fake lighting. Positive values brighten, negative
values darken.
World Space Normal
Top Intensity: -1.0 - 1.0
Bottom Intensity: -1.0 - 1.0
Front Intensity: -1.0 - 1.0
Back Intensity: -1.0 - 1.0
Right Intensity: -1.0 - 1.0
Left Intensity: -1.0 - 1.0
Scratches: -1.0 - 1.0
Blends scratches into the white areas.
Scratches
Amount: 0 - 4096
Sets total amount of scratches.
Scale: 0.0 - 1.0
Sets the scale of individual scratches.
Scatter: -1.0 - 1.0
Scatters a custom stamp within white areas.
Scatter
Scale: 0 - 50
Total scale of the effect.
Density: 0.0 - 1.0
Scattering density control, number that should appear.
Size: 0.0 - 4.0
Size of the scattered stamp.
Size Variation: 0.0 - 1.0
Variation within stamp size.
Opacity Variation: 0.0 - 1.0
Variation within stamp opacity.

Example Images

Aucune image jointe à cette page.

Metal Edge Wear

Metal Edge Wear

In: Mesh Adaptive/Mask Generators

Complex

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents edge wear on a metal object, with scratches and chips appearing on Convex raised edges, potentially masked out by
baked AO dark areas.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used for internal effects and masking.
Ambient Occlusion: Grayscale Input
Baked map used for internal effects and masking.
Grunge Input: Grayscale Input
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.
World Space Normal: Color Input
Position: Color Input

Parameters

Wear Level: 0.0 - 1.0


Sets the total amount of wear, gradually reveals.
Wear Contrast: 0.0 - 1.0
Sets the contrast of the final result.
Edges Smoothness: 0.0 - 16.0
Sets smoothness of the falloff from the edges from the Curvature.
Grunge Amount: 0.0 - 1.0
Sets amount of grunge to blend in between edges.
Grunge Scale: 1 - 16
Sets the scale of the Grunge.
Ambient Occlusion Masking: 0.0 - 1.0
Sets amount of effect the AO has on the final effect, dark areas being masked out.
Curvature Weight: 0.0 - 1.0
Sets amount of effect the Convex edges from the Curvature have on the final effect.
Use Custom Grunge: False/True
Enables a custom Grunge map input slot.
Use Triplanar: False/True
Enable Tri Planar projection to hide seams.
Triplanar Blending Contrast: 0.0 - 1.0
Sets blending contrast for the Triplanar Projection.

Example Images

Paint Wear

Paint Wear

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents paint chipping and wearing away at edges.

Parameters
Click here to expand parameters...
Inputs

Ambient Occlusion: Grayscale Input


Baked map used for internal effects and masking.
Curvature: Grayscale Input
Baked map used for internal effects and masking.
Variation Mask: Grayscale Input
Mask slot used for masking the node's effects.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets the total amount of paint wear, gradually revealing.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Occlusion: 0.0 - 1.0
Sets amount of effect the baked AO has on preventing wear in darker areas.
Radius: 0.0 - 2.0
Sets how far the chipping effect spreads from Convex edges.
Variation: 0.0 - 1.0
Set amount of variation (grunge) to blend into the effect.
Override variation mask: False/True
Enables custom variation (grunge) map input slot.

Example Images

Selective Dirt

Selective Dirt

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents a simple dirt effect on Convex edges.


Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked map used for internal effects and masking.
Variation Mask: Grayscale Input
Optional variation map, can be enabled through parameters.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets the total level of the effect, gradually revealing.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Variation: 0.0 - 1.0
Sets amount of variation/grunge to blend into the effect.
Override variation mask: False/True
Enables overriding the variation with a custom input slot.

Example Images

Sun Bleach

Sun Bleach

In: Mesh Adaptive/Mask Generators

Simple

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask is similar to Light, but has support for AO too, leading to a mask that represents light bleaching and fading on top of an effect.

Inputs

Normal World Space: Color Input


Ambient Occlusion: Grayscale Input
Baked map used for internal effects and masking.
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets the total amount of bleaching, moves the effect further down.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Occlusion: 0.0 - 1.0
Sets the influence of the AO on the final result.

Example Images

Surface Brush

Surface Brush

In: Mesh Adaptive/Mask Generators

Intermediate

Description

Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.

This mask represents an interesting effect of metal-brushing on an object surface, occluded by object geometry and AO.

Parameters
Click here to expand parameters...

Inputs

World Space Normal: Color Input


Curvature: Grayscale Input
Baked map used for internal effects and masking.
Ambient Occlusion: Grayscale Input
Baked map used for internal effects and masking.
Position: Grayscale Input
Mask (optional): Grayscale Input
Mask slot used for masking the node's effects.

Parameters

Level: 0.0 - 1.0


Sets global effect level, gradually revealing.
Contrast: 0.0 - 1.0
Adjusts the contrast of the result.
Scratches Lenght: 0.0 - 8.0
Sets the length of scratches. Smaller values are more like dots, higher values are long streaks.
Occlude Axis: X, Y, Z, none
Axis of the object that should receive scratches. Does not alter direction of the scratches.
Occlude Axis Intensity: 0.0 - 1.0
Strength of the axis occlusion effect.
Occlusion: 0.0 - 1.0
Strength of the AO on occluding scratches.
Sharpen Intensity: 0.0 - 1.0
Set amount of post-sharpening to apply to the scratches.

Example Images

Weathering
Weathering nodes take Mask Generators ones step further: they do a full-material weathering effect based on parameters and baked maps. The
concept is very similar to Smart Materials in Substance Painter.

You need to have one or more baked maps to get a full result out of these nodes.

Keep in mind that because these nodes offer such all-encompassing, complete effects, their usage is limited to only some cases. However, they
can also be a good base for learning how such complex effects are built. Drag the nodes from the library into the Explorer, or right-click and
choose "Open Reference" on a node placed in the graph.
Cracks Weathering

Cracks Weathering

In: Mesh Adaptive/Weathering

Complex

Description
This is a full-material effect that works on multiple channels at once. It adds a random crack pattern, with control over spread and depth.

Make sure to properly understand the Link Creation Modes when working with full materials.

Parameters
Click here to expand parameters...

Inputs

Curvature: Grayscale Input


Baked or generated map used for internal effects and masking.
Height : Grayscale Input
Baked or generated map used for internal effects and masking.
Mask : Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Mask" parameter.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
Advanced
Normal Format: DirectX, OpenGL
Switches between different Normalmap formats (inverts the green channel).
Mask: False/True
Toggles the use of the Mask map on or off.
Effect
Cracks Propagation: 0.0 - 1.0
How far the cracks should spread. This is the main control for this effect.
Cracks Depth: 0.0 - 1.0
Depth of the crack effect. This mostly affects height and slightly affects visula thickness.
Blending
Controls how strongly the effect blends into each resulting channel.

Example Images

Fabric Weathering

Fabric Weathering
In: Mesh Adaptive/Weathering

Complex

Description

This is a full-material effect that works on multiple channels at once. It adds a random fabric wear effect, with control for age and dirtiness.
This effect does not work very well unless you have proper baked AO and World Space Normalmaps plugged in, since it requires these to
adequately calculate and generate everything.

Make sure to fully understand the Link Creation Modes when working with full materials.

Parameters
Click here to expand parameters...

Inputs

Ambient Occlusion: Grayscale Input


Baked map used for internal effects and masking.
Normal Wold Space: Color Input
Mask : Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Mask" parameter.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
Advanced
Normal Format: DirectX, OpenGL
Switches between different Normalmap formats (inverts the green channel).
Mask: False/True
Toggles the use of the Mask map on or off.
Effect
Dust: 0.0 - 1.0
Blends in a darker dust effect, based on areas facing up in the World Space Normalmap.
Dirtiness: 0.0 - 1.0
Blends in a global dirt/smudge effect, based mostly on areas occluded (dark) in the AO.
Edges Wearing: 0.0 - 1.0
Adds a sharpening/intensifying effect to edges, based on Material Normal.
Used: 0.0 - 1.0
Blends in very dark accumulated dirt in creases, based on AO. Maximum and Minimum values tend to be very extreme, use
these with care.
Age: 0.0 - 1.0
Blends over a global tiling wear pattern. Treshold control below controls AO influence. Maximum and Minimum values tend
to be very extreme.
Age Threshlod: 0.0 - 1.0
Sets the extent to which the AO affects the Age parameter.
Age Creases: 0.0 - 1.0
Controls the blending of subtle additional creases in the Age effect.
Sharp Edges Scratches Scale: 1.0 - 32.0
Sets the scale of small scratches, which mainly scrape away Used and Age effect.
Sharp Edges Scratches Warp Intensity: 0.0 - 1.0
Sets the intensity of the warp for the above small scratches.
Old Fabric Desaturation: 0.0 - 1.0
Controls the desaturation of the Age effect.
Old Fabric Brightness: 0.0 - 1.0
Controls the brightness of the Age effect. This is a very important parameter to change to get the look you like, but results
can be extreme: use with subte changes.
Blending
Diffuse Intensity: 0.0 - 1.0
Blending strength of the Diffuse.
Base Color Intensity: 0.0 - 1.0
Blending strength of the Base Color.
Normal Intensity: 0.0 - 1.0
Blending strength of the Normal.
Specular Intensity: 0.0 - 1.0
Blending strength of the Specular.
Glossiness Intensity: 0.0 - 1.0
Blending strength of the Glossiness.
Roughness Intensity: 0.0 - 1.0
Blending strength of the Roughness.
Ambient Occlusion Intensity: 0.0 - 1.0
Blending strength of the Ambient Occlusion.
Height Intensity: 0.0 - 1.0
Blending strength of the Height.

Example Images

Leather Weathering

Leather Weathering

In: Mesh Adaptive/Weathering

Complex

Description

This is a full-material effect that works on multiple channels at once. It adds a random leather wear effect, with control for age and dirtiness. It is
similar to Fabric Weathering, but tuned specifically for leather.
This effect does not work very well unless you have proper baked AO and World Space Normalmaps plugged in, as it requires these to
adequately calculate and generate everything.

Make sure to fully understand the Link Creation Modes when working with full materials.

Parameters
Click here to expand parameters...

Inputs

Ambient Occlusion: Grayscale Input


Baked map used for internal effects and masking.
Normal Wold Space: Color Input
Mask : Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Mask" parameter.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
Advanced
Normal Format: DirectX, OpenGL
Switches between different Normalmap formats (inverts the green channel).
Mask: False/True
Toggles the use of the Mask map on or off.
Effect
Dust: 0.0 - 1.0
Blends in a darker dust effect, based on areas facing up in the World Space Normalmap.
Dirtiness: 0.0 - 1.0
Blends in a global dirt/smudge effect, based mostly on areas occluded (dark) in the AO.
Edges Wearing: 0.0 - 1.0
Adds a sharpening/intensifying effect to edges, based on Material Normal.
Used: 0.0 - 1.0
Blends in a global worn leather look.
Age: 0.0 - 1.0
Blends in a worn leather look in creases based on AO. Placement is influenced a lot by Age Treshold.
Age Threshlod: 0.0 - 1.0
Sets the appearance treshold for the Age effect.
Cracks Scale: 1.0 - 16.0
Sets the depth of the worn leather from Used and Age effect.
Cracks Warp Intensity: 0.0 - 1.0
Sets the intensity of the worn leather from Used and Age effect.
Sharp Edges Scratches Scale: 1.0 - 32.0
Sharp Edges Scratches Warp Intensity: 0.0 - 1.0
Used Leather Desaturation: 0.0 - 1.0
Sets the saturation of the worn leather look from Age and Used effects.
Used Leather Brightness: 0.0 - 1.0
Sets the brightness of the worn leather look from Age and Used effects.
Blending
Diffuse Intensity: 0.0 - 1.0
Blending strength of the Diffuse.
Base Color Intensity: 0.0 - 1.0
Blending strength of the Base Color.
Normal Intensity: 0.0 - 1.0
Blending strength of the Normal.
Specular Intensity: 0.0 - 1.0
Blending strength of the Specular.
Glossiness Intensity: 0.0 - 1.0
Blending strength of the Glossiness.
Roughness Intensity: 0.0 - 1.0
Blending strength of the Roughness.
Ambient Occlusion Intensity: 0.0 - 1.0
Blending strength of the Ambient Occlusion.
Height Intensity: 0.0 - 1.0
Blending strength of the Height.

Example Images

Metal Weathering
Metal Weathering

In: Mesh Adaptive/Weathering

Complex

Description

Parameters
Click here to expand parameters...

Inputs

Normal WS: Color Input


Baked World Space Normalmap used for internal effects and masking.
Ambient Occlusion: Grayscale Input
Baked map used for internal effects and masking.
Mask : Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Mask" parameter.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
Advanced
Normal Format: Direct X, Open GL
Switches between different Normalmap formats (inverts the green channel).
Mask: False/True
Toggles the use of the Mask map on or off.
Effect
Dust: 0.0 - 1.0
Dirtiness: 0.0 - 1.0
Edges Wearing: 0.0 - 1.0
Paint Peeling: 0.0 - 1.0
Rust: 0.0 - 1.0
Rust Peeling: 0.0 - 1.0
Rust Verdigris: Rust, Verdigris
Paint Cracks Scale: 1.0 - 16.0
Paint Cracks Warp Intensity: 0.0 - 1.0
Sharp Edges Scratches Scale: 1.0 - 32.0
Sharp Edges Scratches Warp Intensity: 0.0 - 1.0
Raw Metal Color: (Color value)
Raw Metal Specular Color: (Color value)
Raw Metal Glossiness Value: (Grayscale value)
Raw Metal Roughness Value: (Grayscale value)
Blending
Diffuse Intensity: 0.0 - 1.0
Blending strength of the Diffuse.
Base Color Intensity: 0.0 - 1.0
Blending strength of the Base Color.
Normal Intensity: 0.0 - 64.0
Blending strength of the Normal.
Specular Intensity: 0.0 - 1.0
Blending strength of the Specular.
Glossiness Intensity: 0.0 - 1.0
Blending strength of the Glossiness.
Roughness Intensity: 0.0 - 1.0
Blending strength of the Roughness.
Metallic Intensity: 0.0 - 1.0
Blending strength of the Metallic.
Ambient Occlusion Intensity: 0.0 - 1.0
Blending strength of the Ambient Occlusion.
Height Intensity: 0.0 - 1.0
Blending strength of the Height.

Example Images

Aucune image jointe à cette page.

Moss Weathering

Moss Weathering

In: Mesh Adaptive/Weathering

Complex

Description

This is a full-material effect that works on multiple channels at once. It generates an overgrown moss effect, with a single control for Propagation.

This effect works best with a baked World Space Position map and an additional Heightmap. While this is not an exact requirement, it lends the
effect more credible placement.

Make sure to properly understand the Link Creation Modes when working with full materials.

Parameters
Click here to expand parameters...

Inputs

Position: Color Input


Baked World Space Position.
Height : Grayscale Input
Additional Heightmap input.
Mask : Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Mask" parameter.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
Advanced
Normal Format: DirectX, OpenGL
Switches between different Normalmap formats (inverts the green channel).
Mask: False/True
Toggles the use of the Mask map on or off.
Effect
Moss Propagation: 0.0 - 1.0
Sets the spread of the moss. Grows in steps from slight coverage to heavy, thick, dark moss.
Blending
Diffuse Intensity: 0.0 - 1.0
Blending strength of the Diffuse.
Base Color Intensity: 0.0 - 1.0
Blending strength of the Base Color.
Normal Intensity: 0.0 - 1.0
Blending strength of the Normal.
Specular Intensity: 0.0 - 1.0
Blending strength of the Specular.
Glossiness Intensity: 0.0 - 1.0
Blending strength of the Glossiness.
Roughness Intensity: 0.0 - 1.0
Blending strength of the Roughness.
Ambient Occlusion Intensity: 0.0 - 1.0
Blending strength of the Ambient Occlusion.
Height Intensity: 0.0 - 1.0
Blending strength of the Height.

Example Images

Rock Weathering

Rock Weathering

In: Mesh Adaptive/Weathering

Complex

Description

Parameters
Click here to expand parameters...

Inputs

Ambient Occlusion: Grayscale Input


Baked map used for internal effects and masking.
Curvature: Grayscale Input
Baked map used for internal effects and masking.
Normal WS: Color Input
Baked World Space Normalmap used for internal effects and masking.
Mask : Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Mask" parameter.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
Advanced
Normal Format: DirectX, OpenGL
Switches between different Normalmap formats (inverts the green channel).
Mask: False/True
Toggles the use of the Mask map on or off.
Effect
Dust: 0.0 - 1.0
Dirtiness: 0.0 - 1.0
Edges Wearing: 0.0 - 1.0
Used Rock: 0.0 - 1.0
Cracks Scale: 1.0 - 60.0
Cracks Intensity: 0.0 - 1.0
Age: 0.0 - 1.0
Age Threshlod: 0.0 - 1.0
Sharp Edges Scratches Scale: 1.0 - 32.0
Sharp Edges Scratches Warp Intensity: 0.0 - 1.0
Used Rock Desaturation: 0.0 - 1.0
Used Rock Brightness: 0.0 - 1.0
Blending
Diffuse Intensity: 0.0 - 1.0
Blending strength of the Diffuse.
Base Color Intensity: 0.0 - 1.0
Blending strength of the Base Color.
Normal Intensity: 0.0 - 64.0
Blending strength of the Normal.
Specular Intensity: 0.0 - 1.0
Blending strength of the Specular.
Glossiness Intensity: 0.0 - 1.0
Blending strength of the Glossiness.
Roughness Intensity: 0.0 - 1.0
Blending strength of the Roughness.
Ambient Occlusion Intensity: 0.0 - 1.0
Blending strength of the Ambient Occlusion.
Height Intensity: 0.0 - 1.0
Blending strength of the Height.

Example Images

Rust Weathering

Rust Weathering

In: Mesh Adaptive/Weathering

Complex
Description

Parameters
Click here to expand parameters...

Inputs

Ambient Occlusion: Grayscale Input


Baked map used for internal effects and masking.
Curvature: Grayscale Input
Baked map used for internal effects and masking.
Position: Color Input
Mask : Grayscale Input
Mask slot used for masking the node's effects. Can be toggled with the "Mask" parameter.

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness.
Advanced
Normal Format: DirectX, OpenGL
Switches between different Normalmap formats (inverts the green channel).
Mask: False/True
Toggles the use of the Mask map on or off.
Effect
Rust Spreading: 0.0 - 1.0
Spreading Smoothness: 0.0 - 1.0
Vernish Damage Scale: 0.0 - 1.0
Drips Intensity: 0.0 - 1.0
Drips Samples Amount: 0 - 32
Drips Smoothness: 0.0 - 1.0
Blending
Diffuse Intensity: 0.0 - 1.0
Blending strength of the Diffuse.
Base Color Intensity: 0.0 - 1.0
Blending strength of the Base Color.
Normal Intensity: 0.0 - 32.0
Blending strength of the Normal.
Specular Intensity: 0.0 - 1.0
Blending strength of the Specular.
Glossiness Intensity: 0.0 - 1.0
Blending strength of the Glossiness.
Roughness Intensity: 0.0 - 1.0
Blending strength of the Roughness.
Metallic Intensity: 0.0 - 1.0
Blending strength of the Metallic.
Ambient Occlusion Intensity: 0.0 - 1.0
Blending strength of the Ambient Occlusion.
Height Intensity: 0.0 - 1.0
Blending strength of the Height.

Example Images
Utilities (Mesh Adaptive)
These nodes are more abstract tools to help you work with mesh adaptive nodes. In some cases, their functionality closely ties into Material
Filters as well.

There are only a few nodes in this category, so make sure to check them all out.
3D Planar Projection

3D Planar Projection (Color)

In: Mesh Adaptive/Utilities

Complex

Description

Performs a planar projection based on baked mesh data (Position and World Normal Maps). Allows you to project and place decals across
seams, independent of original UV-mapping.

Parameters

Inputs

Position Map: Color Input


Baked Position Map
World Space Normal: Color Input
Baked World Space Normal Map
Projected Texture: Color Input
Input texture to project onto target.

Parameters

Positioning
Project Input: UV Position, World Space Position
Choose whether the projection position is set in 2D/UV or in 3D/World space.
Target UV Position:
Only with UV Position Input, best used to pick a point in the 2D view on the Position map.
Target Position: (Color value)
Only with World Space Position Input, lets you define an exact 3D coordinate.
Target Normal: (Color value)
Rotation: 0.0 - 1.0
Rotates the projected texture along it' normal axis.
Scale: 0.0 - 1.0
Set the global scale for the projected texture.
Size: 0.0 - 2.0
Perform non-uniform scaling on the projected texture.
Masking
Maximum Depth: 0.0 - 1.0
Controls how deep the projected texture will appear, when it will cut-off.
Depth Fade: 0.0 - 1.0
Set the transition for the cut-off depth to be sudden or faded.
Normal Threshold: -1.0 - 1.0
Set the treshold for surfaces not exactly aligned with the projection normal.
Normal Fade: 0.0 - 1.0
Set the transition for surfaces not aligned to sudden or fade.

Example Images

Material Mesh Data Blender

Material Mesh Data Blender

In: Mesh Adaptive/Utilities

Complex

Description

This node is intended to make it a lot easier to add detail based on baked data. It comes with a lot of sliders to modify an input full material, based
on any and all baked maps as input. Do experiment with it, as there are a lot of options.

It is useful for doing things like adding edge highlighting based on curvature or other maps, blending in some AO with the Diffuse/Basecolor,
adding Specular Occlusion based on Curvature and/or AO, etc.

Parameters
Click here to expand parameters...

Inputs

Full Material Input (Group "Material"): Full set of material maps.


These are modified by this node and then returned again as output.
Ambient Occlusion: Grayscale Input
Baked map used for internal effects and masking.
Curvature: Grayscale Input
Baked map used for internal effects and masking.
Height: Grayscale Input
Normal: Color Input
Vertex Color: Color Input
World Space Normal: Color Input

Parameters

Channels
Toggle material channels on and off in this group, for example when using Specular/Glossiness maps instead of Metallic
/Roughness. Affects the availability of the below parameters.
Baked Maps
Whether or not to use the listed baked maps for calculations. Affects the availability of the below parameters.
Diffuse AO: 0.0 - 1.0
Amount of Ambient Occlusion to blend into the Diffuse.
Diffuse Sharp Edges: 0.0 - 1.0
Amount of the curvature map to blend into the Diffuse.
Diffuse Color From Vertex Color: 0.0 - 1.0
Amount of the Vertex Color bake to blend into the Diffuse.
Diffuse Pre Lighting: 0.0 - 1.0
Amount of (fake) pre-lighting, based on the World Space Normals.
Diffuse Cartoon Lighting Balance: 0.0 - 1.0
Shifts between realistic and cartoonish lighting for the Diffuse.
Diffuse Cartoon Pre Lighting Layers: 0 - 10
Controls the look of the cartoonish lighting calculations.
Diffuse Cartoon Outlines: 0.0 - 1.0
Controls the look of the cartoonish lighting calculations.
Base Color AO: 0.0 - 1.0
Amount of Ambient Occlusion to blend into the Basecolor.
Base Color Sharp edges: 0.0 - 1.0
Amount of the curvature map to blend into the Basecolor.
Base Color From Vertex Color: 0.0 - 1.0
Amount of the Vertex Color bake to blend into the Basecolor.
Normal Material Intensity: 0.0 - 1.0
Blending strength of the baked (tangent) Normalmap.
SpecularAO: 0.0 - 1.0
Blending strength of the AO in the Specular.
Specular Bright Sharp Edges: 0.0 - 1.0
Blending strength of the Curvature in the Specular.
Specular Cartoon Outlines: 0.0 - 1.0
Blending strength of a cartoon Specular edge-outline effect, based on the Curvature.
Glossiness Dark Sharp Edges: 0.0 - 1.0
Blending strength of the Curvature in the Glossiness.
Roughness Bright Sharp Edges: 0.0 - 1.0
Blending strength of the Curvature in the Roughness.
Roughness Cartoon Outlines: 0.0 - 1.0
Blending strength of a cartoon Roughness edge-outline effect, based on the Curvature.
Metallic Bright Sharp Edges: 0.0 - 1.0
Blending strength of the Curvature in the Metallic.
Metallic Cartoon Outlines: 0.0 - 1.0
Blending strength of a cartoon Metallic edge-outline effect, based on the Curvature.
AO Materiel Intensity: 0.0 - 1.0
Blend strength of baked map AO with Material-generated AO, what degree to combine both AO maps at.
Height Material Intensity: 0.0 - 1.0
Blend strength of baked map Height with Material-generated Height, what degree to combine both Heightmaps at.
Height Material Blending Type: Reinforce, Interpolation
Blend mode for combining both Heightmaps.

Example Images
Material Selector

Material Selector

In: Mesh Adaptive/Utilities

Intermediate

Description

Converts a full-color ID map to a binary, black and white mask. Allows blending and combining of different colors into one mask.

This is handy if you don't want to use Multi-Material Blend and prefer to use the mask manually, or alternatively if you want to manually use those
same masks in other locations.

Parameters
Click here to expand parameters...

Materials: 1 - 16
Sets number of materials that combining is enabled for.
Enable Material #1-16: False/True
Toggles blending and combining of colors into the final output mask. Can be enabled for as many colors as you want to combine.
Material #1-16: (Color value)
Colorpicker for the materials color that will be converted to black and white.
Color Picker Parameters
Modifies blending and conversion of the color to black and white.
Fuzziness: 0.01 - 1.0
How much to blend in with neighbouring colors.
Padding: 0.0 - 1.0
Sharpness of the transition, like Contrast.

Example Images
Mesh Data Combiner

Mesh Data Combiner

In: Mesh Adaptive/Utilities

Simple

Description

This is a very simple node that "packs" baked mesh data into a single group, for use with "Compact Material Mode".

This node is mostly a helper that makes it easier to work with lots of baked inputs on certain nodes in the gallery, like Material Mesh Data Blender.
It allows you to avoid manually connecting everything.

Parameters

Parameters

Toggle which map inputs to enable and output into the packed result.

Ambient Occlusion: False/True


UV Masks: False/True
Curvature: False/True
Height: False/True
Position (Grayscale): False/True
Thickness: False/True
Normal: False/True
Position (RGB): False/True
Color ID: False/True
World Space Direction: False/True
World Space Normal: False/True

Example Images

Aucune image jointe à cette page.

Tri Planar
Tri Planar (Grayscale)

In: Mesh Adaptive/Utilities

Complex

Description

This advanced node performs Triplanar projection mapping in 2D, based on baked Position an World Space Normal data. This means it
essentially completely converts UV-coordinates into a (mostly) seam-free mapping based on the mesh itself.

This is a good way to avoid seams without having to rebake every time (it is possible to achieve something similar with the baker). The downside
is that this node is quite heavy and thus not fast.

Do keep in mind that your bakes should be high-precision: 8-bit bakes will not lead to very nice results.

Parameters
Click here to expand parameters...

Inputs

Position: Color Input


Baked Position map. Ideally 16-bit or higher precision.
World Space Normal: Color Input
Baked World Space Normal map, Ideally 16-bit or higher precision.
Input: Color Input (Grayscale Input)
Input map to remap from UV to World Space via Triplanar projection.

Parameters

Projection: All axis, X only, Y only, Z only


Sets which Axes to blend with.
Blending Mode: linear, advanced
Increases accuracy and precision.
Blending Contrast: 0.001 - 1.0
Transition contrast, blend between smooth or harsh transitions.
Texture Tiling: 0.0 - 10.0
Number of times to tile the input textures.
Rotation X: 0.0 - 1.0
Rotation over projection X-axis.
Rotation Y: 0.0 - 1.0
Rotation over projection Y-axis.
Rotation Z: 0.0 - 1.0
Rotation over projection Z-axis.
Offset X: 0.0 - 1.0
Offset over projection X-axis.
Offset Y: 0.0 - 1.0
Offset over projection Y-axis.
Offset Z: 0.0 - 1.0
Offset over projection Z-axis.

Example Images

Aucune image jointe à cette page.

Node Template

Example Node Name


In: Filters/Adjustments

Simple
Description

This node's functionality is described here.

Usage Tips

Tips on where and how to best use this node.

Parameters
Click here to expand parameters...

Parameter 1: 0-1
Explain Parameter 1 behavior
Parameter 2: True/False
Explain Parameter 2 behavior.

Example Images

Graph Instances
All the nodes you can use into a graph, and that are NOT atomic nodes, are called graph instances.

They are just graphs embedded into a node that you can use into another graph.

Appearance
In the graph view, you can distinguish a graph instance by its dark red title color:
Attributes
Graph instances have common attributes, even if some of them may or may not be filled depending of the Author of the graph.

Package

New in SD 2017: displays the path of the original graph (the top right icon will open the Windows explorer to the folder containing the graph.
Graph Instance

Displays the package internal resource reference path

Description, categories and other information

Information provided by the author of the original graph:

Functions
Functions will allow the intermediate and advanced users to push the boundaries and get the most
of Substance Designer. In this section:

In the following sections, you will learn what are functions within Substance Designer, how they What is a
work, and how to build your own. function ?
Create and
Edit a function
The function
graph
What is a function ? Variables
Create and Edit a function Function
The function graph nodes
Variables reference
Function nodes reference My first
My first function function

What is a function ?
Functions in Substance Designer allows the user to generate results using the logic you would
otherwise find in a programming language.

But rather than using lines of codes, functions in Substance Designer, keeps the same nodal
approach, and at first sight, a function graph looks really similar to a regular graph.
You can encounter functions in 2 main cases:

to control the result of a parameter


if you edit a pixel processor

Control the result of a parameter


In Substance Designer, any parameter can be controlled by a function.

Therefore you can imagine rules and dependencies between parts of your graph, to obtain unique
results.

For example you can decide that the opacity of a blend node will be half of the intensity of a warp
node (don't ask me why you would do that ):
In fact, you may already have created functions without being aware of it:

if you have exposed a parameter, you have automatically created a function,and a variable: the
fonction contains a get float node that catches the value of the newly created variable:

Create and Edit a function

Create a function

In order to create a function, you just need to click on the function icon and choose "Empty Function".
Edit a function
Once a function has been created, you can modify it by clicking the function icon again, or by chooding Edit in the drop down list.

You will then enter in the function mode of the graph.

The graph function


The graph function works in the same way than the substance graph, with a node Editor.

Create nodes
You can create nodes by right-clicking in the graph and choosing "Add element", or by pressing space bar:
Set an output
You can set an output by right-clicking on a node and choosing "Set as output node".

The node set as an output will become yellow.

Note that the node that you want to set as output, has to hold the same value type as the parameter it controls. If not, the option "Set as Output
Node" will be Greyed out.

A function must have an output in order to work. You will see a warning in your graph if your function does not have any output set.

The function graph


Similarities with a regular graph
At first sight, the function graph is really similar to a regular graph and the workflow is almost the
same.

Navigation is similar
In the function graph, you can create and organize your nodes the same way you would do in a
regular graph.

you can access the nodes the same way:

From the library


by pressing space bar
by right-clicking and using the Add node menu

Workflow is (almost) similar


Like in the regular graph, you will build your function by chaining a serie of nodes,each of them
using the result generated by the previous one(s).

And as you would expect, the output will either define the value of the parameter or the output of
the pixel processor node.

Difference with a regular graph

The nodes
Obviously, the available nodes in the graph are completely different from the ones you would
encounter in a regular graph.

The Output
Contrary to regular graphs, a function can have only one output.

Another point to note is that there is no specific output node where you plug your final result.
Instead, you can directly flag as output, the node that generates the result you expect:

How to define the Output node ?

To define the output, just right-click on the node that generates the expected output, and click on S
et as Output node:

Double check the generated result type.

If you notice that Set as Output Node is grayed out, it means that the value generated by
the node is different than the value expected by the parameter or the pixel processor.

As for regular graphs, you can import functions made in another graph. You can open the
reference graph by right-clicking on it, and choose "Open Reference":
New in SD 2017.1: if you have a sbs containing multiple functions, you can drag'n'drop it directly
into a function graph and choose the function you want to import in the appearing list:

Variables
For information about the creation and usage of variables nodes, please refer the Variabl
es Nodes section.

Definition
If you have little knowledge in programming, you may be familiar with the concept of variable.
If not, here is a simple definition:

A variable, is just a "container" with a specific name that contains a value.

You can use the value contained in a variable by calling it with its name.

Types of variables
In SD5 you have two families of variables : numerics and booleans.

Numeric variables
Numeric variables are basically numbers. But we make a clear distinction between two types of
numbers:

Integers : 0 | 1 | -1 | 203568 , etc...


Floats: 0.23 | 1.0 | -0.3546 | etc...

Substance Designer makes a clear distinctions between integers ans floats : by default
you can't operate them together.

Fortunately, you can use the To Integer or To Float nodes that do will do exactly what
their names suggest.

Multiple numeric values in the same variable

Depending your needs, you can accumulate up to to 4 numeric values inside the same variable.

Once again all the values have to be from the same type.

To do so, you have the choice all these numeric values :

Boolean
A Boolean is a pure binary value, meaning that it's value can only be True or False (you can also
say 0 or 1).

To be or not to be, that is the Boolean question

For your information, booleans are internally handled with numeric values by the system.
System Variables

System variables are variables you can use in order to access some
specific values. You can use them with FX-Maps and functions.

These variables always begin with a Dollar symbol ("$").

Node Name Particularity Type Purpose

Functions & FX- $pos - float2 Returns the birth


Maps position of the
pattern (for a FX-
Map) or the
currently
processed pixel
(for a pixel
processor).

The result is
always a value
between 0 and 1.

$size - float2 Returns the size of


the current node
(in pixels).

If used in the
"Output Size"
parameter (relative
to input), returns
the size on the
previous node.

$sizelog2 - float2 As above, but


returns the size as
power-of-2 values
(ex: for 2048*2048
image, $sizelog2
returns 11).

If used in the
"Output Size"
parameter (relative
to input), returns
the size on the
previous node.

$time - float1 This variable


returns the time in
seconds since the
Substance
rendering engine
was started.

It is ideal for
Substances which
need to animate
according to time.
(E.g. the hands of
a clock.)

In some
applications,
including
Substance Player,
a Substance that
uses $time will
cause a timeline to
appear in the user
interface.

FX-Maps only $depth - float1 Returns the octave


(level) number of
the FX-Map node.
This allows a node
to modify its
behavior according
to which level in
the quad-tree it
represents.

$depthpow2 - float1 As above, but


returns 2 raised to
the power of the
octave
(level) number.
This is a helper
value that comes
in useful for some
common
calculations.

$number Iterate Nodes only float1 Returns the


number of the
drawn pattern.
This can be
accessed by
Dynamic Function
graphs controlling
an Iterate node to
modify its behavior
at each iteration
step.

(Note that
$number starts
counting from 0,
not 1.)

Function nodes reference


Function nodes recap
Constant Nodes
Vector and Swizzle nodes
Variables nodes
Sampler nodes
Cast nodes
Operator nodes
Logical nodes
Comparison nodes
Function nodes
Control nodes

Function nodes recap


The function nodes are accessible by right-clicking in the graph function editor, and choosing Element.

Element Type Input Output Description

Constant Float - Float Defines a constant floating


value

Float2 - Float2 Defines a constant vector of


2 floating values

Float3 - Float3 Defines a constant vector of


3 floating values

Float4 - Float4 Defines a constant vector of


4 floating values

Integer - Integer Defines a constant integer


value

Integer2 - Integer2 Defines a constant vector of


2 integer values

Integer3 - Integer3 Defines a constant vector of


3 integer values

Integer4 - Integer4 Defines a constant vector of


2 integer values
Boolean - Boolean Defines a constant boolean
value

Vector Vector Float2 Float1 Float 2 Casts 2 floating values in a


vector with 2 coordinates

Vector Float3 Float1 / Float2 Float 3 Casts 2 floating values in a


vector with 3 coordinates

Vector Float4 Float1 / 2 / 3 Float 4 Casts 2 floating values in a


vector with 4 coordinates

Swizzle Float1 Vector Float Float1 Extracts a floating


coordinate from a vector

Swizzle Float2 Vector Float Float2 Extracts 2 floating coordinate


s from a vector

Swizzle Float3 Vector Float Float3 Extracts 3 floating coordinate


s from a vector

Swizzle Float4 Vector Float Float4 Extracts 4 floating coordinate


s from a vector

Vector Integer2 Integer2 Vector Integer2 Casts 2 integer values in a


vector with 2 coordinates

Vector Integer3 Integer3 Integer3 Casts 2 integer values in a


vector with 3 coordinates

Vector Integer4 Integer4 Integer4 Casts 2 integer values in a


vector with 4 coordinates

Swizzle Integer1 Vector Integer Integer1 Extracts an integer


coordinate from a vector

Swizzle Integer2 Vector Integer Integer2 Extracts 2 integer


coordinates from a vector

Swizzle Integer3 Vector Integer Integer3 Extracts 3 integer


coordinates from a vector

Swizzle Integer4 Vector Integer Integer4 Extracts 4 integer


coordinates from a vector

Variables Set any input type Sets a variable

Get Integer1 - Integer1 Get a function or graph


Integer value input

Get Integer2 - Integer2 Get a function or graph


Integer2 value input

Get Integer3 - Integer3 Get a function or graph


Integer3 value input

Get Integer4 - Integer4 Get a function or graph


Integer4 value input

Get Float1 - Float1 Get a function or graph


floating value input

Get Float2 - Float2 Get a function or graph


Float2 value input

Get Float3 - Float3 Get a function or graph


Float3 value input

Get Float4 - Float4 Get a function or graph


Float4 value input

Get Boolean - Boolean Get a function or graph


boolean value input

Samplers Sample Grey Vector Float2 Float4 Returns the greyscale value
of an input image at the
given UV coordinates (float2)

Sample Color Vector Float2 Float4 Returns the color value of


an input image at the given
UV coordinates (float2)

Cast To Float Integer1 Float1 Converts an integer in a float

To Float2 Integer2 Float2 Converts an Integer2 in a


Float2
To Float3 Integer3 Float3 Converts an Integer3 in a
Float3

To Float4 Integer4 Float4 Converts an Integer4 in a


Float4

To Integer Float1 Integer1 Converts a Float in an


Integer

To Integer2 Float2 Integer2 Converts a Float2 in an


Integer2

To Integer3 Float3 Integer3 Converts a Float3 in an


Integer3

To Integer4 Float4 Integer4 Converts a Float4 in an


Integer4

Operator Add Vector Float / Integer Type of a & b Adds 2 values of the same
type: a + b

Subtraction Vector Float / Integer Type of a & b Subtracts 2 values of the


same type: a - b

Multiplication Vector Float / Integer Type of a & b Multiplies 2 values of the


same type: a * b

Scalar Multiplication Vector Float Type of a Multiplies a value by a


floating value: a * scalar

Division Float1 / Integer1 Type of a & b Divides 2 values of the


same type: a / b

Negation Float1 / Integer1 Type of a Returns the negation value: -


a

Modulo Float1 / Integer1 Type of a Returns the modulo value:


mod(a, divisor)

Dot Product Vector Float Type of a & b Returns the dot product of 2
values of the same type: dot
(a, b)

Logical And Boolean Boolean Returns true if the 2 boolean


entries are true. Returns
false if one the entry is false.

Or Boolean Boolean Returns true if 1 of the


boolean entries is true.
Returns false if they are
both false.

Not Boolean Boolean Returns the negation


boolean of the entry: !a

Comparison Equal Float1 / Integer1 Boolean Returns true if a = b

Not Equal Float1 / Integer1 Boolean Returns true if a != b

Greater Float1 / Integer1 Boolean Returns true if a > b

Greater or Equal Float1 / Integer1 Boolean Returns true if a >= b

Lower Float1 / Integer1 Boolean Returns true if a < b

Lower or Equal Float1 / Integer1 Boolean Returns true if a <= b

Function Absolute Float1 / Integer1 Float1 Returns the absolute value


of a: abs(a)

Floor Float1 / Integer1 Float1 Returns the highest value


lower or equal to a: floor(a)

Ceil Float1 / Integer1 Float1 Returns the smallest value


upper or equal to a: ceil(a)

Cosine Float1 / Integer1 Float1 Returns the cosine value of


a: cos(a)

Sine Float1 / Integer1 Float1 Returns the sine value of a:


sin(a)

Tangent Float1 / Integer1 Float1 Returns the tangent value of


a: tan(a)

Arc Tangent 2 Vector Float2 Float1 Returns the arc tan 2 value
of a vector2 entry: arctan2
(xa, ya)

Cartesian Float1 Float2 Converts 2 polar


coordinates to cartesian
coordinates: carth(rho, theta)

Square Root Float1 / Integer1 Float1 Returns the square root


value of a

Logarithmic Float1 / Integer1 Float1 Returns the logarithmic


value of a: log(a)

Exponential Float1 / Integer1 Float1 Returns the exponential


value of a: exp(a)

Pow 2 Float1 / Integer1 Float1 Returns the power of 2


value of a

Linear Interpolation Float1 / Integer1 Float1 Returns the linear


interpolation between 2
values, depending on a
floating value : (1-x)a + x * b

Minimum Float1 / Integer1 Type of a & b Returns the minimum value


between a and b

Maximum Float1 / Integer1 Type of a & b Returns the maximum value


between a and b

Random Float1 Float1 Generates a floating value


between 0 and a

Control Sequence any Type of input Allows to choose which


value to compute first
between 2 values.

If...Else Boolean / a & b Type of a & b Returns true if the condition


in If is true. Returns false if
it's false.

Constant Nodes
Definition
Constant nodes generates static values for your graph.

There one constant node each available type of values in Substance Designer:

As you can see, each type of value has its own pin color: don't hesitate to look at them
to see if you can plug 2 nodes together.
Constant parameters
The parameters of the constant nodes let you define their value(s):

Vector and Swizzle nodes


Vector and swizzle are useful to handle and organize the content the nodes:

The vector nodes can merge the content of two nodes


The swizzle can isolate and return a part of the content of a node

Don't hesitate to look at the two sub-pagesd to get more information.

Swizzle nodes
Vector nodes

Swizzle nodes
Swizzle nodes are useful to get an access to each channel of a node and reorganize them the way you want.
How to use swizzle nodes ?

Just choose the swizzle node corresponding to the output you wnat to get.
Plug a relevant node into it
ajust the parameters according to your needs (in the case below, I inverted the x and y channel:

Vector nodes
Definition

Vector nodes will merge input value(s) and turn them into a new vector with a different length (the
one suggested by their name):
Vector constrains

You cannot plug an integer value into a Vector Float type node.
The length of the vector you plug has to be equal or smaller than the the vector node

Variables nodes
Variables nodes are used to catch and reuse the value a declared variable (for the Get nodes) or to declare a new variable (for the Set node):
Built-in Variables
Call a variable
Create a variable

Built-in Variables
Substance Designer is dynamically generating built-in variables that you can call and use in your functions.

How to call a built-in variable ?

When you create a "Get" variable, all the built-in variables that correspond to the get node type will appear in the Variables drop-down list.

System Variables list

The built-in variables always begin with a Dollar symbol ("$"), and are as follows:

Name Particularity Data type Purpose

Name Particularity Data type Purpose

$time - float1 This variable returns the time in


seconds since the Substance
rendering engine was started.

It is ideal for Substances which need


to animate according to time. (E.g.
the hands of a clock.)

In some applications, including


Substance Player, a Substance that
uses $time will cause a timeline to
appear in the user interface.

$depth - float1 Returns the octave (level) number of


the FX-Map node. This allows a node
to modify its behavior according to
which level in the quad-tree it
represents.

$depthpow2 - float1 As above, but returns 2 raised to the


power of the octave (level) number.
This is a helper value that comes in
useful for some common calculations.

$number float1 Returns the number of the drawn


Specific to FX-Maps pattern. This can be accessed by
Dynamic Function graphs controlling
an Iterate node to modify its behavior
at each iteration step.

(Note that $number starts counting


from 0, not 1.)

$size - float2 Returns the size of the current node


(in pixels).

$sizelog2 - float2 As above, but returns the size as


power-of-2 values (ex: for 2048*2048
image, $sizelog2 returns 11).

$pos Quadrant Nodes only float2 Returns the birth position of the
pattern. The result is always a value
between 0 and 1.

$Tiling Integer Returns the Node current tiling mode:

0: Relative to input
1: Relative to Parent
2: Absolute

Auc
Call a variable
In order to use a variable in a function, you need to "call" it, meaning to need to import the value of the variable into the function.

To do so you need to use a Get node:

There is different kinds of Get nodes: choose the right one according of the type of value you want to import:

Assign a variable to a Get node

By default, a get node will display a warning sign: it means that it is not linked to any variable yet.

To link a variable, go to the parameters, and choose one variable in "Variables/Get ***" list (***will be replaced by the type of value your Get node
can call).

The variable name will be displayed into the node:


Note that only the variables that are from the same type of the Get node will appear in the list.

Note that variables created with a Set node, will not appear in a Get node list, if they are in different graphs.

But you can still the variable by manually writing the name in the list.

Don't forget, that you can just call a variable created with a Set node, if :

The Get and Set nodes are in function graphs controlling parameters of a same node
The parameter controlled by the Get node graph is either the same, or located below the parameter of the Set node graph, in
the parameters stack..

Create a variable

There is different ways to create a variable in Substance Designer:

Using an input parameter


Use a Set node.

Using an input parameter

(More information about input parameters can be found on this page) ADD A LINK HERE

When you when you create an input parameter, a variable is created and associated with it.

You can then reuse this variable in any function of you graph.
Therefore, one single exposed parameter can have an influence on multiple parts of your graph.

You can find more information about parameters exposition on the dedicated page.

Using a Set node

A Set node is a node only available in the function graphs:

It allows the user to create a variable:

The name is declared in the parameters.


The value is defined by the input.

How to use the Set node

The use of a Set node is a bit particular:

when you declare it, it is only available within the graph, which by default is not really useful (after all you can already output its value with links).

Therefore you have to declare this new variable, outside of this graph.

to do so, you have to use a sequence node and do the following steps:

Link the actual output node to the "last" input of the Sequence node
Link the Set node to the "In" input of the sequence node.
Set the Sequence as the output node
When you have done this, the variable will be available in the other graph of the same node.

When a node is processed by the substance Engine, their parameters (and the functions that could control them), are read from top to
bottom. Therefore, a Set node can only be accessible by the parameters located below it in the node parameters stack.

If you have multiple variables to create, just repeat the Set and Sequence nodes creation operation and set the last sequence node as
the output node:
Sampler nodes
For each pixel, the sample node will catch the 2d coordinates provided as input, and sample the selected (pixel processor) input value for these
coordinates.

Parameters

Input Image

Let you select which (pixel processor) input to use for sampling.

The list adapts dynamically to correspond to the current inputs.

Filtering Mode

Let you define how to treat the sampled results:

Nearest: will sample exactly the same value (faster)


Bilinear : will apply a bilinear filter on the result for a smoother look.

Bilinear or Nearest

Performance wise, the Nearest is faster than the bilinear.

If your sample node is used to generate a diffuse for example, you want the best visual result and you will choose bilinear.

If your sample node is used to generate pure information (like coordinates) you don't these information to be altered, therefore you will
choose Nearest.

Cast nodes
Cast nodes are used to convert a node from a type to another type:

How to use a cast node ?


Just select the cast node that corresponds to the length of the node you want to convert.
Operator nodes
Operator nodes lets you achieve classic mathematical operations on input node(s):
For division and modulo, the divisor is the lower input.

For subtraction, the subtrahend is the lower input as well.

Logical nodes
Logical nodes are used to add multiple conditions to your graph:

The And node

The And node takes two Boolean nodes as input:


If both of the inputs are True, then the output of the And node will be True
In any other case the And node will return False

The Or node

The Or node takes two Boolean nodes as input:

If at least one of the input isTrue (1), then the output of the Or node will be True
If both of the inputs are False, the Or node will return False

The Not node

The Not node takes a Boolean as input: it will will look at the input value and return its opposite:

True input gives False output


False input gives True output

Comparison nodes
Comparison nodes compares the the result of the upper input, to the the result of the lower input.

It returns either True of False, depending of the result of the comparison:


Function nodes
Function nodes will transform the input value according to the mathematical function they represent:

Control nodes
There is two control nodes, and each of them has a very specific role:
The If... Else node
Like in programming langages, the If... Else node introduces the possibility to filter the result
according to predefined conditions.

You will use this node in conjunction with the Logicals Nodes and the Comparison Nodes that will
help you build the condition to check.

Inputs

The first input is set to receive a boolean: this will be the condition that will be checked (which
obviously will be true or false).

The middle input will be the output result if the condition is True.

The last input will be the output result if the condition is False.

The Sequence node


The Sequence node will be used when you want to output a variable that you have into your graph.

This variable can then be catched and used into another graph but with some restrictions:

The graph should control a parameter of the same node


The graph that is catching the variable, should control a parameter located below the
parameter where the variable is set.

Note that the variable will not be automatically added to the variables list of the Get
node: you have to add it manually.

My first function
Coming soon...

Bakers
In this section:

Ambient
Occlusion
Ambient
Occlusion
from mesh
Bent Normals
from mesh
Color Map
from Mesh
Convert UV to
SVG
Curvature
Height Map
from Mesh
Legacy
interface
(before 2017.1)
Normal Map
from Mesh
Opacity Mask
from mesh
The bakers allow you to bake data from the mesh. Those maps can then help you to create Position
textures based on the mesh information. Thickness
Map from
You can bake maps up to 8k resolution. Mesh
Transferred
new in Substance Designer 6: you can now bake non square maps. Texture from
Mesh
The maps you can bake are: World Space
Direction
Ambient Occlusion World Space
Ambient Occlusion Map from Mesh Normals
Bent Normal Map from Mesh
Color map from Mesh
Convert UV to SVG On this page:
Curvature (also called Cavity Map)
Curvature Map from Mesh
Height Map from Mesh Bakers
Normal Map from Mesh Bakers Panel
Opacity Mask from Mesh Common
Position Parameters
Position Map from Mesh
Thickness Map from Mesh
Transferred Texture from Mesh
World Space Direction
World Space Normals

Ambient Occlusion and Curvature Map baking is not supported on some GPUs.

To extract maps from a mesh, import the mesh in the Explorer, right click on it and chose Bake
model Information.
Bakers
You can choose here which information you want to bake from the drop-down list.

Ambient Occlusion: bakes ambient occlusion data from the model into a bitmap.
Ambient Occlusion Map from Mesh: bakes ambient occlusion data from a high poly
model.
Bent Normal Map from Mesh: bakes bent normal map from a high poly model.
Color map from Mesh: bakes the vertex color or material color from a high poly model.
Convert UV to SVG: bakes UV shells from the model into a vector image mask.
Curvature: bakes the curvature data. This produces a map where highly concave areas
are rendered as black, while highly convex areas are rendered in white. We recommend
using 16-bit normal maps as inputs for this process to obtain optimum results.
Curvature Map from Mesh: bake the curvature map from a high poly model
Height Map from Mesh: bakes the distance values from a high definition model to the
current model.
Normal Map from Mesh: bakes the normals from a high definition model to the current
model.
Opacity Mask from Mesh: bakes geometry "holes" from a high definition model to the
current model.
Position: bakes world position data into a bitmap.
Thickness Map from Mesh: is very similar to the ambient occlusion baker, but it casts
the rays in the opposite direction of the surface normal.
Transferred Texture from Mesh: bakes a texture from a high definition model to the
current model.
World Space Direction: bakes vector orientation from world space to texture space.
World Space Normals: bakes world-space normal data into a bitmap.

*Please note that this feature is unavailable on certain graphics cards. See Known Issues for more
details.

Where can you use these baked bitmaps?

When used in combination with the UV Mask data, World Space Normals and Ambient Occlusion
maps are ideal for creating Substance graphs that need to focus only on the curves and edges of a
model's elements, such as the edge of a car door, or exposed joints. For example, you might want
these corners and edges to appear more worn and chipped. Using these baked bitmaps in your
Substances, you can create effects that can use edge detection to focus solely on those areas,
rather than affecting the entire model.

Bakers panel
New in Sd 2017.1: the interface has been totally revamped for more info about the old UI, follow
this link
The baker panel is divided in 4 parts:

1: Scene

Let you define which part of the mesh is involved in the baking process.

New in Substance Designer 6, you can also select by material:


2: Output

Method: Choose if the generated maps a embedded or linked to the project.

Folder: if linked, let you specify where the maps have to be stored

Name: set the naming rules for the maps

Place resource into a mesh specific folder: if checked, does exactly what it's saying.

3: Setup High Definition parameters

Add High definition model: once clicked, let you choose a high res mesh:

from a file located on your computer


from a resource, which is already part of your current project
Set distance with:

Values: distance settings are defined by the parameters below in the list
Cage: the distance will be defined by the cage file

Frontal and Rear value: set the maximum distance the rays are allowed to make before finding a
surface.

Relative to Bounding box: if checked, the distance is relative to the object bounding box.

Ignore backface: if checked, rays will ignore backface which can avoid artifact in certains
conditions

Match:

Always: will take in account the whole hi res mesh for the baking
by name: will rely on the naming convention (defined in the preferences) to fit the high
and low res elements

Use Skew correction:

Use low as high definition: if checked, the low res will be projected on itself.

4: Bakers default values

Dilatation width (px): defines the width used for the padding

Apply diffusion: defines if the diffusion is applied or not

Default size: Set the size of the output texture(s)

Average normals: if checked, normals will be averaged during the baking

Default Format: Set the output texture format

Default Anti Aliasing: Set the anti aliasing value (high= more quality, but takes more time)

Default UV set: lets the user choose the UVs to use in the baking process

5: Bakers renders list


By pressing the button, you can add the desired bakers to the processing list

Bakings are processed following the list order (from top to bottom): this may be
important if you want to reuse the result of a bake (like the normal map) in another
baking process

Clicking on the "+" in the bakers layout lets you add the bakers in a stack (You can put as many
bakers as you want in a stack).

You can remove a baking process from the list by pressing

You can reorder the baking process list by selecting a baking process and using

6:Baker parameters
Will displays the settings that are unique to each baker.

Ambient Occlusion

The Ambient Occlusion baker allows you to bake Ambient Occlusion map. This baker uses a fast algorithm executed on the GPU.

Specific Parameters
Invert Normal: will compute the ambient occlusion map with inverted normals (can be used to generate a thickness map).

Use unselected Mesh Parts: use unselected mesh parts of the mesh to bake the ambient occlusion map.

For example: you want to bake only the arm of your mesh, but you want the shield and body to be used while baking the map.

Quality: chose the quality of the Ambient Occlusion map. A higher quality is slower to compute.

Precision Bias: This is the precision of the ambient occlusion. A lower value will give a higher precision, but will produce bigger artefacts.

Distance Fade: spread of the ambient occlusion.

Ambient Occlusion is not supported on some GPUs. Baking at high resolution on low end / mobile GPUs can lead the application to
crash.

Ambient Occlusion from mesh


The Ambient Occlusion baker allows you to bake Ambient Occlusion map. This baker uses the high deifnition meshes to compute the occlusion,
it is slower than the "simple" ambient occlsuion baker but generally produce more accurate results.

Specific Parameters
Secondary Rays: amount of occlusion rays (the higher will produce less noise).

Min Occluder Distance: minimum distance where the occlusion rays will hit the high poly geometry.

Max Occluder Distance: maximum distance where the occlusion rays will hit the high poly geometry.

Relative to Bounding Box:

off: units used in "Max Frontal Distance" and "Max Rear Distance" are the ones defined when exporting your mesh (m, cm or whatever
you did set up in your scene export).
on: units are relative to the bounding box of the object, 1.0 being the diagonal length of the bounding box.

Spread Angle: maximum spread angle of occlusion rays.

Distribution: angular distribution of occlusion rays.

Ignore Backface: defines if the rays should ignore hits on a backface (if the high poly normal faces the opposite direction as the low poly from
where the ray is fired). You should want this option activated most of the time.

Attenuation: defines how occlusion is attenuated by occluder distance

Bent Normals from mesh


The bent normal map describes the average direction of ambient lighting. The Bent Normals from mesh baker is derived from the Ambient
Occlusion from mesh baker.

Specific Parameters
Secondary Rays: amount of secondary rays (the higher will produce less noise)

Min Occluder Distance: minimum distance where the secondary rays will hit the high poly geometry

Max Occluder Distance: maximum distance where the secondary rays will hit the high poly geometry

Relative to Bounding Box:

off: units used in "Max Frontal Distance" et "Max Rear Distance" are the ones defined when exporting your mesh (m, cm or whatever you
did set up in your scene export)
on: units are relative to the bounding box of the object, 1.0 being the diagonal length of the bounding box

Spread Angle: maximum spread angle of occlusion rays.

Distribution: angular distribution of occlusion rays.

Ignore Backface: defines if the rays should ignore hits on a backface (if the high poly normal faces the opposite direction as the low poly from
where the ray is fired). You should want this option activated most of the time.

Map Type: defines the type of the output map (World space / tangent space)

Normal Orientation: if the map type is Tangent space, defines if the map is encoded as DirectX or OpenGL

Color Map from Mesh

This baker allows you to project Vertex Color, Material color or random colors per sub-objects from a high definition mesh to the current model. It
can be used to bake polypaint or material IDs.

Specific Parameters
Color Source:

Vertex Color: reads the vertex color from the high definition meshes
Material Color: reads the material color from the high definition meshes (only works for FBX files)
Mesh ID: assign a color per object from the high definition meshes
Polygroup / Submesh ID: assign a color per subobject (also called element) from the high definition meshes

Color Generator (only for Mesh ID and Polygroup/Submesh ID):

Random: each object / subobject is colored by a random color


Hue Shift: each object / subobject is colored by a unique hue
Grayscale: each object / subobject is colored by a unique grayscale color

Convert UV to SVG

The Convert UV to SVG baker allows you to transform your UV in a vector graphic file.

As a vector graphic, you can easily use this kind of maps to create masks.

Specific Parameters
Padding: Geometric padding to add to the SVG shapes.

Color Mode: Chose how the SVG shapes should be colored

Random: each UV shell is colored by a random color


HUE Shift: each UV shell is colored by a unique hue value
Grayscale: each UV shell is colored by a unique greyscale value
Uniform color: all UV shells are colored by a 50% grey value
Material ID Color: UV Shells are colored by the material color defined in the Scene View

Curvature

The curvature baker allows you to extract curvature map. This kind of map is often called "cavity map" as well.

The black values represent the concave areas


The white values represent the convex areas

Specific Parameters
Algorithm:

Per Pixel: will compute the curvature map based on both the geometry and the input normal map
Per Vertex: will compute the curvature map based only on the geometry

Details: a higher value will reveal more details in the curvature map

Enable Seams: if checked, seams will appear on the curvature map

Seams intensity: set the intensity of the seams. This works only if the option "Enable Seams" is checked

Height Map from Mesh

This baker allows you to create a height map from a high definition mesh.

Specific Parameters
Automatic normalization: defines the height map should be auto-leveled to make sure the highest point in the height is set to pure white.

Legacy interface (before 2017.1)


Here is the description of the interface until SD 6.0.4
The baker panel is divided in 4 parts:

1: Scene

Let you define which part of the mesh is involved in the baking process.

New in Substance Designer 6, you can also select by material:

2: Bakers
By pressing the button, you can add the desired bakers to the processing list

Bakings are processed following the list order (from top to bottom): this may be important if you want to reuse the result of a bake (like
the normal map) in another baking process

Clicking on the "+" in the bakers layout lets you add the bakers in a stack (You can put as many bakers as you want in a stack).

You can remove a baking process from the list by pressing

You can reorder the baking process list by selecting a baking process and using

3: Bakers parameters
This section displays the specific options for the current selected baker.

4: Common Parameters

Displays the parameters that are shared between bakers.

By default, changing one of these parameters; will affect all the bakers, except if you check Override Parameters, common to all
bakers: in that case, the changes will be local to the current baker.

The Resource Name field lets you change the name of the generated bitmap, if desired.
The File Format drop-down list lets you change file format from the default (Windows or OS/2 Bitmap format, "BMP").
The Place resource into a mesh specific folder check-box lets you choose whether the generated bitmap is stored at the same level as
the model, or inside a new sub-folder named "Resources".
The Method lets you define whether the new bitmap resource should be linked or embedded into the Substance package.
The Folder lets you define where to save the maps.
Pressing the OK button at the bottom right of the bakers window will start the baking process.

New in Substance Designer6: you can now cancel the baking process with the cancel button:

Normal Map from Mesh

This baker allows you to create a normal map from a high definition mesh.

You can bake either a Tangent Space normal map, or a World Space normal map.

Specific Parameters
Map Type: chose whether you want a Tangent Space normal map, or a World Space Normal Map.

Normal Orientation: select if the output map is encoded as OpenGL or DirectX. This inverts the green channel depending on the format.

Opacity Mask from mesh


The Opacity Mask baker will bake the missed rays into a grayscale binary image. This mask is generally used as an opacity map.

Specific Parameters:
This baker has no specific parameters.

Position

The Position baker allows you to create position maps.

Specific Parameters
Mode:

All axis: bakes the position on the x,y, and z axis in the rgb channels
One axis: bakes a single axis in a greyscale image

Axis: if the "One axis" mode is selected, chose which axis should be baked

Normalization:

BBox: normalize each axis according to the bounding box length


BSphere: normalize all axis according to the bounding sphere
Thickness Map from Mesh

The thickness baker is very similar to the ambient occlusion baker, but it casts the rays in the opposite direction of the surface normal. (So it's as
if you were baking an AO with the normal inverted).

The black values represent the thin parts of the model.


The white values represent the thick parts of the model.

It can be used in a Sub Surface Scattering (SSS) shader or directly in the diffuse/albedo to fake a SSS effect.

Specific Parameters
Secondary Rays: amount of secondary rays (the higher will produce less noise)

Min Occluder Distance: minimum distance where the secondary rays will hit the high poly geometry

Max Occluder Distance: maximum distance where the secondary rays will hit the high poly geometry

Relative to Bounding Box:

off: units used in "Max Frontal Distance" et "Max Rear Distance" are the ones defined when exporting your mesh (m, cm or whatever you
did set up in your scene export)
on: units are relative to the bounding box of the object, 1.0 being the diagonal length of the bounding box

Spread Angle: maximum spread angle of occlusion rays.

Distribution: angular distribution of occlusion rays.

Ignore Backface: defines if the rays should ignore hits on a backface (if the high poly normal faces the opposite direction as the low poly from
where the ray is fired). You should want this option activated most of the time.

Automatic Normalization: defines if the thickness map should be auto-leveled to make sure the brightest point is set to pure white and the
darkest point is set to pure black.

Transferred Texture from Mesh


This baker allows you to transfer an existing texture from an object to another.

It can be used, for example, to project a texture on different UV coordinates.

Specific Parameters
Texture File: texture that will be transferred from the "High Definition Meshes" to the destination mesh.

UV Set: UV set used to map the texture on the "High Definition Meshes".

Filtering Mode: filtering applied to texture pixel interpolation.

World Space Direction


This baker allows you to bake vector directions to UV space.

Specific Parameters
Input Direction: chose whether the direction should come from a texture, or from a uniform vector.

Normal Orientation: select if the output map is encoded as OpenGL or DirectX. This inverts the green channel depending on the format.

X/Y/Z: Vector orientation, if you chose a uniform vector as input direction.

Direction File: select the texture file if the direction should come from a texture.

World Space Normals

This baker allows you to extract a world space normal map from the model.

Specific Parameters
Normal Map: input a tangent normal map to be taken into account.

Normal Orientation: specify if the input normal map is encoded as OpenGL or DirectX.

MDL (Material Definition language)


Introduced in Substance Designer 5.5, you now have the ability to author a MDL , using the nodal In this page:
graph power of Substance Designer.

What is MDL?
Substance
Designer +
MDL

In this section:

The MDL
Graph
Node Creation
workflow
Exposing a
parameter
First steps
with MDL

What is MDL?
Created by Nvidia, MDL stands for Material Definition Language.

As its name suggests, this language is meant to describe the property of a physically based
material, and how it is supposed to behave.

Once you define a material with MDL, you can then use it in all the applications that supports MDL
(Iray, Nvidia Mental Ray)

Is MDL like a shading language?

Not exactly.
In order to work, a shading language has to define not only the behavior of the material,
but also the behavior of the light, and they are generally extremely dependent to each
other (which can affect the portability to another platform).

MDL materials define the behavior of light at a high level: it basically means that the
MDL material "only" contains the material information, leaving the host application
handling the light.

This separation between light and material, gives the user the freedom to build and
easily share MDL materials between supporting applications.

Substance Designer + MDL


Substance Designer is the first and unique MDL editor available on the market.

Still based on the nodal system that makes the strength of SD, it empowers the user, and give him
the ability to try and iterate like never before:

If you are a surface or rendering artist, you can use MDL editor to explore new patterns.

If you are an existing Substance user, you can now explore new -more complex- types of materials
(like multi- layered ones)

You can improve the quality of your materials for your Iray renders.
Substance Designer becomes a material hub where you can create your materials for
different render targets

More information about Material Definition language on Nvidia website.

The MDL Graph


As you will notice, the MDL graph is pretty similar to a standard graph, yet has some features & In this page:
differences that makes it unique:
The nodes used in a MDL graph are specific. MDL Graph Creation
a MDL graph can only have one single output called "root". MDL Graph Parameters
MDL graph introduces a new way to select & create nodes (see Contextual Node Creation Attributes
below) Identifier
Exposing parameters differs from Standard Graph (See the Exposing a Parameter page) Category
Show in
Library
MDL Graph Creation Icon
MDL Annotations
In order to create an MDL Graph, follow these steps: Graph Inputs

Create a new Substance package, or open an existing one.


In the explorer: right click on the package and click on new/

You can also click on the icon on the main toolbar:

You will then be prompted to choose a MDL preset:

Once you have chosen your template and named your graph, just click OK on the top right of the
window: the MDL graph will be generated according to the selected template:
MDL Graph Parameters
Like a standard graph, there is 2 ways to access the graph parameters:

Click on the graph name in the Explorer view


Double-click on an empty space in the graph view

Parameters are subdivided in 3 sections:

Attributes
MDL Annotations
Graph Inputs

Attributes

Attributes are information used by Substance Designer itself


Identifier

Name displayed in the library

Category

Category where the MDL should appear in the library

Show in Library

Defines if the MDL Graph should be seen in the Library or not

Icon

You can select a specific icon to display into the library.

MDL Annotations

Annotations provides extra meta information to the MDL:


Graph Inputs

This is the section where the parameters exposed by the user will appear:

Node Creation workflow


DL graphs introduce new concepts during the node creation process.

Pins & links Color & Shapes reference Coding


As MDL manipulates specific kinds of information, we had to define a specific color for each type
of data.

Pins shapes
Square shape: varying value

Round shape: uniform value

Pins and links colors


Yellow: color type
Grey: vector type
White: boolean type
Green: material type
Blue: bsdf (surface) type
Purple: vdf (volume) type
turquoise: edf (emission) type
Orange: texture type

Please note that the color specifies the general type of the input/output but two values of
the same type are not necessary compatible (ex: a vector float 2, and a vector float 3)

Contextual node creation


MDL graphs offer two easy way to display a contextual node search list that will only show the
nodes that are compatible with the selected pin:

Click & drag a link from the pin then release...


Or click once, move the mouse, then click again:

You then just have to (search &) select the node you want, as you would do with the regular
search bar.

Exposing a parameter
The way parameter exposition works is unique to MDL graph.

While in a standard graph you would select and expose one of the parameters from directly from a node, in a MDL graph, you have to create a
specific node for this parameter, right click on it and choose "Exposed".

As a feedback, a small circle will appear on the top left corner of the exposed node:

Parameters settings

Another difference is that the exposed parameter settings will appear at the level of the node (and not at the level of the graph):
First steps with MDL
While the workflow for building a MDL graph is quite straightforward, it requires some understanding of how MDL works.

Good starting point can be to have a look at Nvidia dedicated pages:

http://www.nvidia.com/object/material-definition-language.html

We also released 2 videos that will help you understand how to build your first MDL Graphs:

Performance Optimization Guidelines


The more complex your Substances are, the more processing power is needed to render them.
Substances must therefore strike a balance between complexity and rendering speed. This is In this page:
especially important if they will be used in real-time graphics applications, such as games.
General
Generally speaking, nodes exposing tweaks (custom parameters) that will be modified at run-time
optimization:
should be placed as close to the end of the graph as possible. This is because the output of each
Optimizations
node is cached wherever possible. The further up the graph your tweakable node is, the more
for Mobile
outputs will need to be regenerated whenever one of those tweaks is modified. If your tweaked
usage:
node is close to the end of the graph, only the few nodes between it and the output nodes will
Optimizations
need to be recomputed.
for Embedded
Bitmaps:
For example, if tweaking a uniform color at the beginning of your graph, all the following nodes will
be recomputed. If you tweak a HSL node placed right before the output, only this node will be
recomputed, greatly improving performance of the graph.

General optimization:
Pay careful attention to the resolution and relative-to-parent resolution settings! Hig
h values will seriously affect performance, so consider how the material is likely to be
used and whether you can reduce the data sizes involved.
Use grayscale when no color is needed. Color operations take four times longer than
grayscale operations. Try to minimize type conversion, convert to grayscale/gradient
/another convert to grayscale.. and so on.
Use 8 bit when 16-bit is not needed. (Note that the Substance CPU engine does not
actually support 16-bit color or 8-bit greyscale. The GPU engine supports all 4
combinations of 8/16 bits and greyscale/color. Currently, only the CPU engine is used in
Unity and UE4)
Minimize node output size whenever possible. Sometimes, downsizing some of the
substance nodes doesn't affect the final result, but will affect performance. For example,
using a Uniform Color node set to the same output size as the document is pointless: The
Uniform Color should be set to Absolute [16px x 16px] and the subsequent node to
Relative to Parent. Generally this trick works well for low-frequency images, such as Perlin
noise.
Do not use images smaller than 16*16 as this slows rendering performance.
When using the Blend node, disable Alpha blending when it's not required.
Blurs and Warps are the most processor-intensive nodes;
Some noise generators are affected by the amount of patterns drawn: the tile generator
for instance, will get slower the more patterns you add to it.
Some noises are affected by a zoom factor, which in fact will draw more patterns. These
include: noise_zoom, cells_zoom, etc.
If you want a white noise pattern, don't take a noise_zoom with a very high zoom value,
use the white_noise instead.
Conversely, there are some very fast noise generators, including: White Noise, Fractal_Su
m_Base, and Anisotropic_Noise.

Optimizations for Mobile usage:


It is not recommended to use Warps and FX-Maps, as they are very performance costly.
Avoid Blur nodes, use downscale performances instead.
Work as much as possible in greyscale and switch to color mode at the end of the graph.
Try to share nodes as much as possible between outputs.

Optimizations for Embedded Bitmaps:


Using embedded bitmaps will increase the size of the published substance file (sbsar).
Embedded bitmaps are files that are linked, embedded or baked and added to the
substance package as a resource. Only bitmaps that are used in a graph i.e. connected to
an output either directly or through the node chain are published with the substance
material. Try to use the lowest resolution for bitmaps to increase performance. For
example, don't use 2K or 4K bitmaps if your maximum texture will only be 1K. The larger
number of embedded bitmaps to process increases file size and computation.
Bitmaps linked or embedded into the package should have the compression set to JPEG
with the exception of the normal map. For the Normal, you should leave the compression
set to RAW. The compression is set in the Attributes under Bitmap Format.

Bitmaps have their Output Size set to Absolute by default. This means that if the bitmap is
connected through the node chain to an output, it will then force the final output to be the
size of the embedded bitmap.
A node you insert after the bitmap will have its Output Size set to Relative to Input. This
means that the node will also inherent the size of the bitmap and carry this size down the
node chain to the outputs.
To correct this, you need to set the node after the bitmap to have its Output Size set to
Relative to Parent.

If the substance is set to have a dynamic resolution, you can change the Output Size on
the embedded bitmap to be Relative To Parent.
This way, the bitmap size will change based on the parent graph and you won't get into a
situation where the substance is processing higher resolution in the bitmap than what is
needed.

Note : Setting a bitmap node to "relative to parent" and cooking the


substance (exporting it as an sbsar) will save the bitmap at a resolution of 256x
256 instead of its original size. It is advised instead to keep the bitmap node in "a
bsolute" and use a transform2D node just after with a "relative to parent"
resolution.

Pipeline and Project Configuration


Substance Designer has a powerful system to configure the application for pipeline usage. Through an advanced system of hierarchical "Project"
files the application can be instantly configured to Studio or Project standards, with all configurations and Library content being under version
control. The main goal of the system is to centralize all pipeline-relevant settings, yet still allow multiple configurations to override and expand
each other.

This system is not intended for single users with simpler requirements, but rather for studios with large projects and teams and a higher
need for organisation. To make full use of this system, a fair amount of planning and preparation, as well as a certain degree of
automated set-up is recommended!

Configuration File Hierarchy


Designer has 3 tiers or Configuration files, each with a different purpose. For Windows all files are located in ~User\AppData\Local\Allegorithmic\S
ubstance Designer.

The following image illustrates the relation between the different files in Designer's default setup, after a fresh install.
User_Preferences.XML contains general program settings, of which all but one are not relevant to project pipelines. This file is unique
and can not be swapped out, Designer is hardcoded to utilize this exact file.
It contains one single reference to a Configuration file.
Default_Configuration.SBSCFG can be swapped out for other SBSCFG files with different names, but only one SBSCFG file can be
used at the same time.
It contains multiple references to Project files. Note that for the default configuration these files are not explicitly defined, but are hard-
coded!
Project.SBSPRJ files contain project/pipeline relevant settings. Multiple Projects can be defined in a hierarchy, overriding or expanding
on the previously defined project.

Designer Pipeline setup


Every type of file is explained with more detail on child pages of this page, but the short overview of how to ideally define a custom setup for
Designer is as follows:

1. Identify and group what settings to add into your Project files. This is different for every studio and requires a certain amount of planning!
In almost every case at least 2 Projects should be defined: one for global, studio-wide defaults (like standard templates, shader files,
baking settings), and one with more specific content such as Library content. If you have different projects running simultaneously you
might want to create multiple project configurations for each (so 3 or more total).
2. Create the relevant SBSPRJ files and place them and their content under version control. It is strongly recommended to separate
Designer pipeline and library content from your actual project content and resources (3D models, textures, code) by creating a separate
repository for it.
3. Create an SBSCFG configuration file listing all project files, place it under version control as well. If you have multiple projects, you can
create a Config for every project.
4. Set up every user's User_Preferences.xml to reference their relevant configuration file.
You can have every user do this manually, or you can script this by injecting lines into their XML file. More info on the relevant page.

Project Configuration Files - SBSPRJ


Project configuration files are the most complex and most expansive files used to configure Substance Designer. They are special in that you can
use multiple Project Configuration files, where each next "Child" Project expands or overrides the previous "parent". Unless explicitly needed,
settings should not be modified or added to the Project files, so Designer can fall back on its parent configuration, or even defaults.

By default, Designer has 2 Project Configurations active:

Default Project
Contains all the default settings and the library Designer comes with on a fresh install. Read only, can not be modified or removed.
User Project
Because the Defaults are read-only, any changes by the user go into this project by default. Can not be removed.
This basic setup ensures that the default library and other settings can not be corrupted or modified, yet still allow single, amateur users to add
their own modifications without having to bother with complex setups.

Expa
nd
or
Over
ride
Most
settings
in a
consec
utive Project will override the ones from the previous Project. For example, a different Tangent Space plugin in a custom Project file will override
any TS Plugin defined in the Default or User project. This means that unless explicitly needed, it's recommended not to override or change
settings in child projects.

There are however some settings that expand upon parent settings, instead of overriding them. Most notably these settings are the Library paths
and filters, so you always add more content to the library instead of overriding it. Additionally, there's the aliases (path keywords for relative
filepaths) that expand, as well as override if a duplicate is defined. This allows for great control over content filepaths and references.

Project File contents


Project files can contain the following settings.

3D View
Default Shader, HDR and scene state definitions.
Aliases
Keyword aliases for relative paths.
Baking
Settings for baking naming conventions.
General
Graph Templates, Tangent Space plugins, normal and image format defaults.
Library
Watched paths to display in the Library, as well as filters and categories for the Library view.
MDL
MDL watched paths.
Scripting
Callback scripts and interpreters.
Version Control
Settings for integrating Version control into Designer.

Modifying Project Files


Project configurations are, like all other types, saved as structured XML files (using an ".sbsprj" extension) that can be modified through
the Designer UI, or through an external text editor.

When creating a Project file for a studio, the recommended workflow is to start from the user_project, modify it through the UI to get started and
do the first basic setup, then move to editing with a Text Editor like Notepad++, to ensure the author fully comprehends the file's contents
(especially for relative paths this is important).

The only exception would be Defining Library Filters, as this quickly becomes cumbersome in a text-editor. See relevant page.

Preferences menu
Access the regular Designer Preferences menu: Edit > Preferences..., and click the "Projects" section on the left.
Under Project Files you select whichever Project file to modify, in the bottom half you use the tabs to navigate to the relevant settings section and
change the values.

Edit XML Externally


For Windows Notepad++ is a good free option, for OSX Sublime Text 2 is an alternative. However, any editor with proper indentation, section
collapsing and some form of syntax highlighting will make your life much easier.

Once you open the SBSPRJ file in an editor, you should see a fairly straightforward structured layout, with sections corresponding to tabs in the
UI. Not every setting will be documented here, as it's fairly self-explanatory.

Relative paths and Aliases


Relative paths combined with Aliases are one of the more complicated, yet most important parts of a Project configuration, this section will clarify
them.

One of the major problems with files referencing other files in a system across multiple user's PC, is that absolute filepaths will not work. Users
can define their SVN repositories in completely different locations (eg. C:/John/Gamedev/SubstanceLibrary or D:/Dev/SubstanceLibrary). Aliases
and relative paths both work together to solve this problem. Otherwise, you might open someone else's file and it will try to look for the custom
node used in the specific location that user had it locally, which you probably won't have defined in exactly the same way.

An Alias is a keyword that replaces (part of) a path. It's similar to a Windows environment variable like %TEMP%, where a single word replaces
an often-used path that is then defined centrally. The advantage is simplified paths everywhere, and a way to modify all the references in one go
when you decide to relocate the this path.
Alias Example

Alias Actual path value

sbs C:\Program Files\Allegorithmic\Substance Designer\resources\packages

custom D:\Dev\CustomProject\Substance

The default library is by default located at C:\Program Files\Allegorithmic\Substance Designer\resources\packages, and all graphs
using default content reference this directory. Instead of referencing the full path, an alias of "SBS" (without quotation marks) is
defined. In the case of a the default library, the exact value for the SBS path is set upon installation to whichever directory the user
chooses for Substance Designer.

Internally a reference is modified the following way, when it contains a path with an alias:

C:\Program Files\Allegorithmic\Substance Designer\resources\packages\blur_hq.sbs => sbs://blur_hq.sbs

Relative paths are always relative to the file in which they are defined. That means the current location of the config file determines most of the
path, and Alias paths will be based upon it, mostly by just adding a subfolder. This means it's strongly recommended to put your sbsprj files
next to the folders you want to watch!

For example, take a repository at C:/Versioncontrol/Substance/ containing CustomProject.sbsprj and two folders, /Base and /Tools containing
nodes.

To define two relative Aliases for Base and Tools would be done as following inside the SBSPRJ file:

CustomProject.sbsprj
<urlaliases>
<size>2</size>
<_2 prefix="_">
<path>file:Base</path>
<name>BaseAlias</name>
</_2>
<_1 prefix="_">
<path>file:Tools</path>
<name>ToolsAlias</name>
</_1>
</urlaliases>

The result of this config file is the following:

BaseAlias:// will be C:/Versioncontrol/Substance/Base/ and ToolsAlias:// will be C:/Versioncontrol/Substance/Tools/.

If you would want to define just C:/Versioncontrol/Substance/, the path would be listed as "file:.", the dot signifying the location of the file itself.

Creating Library Filters For Projects


If you have custom nodes and want to share them studio-wide by integrating, you will want to integrate them into the library as seamlessly as
possible. This page explains how to plan for and actually create new categories and sections in the library.

You are free to categorize filters any way you want using the single-level folder system. It does pay off however to plan in advance how you will
sort your filters. Try to identify at least the major categories you want to use, as it influences how you label your graphs.

Graph Attributes
Every graph inside a package has an "Attributes" section in its properties. Most other reource types have similar Attributes. Their main purpose
is Library categorization, so standard users might not be familiar with using these. The following sections can be filled out:

Identifier, or Base Name.


The name of the graph inside the package. Must be filled out, can not contain spaces, does not have to be extremely descriptive. Should
never be changed once it is used by other graphs, will break references otherwise!
Description.
Intended for summarizing the graph's functionality.
Category.
Mainly intended for sorting and categorizing in the Library.
Label.
UI only label, used for naming graphs in the library view. This should be descriptive and can always be changed at a later point.
Author
Used to identify the original author of a graph.
Author URL
Can be used by authors who publicly release their graphs, to lead users back to their website.
Tags
Additional descriptive data that is used by the Library search option. (outside of Identifier and Label, only tags are searched for keywords)
User Data
Additional, uncategorized slot that can be used for any purpose, mainly library categorization.
Show In Library
Boolean flag to hide content in the library. Very useful for hiding old, deprecated content that can not be removed for compatibility
reasons.
Icon
Bitmap used in the Library view as thumbnail. Should be at least 128x128 pixels.

Filter Creation
Filters are simple boolean (True/False) search parameters that will result in a resource showing up inside the Library when that Filter is selected.
Resources can be anything kept inside a package. Keep the following in mind:

A Filter will match against all resources, under all watched paths.
A Filter can contain multiple conditions, all of them must evaluate to True (AND-condition) for the resource to show up under that filter.
A resource can show up under multiple filters, it is not exclusive to any filter.
A resource from a watched path is still available in the Library even if it is not under any Filter, by using the search function.

Filters can be created in the Library panel of Substance Designer through a few simple buttons:

Creating Filters and Folders

The three buttons marked in red are the following:

1. Add Folder. Creates an expandable folder in the Library view. You can not create Folders inside Folders.
2. Add Filter. Adds a new Filter inside the selected folder. You can not add filters to the existing default Folders.
3. Edit Item. Edits the currently selected Folder or Filter. You can not edit any of the properties of the default Folders and Filters.

Editing Filters and Folders


Folders only have the first two options, all the rest are only for Filters.

1. Name displayed in the Library tree view.


2. Project Configuration file (SBSPRJ) in which this item is stored. It's very important to set these up correctly, to ensure you are editing the
correct project!
3. Resource Type filter. If you only want a specific resource type, such as Graphs, set the dropdown accordingly.
4. Attribute to apply condition to. See list above.
5. Condition logic, allows for positive and negative, partial and whole matches.
6. Condition keyword, must be filled out to perform any filtering beyond resource type.
7. Buttons to add and remove more conditions. Plus adds a new Filter, X removes the current one.

Custom Library Tips


If you keep the above creation methods and attribute properties in mind, there are a few important guidelines to stick with:

1. Don't create custom nodes that mix with the default library unless you explicitely want them to. Your nodes will show up under default
filters if they match, so you'll have to make sure to use a different system to avoid that.
The general rule for the default library is the Folder is listed in the Category Attribute, the Filter name is determined by the Tag Attribute.
So avoid using the exact same names in the Category attribute of your content.
2. Use unique, per-project identifiers. These can be put anywhere you want (such as Description, Category or User Data), as long as you
are consistent between all projects. You'll need these to sort per project in the library.
3. Introduce a system to keep track of the original author in the Attributes: that way you can identify the person initially responsible for the
content, without having to dig through Version control records.
4. For creating Icons, create a (few) substance graphs with templates for the icons. That way you can ensure consistency and save work
on creating them. All default library icons were created within Designer this way!

Apart from that, there are many ways to manage adding content to the library:

You can add resources to existing categories if this makes more sense. It will be less work to manage and maintain filters, and you can
use a special Icon style to tell them apart.
You can define your folders and filters in your first, global (studio-level) Project Configuration file, and then add content into them merely
by adding watched paths from consecutive Project files.
Or you can redefine your Folders and Filters for every project to keep them separated.
You can mix and match and use methods from all three above: use existing filters, define new global ones, and create per-project unique
ones.

Configuration List - SBSCFG


The Configuration file is much simpler than the Project Configuration files, as it contains only a list of projects, as well an engine Compatibility
mode. They serve as a higher-level project/environment configuration list than the single Project files.

You can have multiple configurations for different environments, these files can be kept under version control along with the SBSPRJ files.
Modifying Configuration Files
These files are simple, yet they can still be modified in two different ways, just like the SBSPRJ files.

Through Preferences UI
The highlighted section is the part that relates to the Configuration Files, you simply add more Projects to the list which are stored in the above
defined SBSCFG file.

Edit XML Externally


For Windows Notepad++ is a good free option, for OSX Sublime Text 2 is an alternative. However, any editor with proper indentation, section
collapsing and some form of syntax highlighting will make your life much easier.

Once you open the SBSCFG file in an editor, you should see a fairly straightforward structured layout, with sections corresponding to the UI.

default_configuration.sbscfg
<?xml version="1.0" encoding="UTF-8"?>
<root>
<projects>
<projectfiles>
<size>1</size>
<_1 prefix="_">
<path>custom_project.sbsprj</path>
</_1>
</projectfiles>
</projects>
<preferences>
<configuration>
<compatibilitymode>sbs_engine_v6<
/compatibilitymode>
</configuration>
</preferences>
</root>

Note that the default and user projects are not explicitely listed, and that any additional projects are defined after these.

The example above also makes use of relative paths. Note that the logic for relative paths is slightly different between CFG and PRJ files: for
CFG files, as above, you should not type "file:/" before the path. Instead the path is just appended to the location of the CFG file in which it is
defined.

Removing Default Library


For now, the default library can not be removed. It's probably not a good idea to do so anyway, as you would lose a lot of Designer's functionality.

User Preferences - Automating Setup


The user_preferences.xml file contains all user-specific settings outside of the ones defined in a Project Configuration. These mainly relate to
specific UI and performance settings.

The only relevant setting to change is the Configuration File that contains a list of projects. This can be done in a few ways, as listed below.

Alternatively, you can completely bypass modifying the User Preferences, and do a session-based override of the SBSCFG file by using a
command-line argument on the Designer shortcut, see below.

Permanent or Session-based
There are two different ways to configure Designer to use another configuration file than the default, both with advantages and disadvantages:

Permanently modifying user_preferences.xml


This file is located in ~User\AppData\Local\Allegorithmic\Substance Designer for Windows. If you modify it, Designer will always use
what is defined there, regardless of how, when or where you start it. Making changes requires modifying the XML again, both of which
are described below, and tend to be a bit involved.
Temporarily setting the session through a command-line argument
Designer can take a command-line argument on startup to override the SBSCFG file for that session (see below for how). It's a simple,
elegant solution, and allows for switching projects in a much quicker way than through modifying an XML. The danger is that if you open
through multiple shortcuts (for example Start Menu and Desktop on Windows), you can have different results without it being entirely
obvious. On top of that, it's not as tamper-proof, as users can delete, move or modify their shortcuts much easier than their
user_preferences.xml.

XML modification

Manually Modifying Preferences


If there is no automated setup, or for testing purposes, one can manually go to Edit > Preferences... and then click the "Projects" section on the
left.
The button marked in red allows the user to choose a different SBSCFG file.

Modifying Through Script


Just like the Project and Configuration files, the user preferences is a structured XML, with the relevant setting clearly identifiable. Rather than
modifying through a text editor like Notepad++ or Sublime Text, it is very well suited for modification through an external scripted setup.

The advantage of scripting is user don't have to do anything else than clicking a button, and if a sufficiently complicated system is created it's
possible to manage and swap project easily without any need to manage files and settings manually.

The relevant line looks like this:

user_preferences.xml
<configuration>
<configurationfile>file:///C:/Users/John/AppData
/Local/Allegorithmic/Substance Designer/default_configuration.sbscfg<
/configurationfile>
</configuration>

Python Example

The following is a simple Python 2.7 example function for Windows that modifies the user_preferences.xml for another configuration file. This
permanently alters the value until changed back. The function SetConfigurationFile can then be called with the path of your custom sbscfg file as
a parameter.

A python script allows for powerful, clean code, and can be easily integrated elsewhere, but the downside is that for a user to run it, it needs to be
compiled to an executable, or the user needs a Python deployment.

Click here to expand and view the code

SetConfigurationFile.py
import xml.etree.ElementTree as ElementTree
import os

##Example Python script for changing Substance Designer user preference


file##

def SetConfigurationFile(p_ConfigPath):
#Check is the path passed as parameter exists.
if(os.path.isfile(p_ConfigPath)):
# replace backslashes by forwardslahes to ensure consistency
p_ConfigPath = p_ConfigPath.replace("\\", "/")
#get Local Appadata path from Environment variables, construct
full path to user_preferences.xml and check if it exists.
m_AppDataPath = os.environ.get('LOCALAPPDATA')
if m_AppDataPath != None:
m_UserPrefsPath = os.path.join(m_AppDataPath, str
("Allegorithmic/Substance Designer/user_preferences.xml"))
if(os.path.isfile(m_UserPrefsPath)):
#read XML elementtree from file, find correct element
until we get to the actual line that defines the configurationfile path
m_PrefsTree = ElementTree.parse(m_UserPrefsPath)
m_PrefsRoot = m_PrefsTree.getroot()
m_PrefsElement = m_PrefsRoot.find("preferences")
m_XMLError = True
if(m_PrefsElement != None):
m_ConfigElement = m_PrefsElement.find
("configuration")
if(m_ConfigElement != None):
m_ConfigFileElement = m_ConfigElement.find
("configurationfile")
if(m_ConfigFileElement != None):
m_XMLError = False
#Check if path is already set, to avoid
double work
if m_ConfigFileElement.text.replace
("file:///","") == p_ConfigPath:
print "configurationfile is already set
to desired path. Aborting."
return True
else:
#construct correctly formatted path,
insert into elementtree
m_ConfigPath = str("file:///" +
p_ConfigPath)
m_ConfigFileElement.text = m_ConfigPath

#Write to file
m_XMLString = str("<?xml version=\"1.0
\" encoding=\"UTF-8\"?>\n") + ElementTree.tostring(m_PrefsRoot, 'utf-8')
m_File = open(m_UserPrefsPath,'w')
m_File.write(m_XMLString)
m_File.close()
print "configuration file path
succesfully changed!"
return True
if m_XMLError:
#if this flag was not set to false, we can assume
something was missing or went wrong when walking through the XML
print("Error: malformed content in user_preferences.
xml!")
return False
else:
print "Error: user_preferences.xml does not exist, try
starting Substance Designer first!"
return False
else:
print "Error: LocalAppData path returned None"
return False
else:
print "Error: Invalid Configuration File path!"
return False

Command-line argument shortcut


In a much simpler way, Designer can be told to use a specific SBSCFG on startup through the "--config-file" (optional) argument.

Manual Setup
While not recommended to use a manual method in a production environment, for testing purposes this can be done fairly quickly if you have
setup your SBSCFG file already.

Add a space.
Add --config-file after the path to designer in the Target section.
Add another space
Add your path, wrapped in quotation marks to avoid issues with spaces in your path.

The result should be like this:

"C:\Program Files\Allegorithmic\Substance Designer\Substance Designer.exe" --config-file "C:\Dev\Substance\custom_configuration.sbscfg"

Script Setup

Python Example

The following is a Python 2.7 script that modifies or creates a shortcut with you custom configuration as argument.
A python script allows for powerful, clean code, and can be easily integrated elsewhere, but the downside is that for a user to run it, it needs to be
compiled to an executable, or the user needs a Python deployment.

Click here to expand and view the code...

SetShortcutConfigurationFile.py
coming soon!

Tutorials
Working with templates
Fx-Map : using vector maps

Go and see our video tutorials: https://academy.allegorithmic.com/

Working with templates


Working with templates will save an incredible amount of time while creating your textures.

Templates allows you to create textures based on mesh information. As a consequence, you can reuse those templates on other meshes and
get them textured automatically.

The main advantages of templates are:

Reuse your previous work to texture other meshes, keeping the same art consistency
Create variations with Tweaks

The 2 robots below have been textured with the same template.
Those 3 robots have been created in a few minutes thanks a template, and using tweaks to create variations.
There are only 3 steps to follow to create a template:

1. Extract mesh information for your first mesh to texture


2. Create the texture
3. Replace the baked maps by Color Image Input nodes

Extract mesh information


You can do it very easily in Substance Designer thanks to the bakers.

Create the texture


Create your texture based on those baked map, as you would do normally.
Transform mesh information nodes into Color Image Input
You simply need to replace the baked maps by some Color Image Input nodes.

To do so, delete the Bitmap nodes, and create a Color Image Input node instead.

If you save it as a graph, you now have a template you can reuse in other graph.

We encourage you to create your own material templates. You can imagine creating some rust templates, dust templates, etc.

The more template you have, the less work you will need to redo in the future.

Fx-Map : using vector maps

Download Source Files

The goal of this tutorial is to use vector maps (aslo known as flow maps) in an Fx-Map node in Substance Designer.

For this tutorial you will need the cone vector map and an arrow image. The cone vector map can also be used to paint your own vector map in
Photoshop following this tutorial.

1. Create a package

link the cone/arrow bitmaps


create a new graph
create an Fx-Map node, set the Color Mode to Grayscale
set the arrow Color Mode to Grayscale
plug the bitmaps to the Fx-Map

2. Right click on the Fx-Map node and select Edit Fx-Map then create a bunch of quadrant. The more quadrant (or level) we have, the more
pattern we will get. The "root" quadrant is the yellow node (right click Set as root)

3. Select the last quadrant and set the pattern to Input Image 2 which corresponds to the 3rd input of the fx-map node.
4. We now want to create the main function and we'll do that in the first quadrant parameter : the Color/luminosity parameter.
Why do we create the main function in the Color/luminosity parameter ? The functions are evaluated from the first parameter to the last, so if we
want to access a local variable (using the Set node) in let's say the Pattern Size we need to declare/set this variable in a parameter which
precede the Pattern Size (like Pattern Offset, Pattern, Branch offset and Color).

5. Now the maths.. The first step is to sample the pixel color from the vector map (the cone) and translate this color to vector values (a 2D vector
can be stored in a float2 value).
$pos is a system variable, it returns the position of each pattern in the image space. It tells the Sampler node to get the color from the image
input #0 where the patterns are located.

If we look at the axis image, (0, 0) coordinates are equivalent to (128, 128). But the sampler does not return values from 0 to 255, it returns
values from 0 and 1. So 128 is in fact 0.5 for the sampler.
We want 0.5 to be 0, 0 to be -1 and 1 to be 1 (i.e move [0, 1] range to [-1, 1]) . So x and y are multiplied by 2 (Scalar multiplication multiplies
both x and y) and 1 is subtracted to both x and y. ex: 0.5 *2 -1 = 0

6. Now create an external function which will compute the vector angle. I use an external function in order to simplify the main function (and
eventually reuse this function without having to recreate all the nodes).
7. I called the function vector_to_angle. I created a float2 input (the input creation is a bit messy, it creates a float1 by default and the associated
get float1 node, but when the input type is changed to float2, the getfloat1 is not replaced by a getfloat2 node: we have to delete it and create the
getfloat2 manually).
The Arc Tangent 2 is what we need, it returns an angle from a vector input. But the returned angle is in radiant ([0, 2Pi] range) and we want an
angle in the [0, 1] range since the Pattern Rotation parameter uses this range. So we divide the value by 2*Pi. Right click on the Division node
and select Set as Output

8. Go back to the Color function and drag&drop the vector_to_angle function.


9. Create a Set node (Add Element / Variable / Set) and type in the variable name vector_angle

10. Create a Sequence node (Add Element / Control / Sequence). The sequence node is used to evaluate the function branch plugged in the first
input and return the value of the second input. Since we are in the Color parameter, we need to specify the Color value in the second input. Right
click on the Sequence node and select Set as Output
11. Finally, create an empty function for the Pattern Rotation parameter, create a Get Float node (Add Element / Variable / Get Float) and type
the variable name manually. Right click on the node and select Set as Output. The arrows are now correctly orientated in function of the vector
map.

Substance Player
Note: You must have Substance Player installed for this feature to work. In this page:
You can download the latest version of Substance Player here
View Substance Player User's Guide Using
Substance
Player on the
same computer
Substance Player is a heavily optimized Substance viewer. Substance Designer can be told to use
it for performance tests by accessing it through your network, or by simply passing the Substance
to it directly if you are running it on the same computer as Substance Designer.

Using Substance Player on the same computer


Substance Designer 3 includes "Substance Player Bridge" feature that lets you send Substances
to Substance Player for testing from within Substance Designer itself.

The Substance Player Bridge icon is the green triangle icon in the Packages toolbar:

The first time you start Substance Player via this button, you will be prompted to provide
Substance Player executable location

The default location being: C:\Program Files\Allegorithmic\Substance Player\x\bin64

Note that if you have set an animation for your Substance file (via a $time variable), you can only
visualize them with Substance Player

About

"This software contains Autodesk® FBX® code developed by Autodesk, Inc. Copyright 2008
Autodesk, Inc. All rights, reserved. Such code is provided "as is" and Autodesk, Inc. disclaims any
and all warranties, whether express or implied, including without limitation the implied warranties of
merchantability, fitness for a particular purpose or non-infringement of third party rights. In no
event shall Autodesk, Inc. be liable for any direct, indirect, incidental, special, exemplary, or
consequential damages (including, but not limited to, procurement of substitute goods or services;
loss of use, data, or profits; or business interruption) however caused and on any theory of liability,
whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out
of such code."

Documentation in Japanese
Fichier Modifié(e)
Document Microsoft Word 97 Subtance_Designer_Japanese030617.doc mai 03, 2017 by Nicolas Liatti
Fichier PDF Subtance_Designer_Japanese_030617.pdf mai 15, 2017 by Nicolas Liatti

Glisser-déposer pour télécharger ou rechercher des fichiers

Tout télécharger

Potrebbero piacerti anche