Learn about terms and concepts used in Designer.
#
A collection of objects and data involved in representing and animating a visualisation of 3D space:
Popular file formats to store 3D scenes include Pixar’s USD and Autodesk’s FBX. All file formats do not support all these components
A
Anisotropic materials have a different look depending where they are looked from, and anisotropic filters are not applied uniformally in all directions.
An API provides a controlled and secure layer between the user and a program. It may also use another programming language to make that program easier to interact and more widely accessible.
Designer offers a Python API which provides easy access to a wide range of its capabilities for manipulating data, building custom tools and accelerating workflows.
Each graph type has its own set of atomic nodes.
B
These include core aspects of the bitmap, such as its resolution (Output size) and bit depth (Output format), or how the bitmap is computed such as tiling mode.
Base parameters are often inherited from other nodes upstream or the graph hosting the node.
For instance, this may occur when an image is enlarged.
Different bit depths are available depending on the type of the value: - Integer values can be encoded using 8 bits (0 to 255) or 16 bits (0 to 65,535). - Floating point values can be encoded using 16 bits (+32767.9999 to -32768.0 ) or 32 bits (-3.4E+38 to +3.4E+38)
Low dynamic range images use integer values to encode steps from 0 to 1. High dynamic range images use floating point values to encode raw numerical values.
In Substance graphs, bit depth is controlled by the Output Format parameter.
A digital image. Two types of images are most common:
- Grayscale images have only one channel: luminance (L);
- Color images have three channels: red, green and blue (RGB). A fourth one may be present: alpha (A) which is often used for opacity. Color images in Designer are always RGBA.
Bitmaps may be thought of as grids of values. Each cell of that grid is a pixel, which is short for ‘picture element’. A pixel stores one value per channel. The type of that value depends on the bit depth of the bitmap.
C
Cache greatly speeds up graph computations by letting the Substance Engine only recompute the parts of a graph that have changed. When tweaking node connections and parameters, all the nodes that precede it are not impacted by those changes, thus do not need to be evaluated again to update the graph. Their cache is used instead.
The cache can have a significant memory footprint when working with high resolutions and bitdepths in large graphs.
For instance, an RMA texture is a roughness map ®, metalness map (M) and ambient occlusion map (A) all packed into a single color texture.
Another common technique is packing a grayscale texture into the blue channel of a normal map, as the blue channel – I.e., the ‘Up’ component of the normal vector – can be recomputed at runtime.
The RGBA merge node is useful for implementing this technique.
Digitally encoding and decoding a specific color requires such a definition to make sense of the numbers used.
An image file stores color values using a specified color space, so that these colors can be reproduced faithfully on a display that supports that color space. A display has specific color reproduction capabilities that allow it to fully or partially support a given color space.
Raw data – E.g. a normal map – is always encoded and decoded in a Linear color space because these colors are not meant to be visualised and no transformations should be applied to that data.
sRGB is a widely supported color space. Others popular color spaces include Adobe RGB, Rec. 2100 and ProPhoto RGB.
Computing the result of a Substance graph requires compiling it first. Compilation is part of the graph evaluation process.
This compilation is performed on a flattened graph, which means all instance nodes are ‘replaced’ by their source graphs so that one larger graph remains, and that graph is what is compiled.
A compiled graph is not editable. Exposed parameter remain available if they are dynamic, while static parameters are locked and hidden.
This may include objects or polygons outside of the camera’s frustum (frustum culling), facing the oppsite way from the camera (backface culling) or completely hidden by other opaque objects (occlusion culling).
D
A dependency of a package can be another package because it references a graph inside it, an image file, a font, etc.
A package stores the path to its dependency, and a warning is raised if the dependency cannot be found at that path. Missing dependencies can also result in ghost instance nodes in a graph.
It should not be confused with Base color (Albedo).
Direct3D places the origin of a texture – I.e., its (0, 0) coordinate – at the top left, (Y-down) whereas the OpenGL API places it at the bottom left (Y-up).
This means a DirectX normal map has an inverted green channel compared to OpenGL. Indeed, the green channel hosts the normal vectors’ Y-coordinate.
Displacement is often used in combination with tessellation and normal maps to model finer detail on a surface.
This includes exposed parameters, any parameters impacted by an exposed parameter, and any parameter value that is impacted by sampling in a texture.
Contrarily to static parameters, the value of dynamic parameters can be adjusted on the fly after the graph is compiled into an SBSAR file.
E
In the Graph View, a connection is represented with a dotted line when it is not evaluated.
Evaluation turns connection into solid lines.
Every time a parameter is adjusted in a graph, the node hosting this parameter and all nodes downstream are invalidated and need to be re-evaluated before being rendered.
F
G
Ghost instance nodes are restored to their expected state by resolving the missing dependency and reloading the package.
High glossiness results in a smooth look, while low glossiness results in a rough, matte look.
It is the inverse of Roughness.
H
This population is visualized using vertical bars where a value more present in the image results in a higher bar for that value.
The bars are distributed horizontally from low values (dark) to high values (bright).
Histograms of color images usually overlap the histograms of each of their channels – typically R, G, B.
I
Inherited parameters include resolution (Output size), bitdepth (Output format) and tiling mode.
Learn more about inheritance in this dedicated page.
The instance node applies its own set of values for the input parameters of graph A in the context of graph B. In that sense, graph B can host multiple instance node that all reference graph A, but each pass different values or textures as inputs into graph A.
All nodes in Designer’s Library that are not atomic nodes are instance nodes.
M
The collection of properties and behaviours of matter in space, which includes surfaces and volumes.
The appearance of an entity in 3D space is defined by its material.
Materials may be defined in various ways, and all definitions do not support all properties such as refraction, anisotropy or sheen. A shader is a particular implementation of a material definition.
Important: The term ‘material’ is an umbrella term used to refer to various things, including:
The appearance of these surfaces is defined by the material assigned to them.
The level of detail of a mesh is also highly dependent on its polycount.
Common metadata include the file’s author, creation and modification dates, copyright and cover art.
In Designer, the contents of a package can also have metadata. For instance, a Substance graph generating a fabric material may have metadata for the fabric’s physical properties.
A texture can have a pyramid of smaller versions of itself, which are interchangeable at runtime so that the most appropriate size is used for optimal quality and performance.
For instance, a texture with high-frequency detail displayed at a smaller size will likely produce moiré artifacts. Additionally, a larger texture likely involves more texture samples.
The term ‘mipmap’ originates from the MIP mapping technique, where MIP stands for the latin ‘multum in parvo’, which means ‘many things in a small place’.
N
The result is controlled using input parameters. These parameters can be listed as controls in the Properties dock, or as input connectors on the node itself.
There are two main categories of nodes: atomic nodes and instance nodes.
Designer’s node library includes a large collection of noise generators, such as BnW Spots, Clouds, Perlin noise or Voronoi.
This vector represents the orientation of a surface in 3D space and is used for shading that surface according to the scene’s lights and camera perspective.
A normal map texture can be applied to a surface to modify its normals and add detail.
It is most often used to fake details that would be inefficient to include in a model’s geometry. Using such a map allows to have per-texel normals in addition to per-vertex normals, resulting in more surface information and thus more surface detail.
The X, Y and Z coordinates of the normal vectors are encoded into the map’s red, green and blue channels respectively. Depending on the targeted graphics API (DirectX or OpenGL), the green channel may be inverted.
For vectors, normalization is adjusting the vector’s length (or ‘magnitude’) to a value of 1.0.
O
OpenGL places the origin of a texture – I.e., its (0, 0) coordinate – at the bottom left, (Y-up) whereas the DirectX API places it at the top left (Y-down).
This means an OpenGL normal map has an inverted green channel compared to DirectX. Indeed, the green channel hosts the normal vectors’ Y-coordinate.
Learn more about Output size in this dedicated page.
P
A package also stores paths to its dependencies as well as metadata.
In most cases, a pattern is an image meant to be repeated (E.g., tiled, scattered randomly or arranged according to some set of rules).
The parameter is used by non-local filters – I.e., filters which use the values of neighbouring pixels to compute the value of a pixel.
It acts as multiplier for non-local filters – I.e., filters which use the values of neighbouring pixels to compute the value of a pixel.
More polygons can model finer detail. Meshes with a low polycount are called ‘low-poly’, while higher polycounts are called ‘high-poly’.
The primary input is marked with a small dot in its connector, and the '(Primary) suffix in its label.
When using nodes with more than one input, it is strongly recommended to be mindful of which of their inputs is the primary and how it impacts inheritance throughout the graph.
Designer uses a procedural workflow where the algorithm is designed as a node graph.
Procedural workflows allow for faster iterations because variations and adjustments can be quickly generated by modifying the algorithm and its parameters.
When the result is entirely produced by the algorithm, that result is colloquially referred to as being ‘100% procedural’. Procedural generation is sometimes shortened to ‘proc-gen’.
Most generators in Designer’s node library are 100% procedural in that they require no input image to produce a result.
The resulting SBSAR file may then be distributed and used in other Substance 3D applications or third-party applications through a Substance 3D plugin.
R
In Substance graphs, the resolution of a bitmap computed by a node is controlled by the node’s ‘Output size’ base parameter.
High roughness results in a matte look, while low roughness results in a smooth, glossy look.
It is the inverse of Glossiness.
S
SBSAR is the main file format used to distribute Substance graphs that are ready to be consumed by other Substance 3D applications and Substance 3D plugins.
Since the graphs stored in SBSAR files are compiled, they cannot be loaded and edited in Substance 3D Designer. SBSAR files may however be opened using 7Zip to retrieve their parameters, presets and metadata in an embedded XML file.
A shader is a particular implementation of a material definition.
Textures may be provided to a shader to drive its behaviour. Raw values may also be used.
In the 3D view, go to the ‘Materials’ menu to see which shader is being used by a material in the current scene. The menu also lets you access the shader properties and which textures and values are currently being used by the shader.
‘Shader’ is sometimes used interchangeably with ‘Material’.
This term is widely used in the textile industry to describe a reflective property which adds a subtle colored brightness.
A signed distance field is a mathematical function that defines a surface in 3D space by calculating the distance from any point in space to the nearest point on the surface.
Learn more about the concept and how it is used in Designer here: Working with SDF functions.
Splines offer intuitive controls for length and trajectory, include other data such as thickness and height, and provide easy access to distance and direction at any point along them.
These qualities make them a powerful tool for drawing and texturing.
Contrarily to dynamic parameters, static parameters cannot be changed on the fly when the graph is compiled into an SBSAR file.
They can be exposed and modified in Designer only as the graph is being authored.
Preview Mode will hide these parameters in some cases, since it aims to match the behaviour of published SBSAR files as closely as possible.
A list of static parameters is available here.
The Substance Engine implements and computes Designer’s atomic nodes.
The engine is implemented through different backends, according to the platform it runs on: CPU, GPU and operating system. In Designer, the backends can be switched by going to Tools > Switch engine.
Some backends offer significantly better performance than others – E.g., GPU backend is much faster than CPU – and the results may be slightly different across backends.
A Substance graph may be used for various purproses: - Produce a set of bitmaps that are textures describing a material; - Perform image processing on one or more bitmap inputs, as a filter; - Generate noises, patterns or raw data, as a generator.
T
This process can be performed at runtime to dynamically increase the amount of polygons of a 3D model, often in combination with displacement and normal maps to model finer detail using the added polygons.
Textures are objects that can be decompressed and manipulated very efficiently by GPUs. In most cases, this efficiency requires textures to use power of two resolutions — E.g., 1024x1024, 4096x4096, 512x256, etc.
Acquiring the value of a texture at a specific location.
Some algorithms require many samples to be performed for comparing values, averaging them, or other operations.
If a sample is not performed at exactly the center of a pixel, there are two options in Designer for the value which should be acquired:
- Nearest: The value of the nearest pixel according to its center
- Bilinear filtering: The value of the interpolation between the neighbouring pixels horizontally and vertically, where closer pixels have more weight.
U
When applying a Substance graph to the 3D view, all the outputs are connected to the shader based on matching usages. I.e., ‘basecolor’ to ‘basecolor’, ‘roughness’ to ‘roughness’, and so on.
Usages are also used to match connectors when using the ‘Material’ and ‘Compact Material’ link creation modes.
UDIM workflows are commonplace in VFX pipelines, where high-fidelity assets require so much detail that multiple high-resolution textures are required. In that case, the asset’s UVs are arranged across multiple UDIM (or UV tiles).
Designer supports UDIM workflows and can assign a different Substance graph per UDIM.
USD files include the definition of data used in a scene, as well as the composition of that scene and all it involves: models, materials, cameras, animations, simulations, etc.
A USD file may include any type of data, provided that the application has access to the USD plugin which lets it read and use that data correctly.
Adobe is involved in the Alliance for OpenUSD, a consortium of 3D industry actors which actively contribute to the development and standardization of the format.
The process of creating UVs is often described as cutting seams into the model to unfold and flatten it.
V
In a mesh, vertices are connected by edges to form polygons.
X
Similarly to HTML, data defined using tags (<>) and values are enclosed within tags.
The SBS file format uses XML to arrange and store its data.