01 Kevin Lynch Imaginea Orasului
01 Kevin Lynch Imaginea Orasului
01 Kevin Lynch Imaginea Orasului
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...
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).
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 !
"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
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
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
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
Changing the language will take effect after restarting Substance Designer
Views
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.
Auto Backup
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.
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
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
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
Software Engine
Project
3D View
Let the user define the default shader and default environment map location.
Aliases
Baking
Lets you specify the nomenclature that has to be used in the macros, and to find low & high res
meshes correspondences.
General
Template directories
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.
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
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
Scripting
Scripting actions
Let you set the path and activate/deactivate Python that have to be started when Substance
Designer is running:
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.
You should put all preferences that are specific to a Game project in a project file in
Substance Designer.
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
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.
If checked, the size of the comments will remain constant, regarless of the graph zoom level.
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
Setup Actions:
To be available, the package needs to be saved below the "Workspace Path" (Ex: under
"f:/Dev/perforce")
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.
Fill the Label of the new action and set its script:
Set a script file extension (of suffix) and the path of the interpreter:
Information:
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
"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
Misc
OpenGL
Shaders
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
Library Preferences
Rebuild Database: rebuild the library database based on all the refenrenced links.
You can change this location with the following environment variable: SUBSTANCE_DESIGNER_LICENSE
Example :
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.
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.
You can change that value with the following environment variable (in seconds): ALLEGO_LICENSE_IDLE_DELAY
This method will require to re-install the license files on each computer in case of an update of the license in the future.
Packages
A package is the sbs file that will be generated when you save your work.
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:
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
Atomic nodes
Graph instances
Nodes are the core elements you will use to define what will be the output of your graph.
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
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.
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_Graph
This_is_my_2nd_Graph
Create a Substance
The creation of a substance has 2 parts:
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
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.
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)
Since Substance Designer 6, you can now re-publish quickly a Substance file with the same previous settings, just by pressing this
button:
The easiest way to export a .sbs file is to right click on the package and chose "Export with dependencies..."
The Output Directory is the path where the .sbs file will be exported.
Options
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
Scene Shortcuts
Reset Zoom Z Z
Fit in View F F
Standard 1 1
Material 2 2
Compact Material 3 3
Selection Shortcuts
Dock/Undock nodes D D
2D View Shortcuts
Action Windows Shortcut Mac OSX Shortcut
Pan MMB + Move / Ctrl + RMB MMB + Move / CMD + RMB +Move
+Move
Reset View Z Z
Fit in View F F
3D View Shortcuts
Action Windows Shortcut Mac OSX Shortcut
Pan MMB + Move / Ctrl + RMB + Move MMB + Move / CMD + RMB + Move
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
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
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.
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.
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.
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:
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.
Click on Add a new Substance in the main menu, and the following wizard will appear:
Graph Template:
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:
Relative to Parent
Absolute
Width / Height:
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:
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.
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
Recent Packages - Displays a list of recently opened Packages. Click on an entry to open it.
Reload Resources - Forces Substance Designer to reload all resources, including bitmaps and
SVG data.
Edit Menu
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
Help Menu
Substance Store - Opens your default web browser to Allegorithmic's Substance Store.
Report a Bug... - Opens the bug report page on the Allegorithmic website.
Immediately below this is the Toolbar, which provides quick access to key menu commands.
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.
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.
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.
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.
Duplicating a view
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.
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:
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:
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:
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]
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).
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
All the resources you can create are accessible through this menu:
Import Resources
Link Resources
Reload
This reloads the package, without unsaved changes.
Save/Save As
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
Publish
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:
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
Paste
Close
Compute Outputs
Show in Explorer/Finder
(This works only for packages which have been saved at least once)
Dependencies
Graphs
A graph is automatically added to your package when you click on the Add a Substance icon in
New/Graph.
Open
Copy
You can paste a graph either on the same package to duplicate it (will be named
"graphName_1"), or on a different package.
Remove
Rename
Use this option to rename the graph
View Outputs
Compute Outputs
Export Outputs
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
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.
If your have added some animation parameters to your graph, the only way to vizualize
them is by previewing them in Substance Player.
Dependencies
Information
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
Panning:
hold middle mouse button and pan
Zooming:
use the mouse wheel
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
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.
SD5 offers different ways to handle the links display and connection:
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.
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.
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
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
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
Filtering by type
The filtering by type allows you to hightlight the atomic node type you have chosen:
Filtering by parameters
Filtering by parameters, will highlight the nodes that using a built-in or custom parameter:
This button will open the PSD Exporter panel on the right of the graph
The atomic node bar is just another handful way to access the atomic nodes.
Using the
You can click on the node and it will appear in the middle of the graph:
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:
On this page:
Related pages:
Create a node
Delete a link
Use shift + click to move multiple links from one output to another
Swap links
Rectangle links
Select Parent Nodes/ Create Graph from selection
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
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.
You can also display the node menu by pressing the spacebar.
Add Comment
Add Frame
Add pin
Paste
Paste nodes which have have been copied, without the links.
Select All
Pins
Previous Pin
Allows you to navigate in the graph and reach the previous pin.
Next Pin
Allows you to navigate in the graph and reach the next pin.
Copy Selection
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.
Action Command
Zoom MW
Reset Zoom Z
Fit in View F
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
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
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.
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
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
Indeed, it can be extremely useful in the context of a production, where naming conventions and files organization are extremely important.
You can export bitmaps from the graph view with the Cog icon.
The top part of the tool let you define some automation rules to apply when exporting the outputs.
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
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 !
To access the PSD Exporter, click on the cog in the Graph panel and chose 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".
Export bitmaps
You can export bitmaps from the graph view with the Cog icon.
Export Bitmap Window
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
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
Pixel Size
Tiling Mode
No Tiling
Horizontal Tiling
Vertical Tiling
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
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
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
Tags
User Data
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.
When it comes to sbsar the settings of outputs computation & Show in Library, you can refer to this:
Input Parameters
All the parameters which have been exposed are listed here, and can be reordered.
Input Images
In this part, all the Input images (Color Input and Greyscale Input nodes) are listed.
Output Images
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.
Create a node
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.
View in 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
Delete a link
Once the links are created, you can still reorganize them:
Use shift + click to move multiple links from one output to another
Swap links
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:
You can chose switch between modes at any moment in the graph toolbar by clicking on the icon , or with shortcuts.
The modes
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.
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.
Relative to Parent
Absolute
On this page:
Relative to Parent
Output Size
Related paged:
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.
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.
Software Resolution
Unity 3D 512x512
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
Here is a table showing the different resolution that you can expect depending on the Output Size Parameter.
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 Timings
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
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)
To use an asset from the library, just drag'n'drop it to the proper location :
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.
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:
Tiny icons
Small icons
Medium icons
Large icons
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:
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.
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.
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
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
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.
The first drop down list lets you chose the kind of resource to display:
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!
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
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
Quite self-explanative, you just have to click on the button to switch the state.
Size Power of 2
Created to corresponds to the size of a texture and respect the power of 2 rules.
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
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.
To create a parameter in graph, click on "+" in the Input Parameters of the graph.
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.
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:
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.
Identifier
Type
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.
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.
You can then set the values of this new parameter according to your needs:
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.
Pasting will create a new input parameter with the copied settings.
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
Some parameters cannot be exposed outside the Substance. The specific exceptions are detailed
in the table below:
Gradient Ramp (Gradient Map node) Requires a widget which is not available for
user creation.
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.
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)
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.
You then have a windows displaying all the non-used exposed parameters: just check the ones
you want to delete and click Ok:
This is very useful if you for example when you want to display some parameters that depends on
another one.
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:
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 ?
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:
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.
sRGB/linear 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
The Histogram and Information panels can be toggled independently. The screenshot above shows both enabled at the same time.
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.
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.
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
Here is the list of the different controls for the camera(All movements are relative to the 3D model
rendered in the 3D View.):
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.
When the camera mode is active , you can temporay access the Light controls by holding the shift
key.
In both cases, tuhe controls are the following (once again, they are relatives to the object):
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.
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):
Edit: opens the settings to activate of deactivate the current object visibility.
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:
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:
Channels: select which channel should be active for the current material.
You can either use one of the provided shader, or load a custom one.
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.
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
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.
The options highlighted in pink, are the only ones available for OpenGL:
OpenGL/Iray shared parameters
Is Visible
Exposure
Rotation
Defines the (horizontal) rotation for the environment map (also accessible via ctrl+shift+right click
shortcut)
Iray parameters
Dome type
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:
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:
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.
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:
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.
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
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 -->
Example:
Body
1. Techniques
Name: 'technique'
Attributes:
'name': The value is any string used to name the technique
Example:
Shaders
'filename': The path of the glsl shader file. Can be absolute or relative to the glslfx file
'primitiveType': The method to render the primitive
Example:
Properties
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:
false
true
false
Example:
Uniforms
Example:
<technique name="Parallax">
<!-- SHADERS -->
<shader type="vertex" filename="tessellation_parallax/parallax/vs.glsl"/>
<shader type="fragment" filename="tessellation_parallax/fs.glsl"/>
This allow to define the semantic of each attributes define in the vertex shader.
Name: 'vertexformat'
Attributes:
'name': The name of the attribute as defined in the vertex shader.
'semantic': The semantic of the attribute.
Example:
3. Samplers
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.
'isHidden': Boolean that indicates if the sampler should appear in the GUI
Example:
Wrapping Mode:
Name Value
clamp_to_border
mirrored_repeat
repeat
Texture Filter
Name Value
linear
nearest_mipmap_nearest
linear_mipmap_nearest
nearest_mipmap_linear
linear_mipmap_linear
Example:
4. Uniforms
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
Example:
Example:
<?xml version="1.0" encoding="UTF-8"?>
<glslfx version="1.0.0" author="allegorithmic.com">
<!-- BODY -->
<!-- ... -->
Other parameters
As the Uniforms can be override for each techniques, it allows to display a specific gui setup for each techniques.
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
Example: Tessellation/Parallax
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;
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;
}
Located in .\tessellation_parallax\tessellation\vs.glsl
Content:
#version 120
void main()
{
gl_Position = iVS_Position;
oVS_Normal = iVS_Normal;
oVS_UV = iVS_UV;
oVS_Tangent = iVS_Tangent;
oVS_Binormal = iVS_Binormal;
}
Located in .\tessellation_parallax\tessellation\tcs.glsl
Content:
layout(vertices = 3) out;
in vec4 oVS_Normal[];
in vec2 oVS_UV[];
in vec4 oVS_Tangent[];
in vec4 oVS_Binormal[];
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];
}
Located in .\tessellation_parallax\tessellation\tcs.glsl
Content:
in vec4 oTCS_Normal[];
in vec2 oTCS_UV[];
in vec4 oTCS_Tangent[];
in vec4 oTCS_Binormal[];
void main()
{
vec3 uvw = gl_TessCoord.xyz;
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
// 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;
}
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));
// ------------------------------------------
// 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;
// ------------------------------------------
// 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;
float FallofRefl;
if (KF_on == 0)
FallofRefl=1.0;
// ------------------------------------------
vec3 emissive = texture2D(emissiveMap,uv).xyz;
// Final Color
vec4 finalColor4 = vec4(finalcolor, texture2D(opacityMap,uv));
gl_FragColor = finalColor4;
}
GLSLFX File
Content:
<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"/>
</technique>
</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.
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.
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.
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 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
Recent Packages - Displays a list of recently opened Packages. Click on an entry to open it.
Reload Resources - Forces Substance Designer to reload all resources, including bitmaps and SVG data.
Edit Menu
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
Help Menu
Substance Store - Opens your default web browser to Allegorithmic's Substance Store.
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.
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.
This dockable bar in the graph gives you a direct and easy access to the atomic nodes:
This an alternative method gives you another way to access the atomic 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:
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.
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):
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 4 - 5
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.
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.
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.)
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:
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
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.
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.
You can import your own brush library by clicking on the Brush Library icon and chose Import Library.
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):
Usage
How to use it ?
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.
When to use it ?
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.
Blending mode
The blending mode used to composite the foreground and background inputs.
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 :
Ignore 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
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.
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 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.
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:
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
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
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:
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 ?
When to use it ?
Inputs/Outputs
Input(s)
1. Color or Grayscale
Output(s)
Specific parameters
Intensity
This value is not capped : if you need a higher intensity, just double click on the number to
manually change it.
Substance Engine 4 - 5
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):
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 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
How to use it ?
: lock/unlock the 2 bezier handlers so the user can move them together or independently.
: 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.
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
Distribute horizontally/vertically
Flip horizontally/vertically
Mirror horizontally/vertically
Outputs
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 clicking on the curve view gives you access to some alignment and distribution options:
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.
substance engine V6
The Directional Blur node blurs the input according to the intensity and angle defined in the
parameter
Usage
How to use it ?
Inputs/Outputs
Input(s):
Color or Grayscale
Output(s):
Specific parameters
Intensity
Angle
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 4 - 5
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 ?
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):
Specific parameters
Intensity
Warp Angle
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.
Usage
How to use it ?
When to use it ?
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):
Specific parameters
Color Mode
Maximum Distance
Combine Source/Distance
Defines how the source input is combined with the mask in the final result.
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 ?
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.
Input(s):
Output(s):
Specific parameters
Intensity
Light Angle
Highlight Color
Shadow Color
Defines the color of the zones that are considered as in the shadow.
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.
Usage
How to use it ?
As we said above you can achieve extremely complex and otherwise impossible stuffs with the FX-
map.
The image below for example mostly relies on the power of the FX-Map :
When to use it ?
Inputs/Outputs
Input(s):
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
Render Region
The render region will let you set the starting pixel range for each side of the FX-map, resulting a
stretching effect.
Tiling Region
The Tiling Region parameter, lets you offset the tiling distance of the FX-map.
Roughness
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
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:
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.
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 support system variables. These variables always begin with a Dollar symbol ("$"), and are as follows:
$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.
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 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.
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.
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
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.
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 Iterate node will render the nodes connected to the right output the amount of time specified by the Iterations value.
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.
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.
The Set lets you set a new variable. To do so, you just have to follow these two steps:
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.
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
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).
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 ?
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.
Once the Gradient Orientation is defined, let you choose which line in particular from the gradient
input, will be used to generate the gradient.
The Gradient node remaps the grayscale values from the input, based on a fully customizable
color or grayscale gradient.
Usage
How to use it ?
When to use it ?
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):
Output(s):
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:
The Gradient Editor is where all the settings of the Gradient node are available.
Interface
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
-Invert Positions
-Inverse Colors
-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
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
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.
As you may have guessed, the Grayscale conversion node will convert a color map into a
grayscale map.
Usage
How to use it ?
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):
Output(s):
1. Grayscale
Specific parameters
Channel Weights
Defines the influence of each channel of the color input into the final result.
Flatten Alpha
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.
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 ?
Inputs/Outputs
Input(s):
Output(s):
1. Color
Specific parameters
Hue
Saturation
Lightness
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 ?
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):
Output(s):
Specific parameters
Two different views are available to adjust the levels: the histogram view, or the value view
Let you ajust the level by moving the top and bottom arrows.
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.
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 ?
Inputs/Outputs
Input(s):
Output(s):
1. Color
Specific parameters
Intensity
Normal Format
Specify the way to generate the normal map (as openGL and DirectX interpret the green channel
the opposite way).
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):
Specific parameters
Color Mode
Clicking on the edit button will enter into the edit mode that allows you to build your function.
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.
So let's start!
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."
If you keep this sentence in mind, it will really help you understand how the pixel processor works.
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 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.
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...
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).
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
"For each pixel, catch the position coordinates of the current pixel"
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:
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:
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.
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...
Why is this so important? Because it can be the varying value for any function, which means the
root of some crazy results.
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.
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:
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).
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 ?
Inputs/Outputs
Input(s):
Output(s):
Specific parameters
Intensity
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.
Circles
Ellipses
Lines
Bitmaps
Texts
The arc directive of paths : make sure your SVG exporter does not convert
bezier segments to arcs when appropriate.
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.
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 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)
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
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 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.
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
Outputs
The text node just has one outputs that contains the generated text.
Output type:
Specific parameters
Color Mode
Text
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 6
Transform 2D node
Presentation
The Transform 2D node allows you to move, rotate and scale the input image.
Usage
How to use it ?
When to use it ?
Use it anytime you need to ajust your image position, rotation or scale.
Inputs/Outputs
Input(s):
Output(s):
Specific parameters
Transformation Matrix
Offset
MipMap Mode
Matte Color
Filtering
Substance Engine compatibility
Usage
How to use it ?
When to use it ?
Inputs/Outputs
Input(s):
None
Output(s):
Specific parameters
Color Mode
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:
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.
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 ?
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):
Output(s):
1. Color
Specific parameters
Intensity
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.
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.
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
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):
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
Description
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")
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.
Usage
How to use it ?
When to use it ?
Inputs/Outputs
Input(s)
Output(s):
None
Description
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
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".
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.
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
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
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
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
In: Generators/Noises
Simple
Description
Parameters
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
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
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.
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.
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.
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
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
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
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
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
Example Images
Fractal Sum 2
Fractal Sum 2
In: Generators/Noises
Simple
Description
Parameters
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
Example Images
Fractal Sum 4
Fractal Sum 4
In: Generators/Noises
Simple
Description
Parameters
Example Images
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
Example Images
Fur 1
Fur 1
In: Generators/Noises
Simple
Description
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
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
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
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
Example Images
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
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
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
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
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.
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.
Parameters
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
Example Images
Alveolus
Alveolus
In: Generators/Patterns
Simple
Description
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
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
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
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
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
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
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...
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
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...
Example Images
Splatter Circular
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
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
Parameters
Example Images
Starburst
Starburst
In: Generators/Patterns
Intermediate
Description
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
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!
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
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
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
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
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
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
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
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.
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...
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
Parameters
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.
Parameters
Click here to expand parameters...
Inputs
Parameters
Example Images
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
Example Images
Contrast/Luminosity
Contrast/Luminosity (Grayscale)
In: Filters/Adjustments
Simple
Description
Parameters
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
Convert to sRGB
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
In: Filters/Adjustments
Simple
Description
Advanced, quick grayscale conversion node that offers a few preset conversion modes.
Parameters
Example Images
In: Filters/Adjustments
Simple
Description
Debug tool to check exact areas with High Dynamic Range. Both Color and Grayscale versions exist.
Parameters
Example Images
Simple
Description
Separates a Heightmap's frequencies into two separate maps: one with large-scale differences and one with small-scale differences.
Parameters
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
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
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
Example Images
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
Parameters
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
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
Example Images
Invert
Invert (Grayscale)
In: Filters/Adjustments
Simple
Description
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
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
Example Images
In: Filters/Adjustments
Simple
Description
Parameters
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
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
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...
Example Images
Replace Color
Replace Color
In: Filters/Adjustments
Simple
Description
See Replace Color Range or Color Match for more advanced versions.
Parameters
Example Images
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
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.
Difference
Switch
Multi Switch
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
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
Parameters
Example Images
Color Dodge
Color Dodge
In: Filters/Blending
Simple
Description
Parameters
Inputs
Parameters
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
Parameters
Dissolve
Dissolve
In: Filters/Blending
Simple
Description
Blends two inputs together with White Noise as mask for the transition.
Parameters
Inputs
Parameters
Example Images
Linear Burn
Linear Burn
In: Filters/Blending
Simple
Description
Inputs
Parameters
Example Images
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
Parameters
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
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
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!
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
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
Example Images
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
Parameters
Example Images
Below example is driven by a gradient ramp (at 90 degrees) in the Blur Map slot.
Radial Blur
In: Filters/Blurs
Simple
Description
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
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
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.
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
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
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
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
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
Straight to Pre-multiplied
Straight to Pre-multiplied
In: Filters/Channels
Simple
Description
Parameters
No Parameters.
Example Images
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
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
Example Images
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
Example Images
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
Parameters
Example Images
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
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
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
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
Example Images
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
Parameters
Example Images
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
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
Example Images
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
Example Images
Flood Fill to Position
In: Filters/Effects
Simple
Description
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
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
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
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
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
Example Images
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
Example Images
Shape Glow
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
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.
Parameters
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
Parameters
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
Parameters
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
Parameters
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.
Normal Combine
Normal Sobel
Normal Normalize
Facing Normal
Facing Normal
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
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
Parameters
Example Images
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
Example Images
Normal Blend
Normal Blend
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
Parameters
Example Images
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
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
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
Example Images
Normal Normalize
Normal Normalize
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
Normal Sobel
Normal Sobel
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
Example Images
Normal to Height
Normal to Height
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
Normal To Height HQ
Normal To Height HQ
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
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.
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.
Parameters
Click here to expand parameters...
Example Images
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
Example Images
Transforms
This category contains a large number of advanced transformation nodes for single-channel inputs.
Mirror
Symmetry
Safe Transform
Noise Upscale 1
Cartesian To Polar
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
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.
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
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
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
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
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
No Parameters.
Example Images
Safe Transform
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
Non-Square Transform
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
Parameters
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.
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
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
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.
Height Blend
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
Parameters
Example Images
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
Season Filter
Season Filter
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
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
Snow Cover
Snow Cover
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
Water Level
Water Level
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
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
Transforms (Material)
This category contains nodes intended to transform full multi-channel materials. Right now it includes only Material Transform.
Material Transform
Material Transform
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
Example Images
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.
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
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
Material Blend
Material Blend
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
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
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
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
Material Switch
Material Switch
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
Multi-Material Blend
Multi-Material Blend
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
Parameters
Example Images
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.
Base Material
PBR BaseColor / Metallic Validate
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
Example Images
Base Material
Base Material
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
Example Images
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
Example Images
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
Example Images
PBR Dielectric F0
PBR Dielectric F0
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.
Example Images
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
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.
Clone Patch
Multi Crop
Smart Auto Tile
AO Cancellation
AO Cancellation
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
Example Images
Clone Patch
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...
Example Images
Color Equalizer
Color Equalizer
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
Parameters
Example Images
Crop
Crop (Grayscale)
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
Example Images
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
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
Material Crop
Material Crop
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.
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
Multi-Angle to Albedo
Multi-Angle to Albedo
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
Parameters
Samples Amount: 2 - 8
Sets the number of samples (inputs) to use in processing.
Example Images
Multi-Angle to Normal
Multi-Angle to Normal
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
Parameters
Example Images
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
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.
Parameters
Click here to expand parameters...
Inputs
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
Multi Crop
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.
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
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
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.
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.
Dripping Rust
Edge Damages
Bottom To Top
Mask Builder
Bottom To Top
Bottom To Top
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
Parameters
Example Images
Cloth Wear
Cloth Wear
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
Parameters
Example Images
Dirt
Dirt
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
Parameters
Example Images
Dripping Rust
Dripping Rust
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
Parameters
Dust
Dust
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
Parameters
Edge Blur
Edge Blur
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
Parameters
Example Images
Edge Damages
Edge Damages
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
Parameters
Example Images
Edge Dirt
Edge Dirt
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
Parameters
Example Images
Edge Notch
Edge Notch
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
Parameters
Example Images
Edge Select
Edge Select
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
Parameters
Example Images
Edge Speckle
Edge Speckle
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
Parameters
Example Images
Edge Wear
Edge Wear
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
Parameters
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
Parameters
Example Images
Grease
Grease
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
Example Images
Ground Dirt
Ground Dirt
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
Parameters
Leaks
Leaks
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
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
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
Parameters
Example Images
Light
Light
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
Example Images
Mask Builder
Mask Builder
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
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
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
Parameters
Example Images
Paint Wear
Paint Wear
Intermediate
Description
Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.
Parameters
Click here to expand parameters...
Inputs
Parameters
Example Images
Selective Dirt
Selective Dirt
Simple
Description
Generates a black and white mask based on baked maps and user settings. Similar to Smart Masks in Painter.
Inputs
Parameters
Example Images
Sun Bleach
Sun Bleach
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
Parameters
Example Images
Surface Brush
Surface Brush
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
Parameters
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
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
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
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
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
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
Complex
Description
Parameters
Click here to expand parameters...
Inputs
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
Moss Weathering
Moss 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
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
Complex
Description
Parameters
Click here to expand parameters...
Inputs
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
Complex
Description
Parameters
Click here to expand parameters...
Inputs
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
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
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
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
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
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
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.
Example Images
Tri Planar
Tri Planar (Grayscale)
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
Parameters
Example Images
Node Template
Simple
Description
Usage Tips
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
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:
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 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.
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".
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.
Navigation is similar
In the function graph, you can create and organize your nodes the same way you would do in a
regular graph.
And as you would expect, the output will either define the value of the parameter or the output of
the pixel processor node.
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:
To define the output, just right-click on the node that generates the expected output, and click on S
et as Output node:
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:
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:
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.
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.
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).
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.
The result is
always a value
between 0 and 1.
If used in the
"Output Size"
parameter (relative
to input), returns
the size on the
previous node.
If used in the
"Output Size"
parameter (relative
to input), returns
the size on the
previous node.
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.
(Note that
$number starts
counting from 0,
not 1.)
Samplers Sample Grey Vector Float2 Float4 Returns the greyscale value
of an input image at the
given UV coordinates (float2)
Operator Add Vector Float / Integer Type of a & b Adds 2 values of the same
type: a + b
Dot Product Vector Float Type of a & b Returns the dot product of 2
values of the same type: dot
(a, b)
Arc Tangent 2 Vector Float2 Float1 Returns the arc tan 2 value
of a vector2 entry: arctan2
(xa, ya)
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):
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.
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.
The built-in variables always begin with a Dollar symbol ("$"), and are as follows:
$pos Quadrant Nodes only float2 Returns the birth position of the
pattern. The result is always a value
between 0 and 1.
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.
There is different kinds of Get nodes: choose the right one according of the type of value you want to import:
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).
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
(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.
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.
Filtering Mode
Bilinear or Nearest
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:
Logical nodes
Logical nodes are used to add multiple conditions to your graph:
The Or node
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 takes a Boolean as input: it will will look at the input value and return its opposite:
Comparison nodes
Comparison nodes compares the the result of the upper input, to the the result of the lower input.
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.
This variable can then be catched and used into another graph but with some restrictions:
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.
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.
Folder: if linked, let you specify where the maps have to be stored
Place resource into a mesh specific folder: if checked, does exactly what it's saying.
Add High definition model: once clicked, let you choose a high res mesh:
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 low as high definition: if checked, the low res will be projected on itself.
Dilatation width (px): defines the width used for the padding
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
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 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.
Ambient Occlusion is not supported on some GPUs. Baking at high resolution on low end / mobile GPUs can lead the application to
crash.
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.
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.
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.
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
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
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
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
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.
Curvature
The curvature baker allows you to extract curvature map. This kind of map is often called "cavity map" as well.
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
Seams intensity: set the intensity of the seams. This works only if the option "Enable Seams" is checked
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.
1: Scene
Let you define which part of the mesh is involved in the baking process.
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 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
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:
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.
Specific Parameters:
This baker has no specific parameters.
Position
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:
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).
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
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
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.
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".
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.
Direction File: select the texture file if the direction should come from a texture.
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.
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)
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.
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
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:
Attributes
MDL Annotations
Graph Inputs
Attributes
Category
Show in Library
Icon
MDL Annotations
This is the section where the parameters exposed by the user will appear:
Pins shapes
Square shape: varying value
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)
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.
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:
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.
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.
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!
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.
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.
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.
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.
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.
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.
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
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:
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>
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.
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:
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:
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.
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.
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.
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.
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:
XML modification
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.
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.
SetConfigurationFile.py
import xml.etree.ElementTree as ElementTree
import os
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
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.
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.
SetShortcutConfigurationFile.py
coming soon!
Tutorials
Working with templates
Fx-Map : using vector maps
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.
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:
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.
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
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
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.
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
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
Tout télécharger