The 3D Handbook
Topic

Procedural materials (node-based)

Building materials from connected nodes instead of painting pixels, in Substance 3D Designer, InstaMAT, Material Maker, Blender shader nodes or the Unreal material graph; exposed parameters, SBSAR files, and when to bake versus compute in the shader.

texturingproceduralsubstance-designermaterialsnodes

A procedural material is built from a graph of connected nodes, each doing one small operation (make a shape, blur, warp, blend, colour), instead of being painted pixel by pixel. Change a value early in the graph and everything after it updates. Adobe describes Substance 3D Designer as having "a heavy focus on procedural generation, parameterization and non-destructive workflows" (Substance 3D Designer documentation: Substance 3D Designer overview).

"Procedural" describes how the material is made. The result is usually still a set of ordinary textures, used as a tileable, a trim sheet or a decal. See ways to texture an environment.

#Why build materials from nodes

#How a graph is structured

A node graph read left to right. A shape node and a tile sampler node make a pattern; a noise node and a warp node add variation; a blend node combines them into height. From height, nodes produce a normal map, a curvature-style mask and an ambient occlusion map. A gradient map node turns masks into base colour; a levels node turns masks into roughness. Two exposed parameter sliders, "stone size" and "moss amount", connect to the tile sampler and to a blend node.
A simplified graph. Height is built first; every other output is derived from it. Exposed parameters (orange) become sliders in other apps.Diagram by the handbook author

Most graphs follow the same logic:

  1. Pattern: shapes placed by a scatter or tile node. Daniel Thiger's fundamentals course is built around the Tile Sampler, Designer's main scatter node (Gumroad: Tutorial | Fundamentals Part 1: Pattern…).
  2. Height: pattern plus warps and noises, from large forms to small. Margot Casiro: the heightmap is "what will drive absolutely everything else" (80 Level: 001AGT: Learning Substance Designer…).
  3. Masks: extracted from the height at each stage.
  4. Outputs: colour via gradient maps, roughness via levels, normal and AO from height.
  5. Parameters: the values you want others to change.

Adobe's own First Steps tutorial follows this order, ending with "exposing parameters" and a complete PBR material (Adobe Learn: First Steps with Substance 3D Designer).

#The tools

Tool What it is Notes
Substance 3D Designer (Adobe) "a Node-based editor" for materials, the industry standard (Substance 3D Designer documentation) Publishes .sbsar archives
InstaMAT (Abstract) Graph editor for "generative materials and powerful pipelines", plus layer painting (instamaterial.com) Free Pioneer licence for individuals or businesses under $100,000 revenue or funding
Material Maker "The open source procedural materials authoring tool", over 200 nodes (materialmaker.org) Exports PBR materials for Godot, Unity and Unreal
Blender shader nodes "Materials, lights and backgrounds are all defined using a network of shading nodes" (Blender Manual) Procedural textures render live; bake them to images for games
Unreal Engine material graph Node-based Material Editor; nodes are "Material Expressions and Functions" (Unreal Engine documentation) Computed in the shader at runtime; instances make variants without recompiling

Designer, InstaMAT and Material Maker are texture generators: they output images. Blender's and Unreal's graphs are shaders: they compute the surface when it is rendered. The difference affects performance in games.

#Bake to textures, or compute in the shader?

A texture generator's graph can be hundreds of nodes, because you only pay the cost once, when you export. A shader graph runs for every pixel on screen every frame, so it has to stay cheap. See shaders for artists and master materials and instances.

So the usual split is:

Blender's procedural textures work in Blender renders, but game engines cannot read them. Bake them to image textures before export (see baking).

#SBSAR files and parameters

Designer publishes graphs as SBSAR (Substance Archive) files, which Adobe calls "compiled, optimized" files that calculate faster and are easy to share, adding "you'll export to SBSAR if the target supports it" (Substance 3D Designer documentation: Substance 3D Designer overview).

An SBSAR keeps the parameters you exposed. Other apps show them as controls:

#How to make one

The steps below build a parametric cobblestone floor in Substance 3D Designer, 2 × 2 m at 2048 px, published as an SBSAR with four exposed parameters. The structure follows "How a graph is structured" above.

  1. Set up the graph. Create a new graph at 2048 × 2048 px with the outputs you need (base colour, normal, roughness, AO, height). Write the world size, 2 × 2 m, in the graph's description.
  2. Make the pattern. Use a Tile Sampler with a rounded shape to place about 12 × 12 stones, so each one is roughly 17 cm across. Randomise size, position and rotation a little. Thiger's fundamentals course is built around this node (Gumroad: Tutorial | Fundamentals Part 1: Pattern…).
  3. Build the height, large to small. Give each stone its own height and slope, then warp the edges, then add chips and fine noise. Check the height on its own in greyscale before you touch colour (80 Level: 001AGT: Learning Substance Designer…).
  4. Extract masks. Take a gap mask between stones, an edge mask from curvature, and a per-stone random value from a Flood Fill node, as in Sobotta's river rock graphs (ArtStation: River Rock Breakdown).
  5. Make colour and roughness from the masks. Feed the masks into gradient maps for base colour and into levels for roughness. Derive normal and AO from the height.
  6. Expose parameters. Expose stone size (tile count), gap width, moss amount and random seed, with sensible ranges and clear names. Adobe's First Steps tutorial ends with this step (Adobe Learn: First Steps with Substance 3D Designer).
  7. Test the variants. Make three variants with only the exposed sliders (dry, mossy, larger stones). If one needs an internal change, the parameter is missing.
  8. Publish. Publish an SBSAR to load it with its sliders in Unreal, Unity or Painter (Substance 3D Designer documentation: Substance 3D Designer overview; adobe.com: Substance 3D for Unreal Engine), or export the variants as textures for engines without the plugin.

#Video tutorials

#Use in recent games

A production graph broken into stages: pattern inputs, sculpting and grout. The same graph was reused for other patterns and trims.Jared Sobotta, via ArtStation
Seven Atlas Scatter nodes place sculpted rocks from largest to smallest. Procedural placement, hand-sculpted shapes.Jared Sobotta, via ArtStation
A greyscale split into one channel for seasonal colour and one for leaf damage, generated in Designer so LUTs can recolour the foliage per season.Théophile Lebeau, via ArtStation

#Further reading and watching

References

  1. Adobe · Substance 3D Designer overview · Substance 3D Designer documentation · docs · accessed 2026-10-21
  2. Nathan Mackenzie (interviewed by Kirill Tokarev) · Advanced Materials with Substance · 80 Level, 2017 · article · accessed 2026-10-21
  3. Sebastien Deguy (Allegorithmic), Rogelio Olguin and Bradford Smith (Naughty Dog) · Texturing Uncharted 4: a matter of Substance · GDC Vault, 2016 · talk · accessed 2026-10-21
  4. Jared Sobotta · Brick and Concrete Generator · ArtStation, 2023 · web · accessed 2026-10-21
  5. Jared Sobotta · River Rock Breakdown · ArtStation, 2023 · web · accessed 2026-10-21
  6. Daniel Thiger · Tutorial | Fundamentals Part 1: Pattern Creation and Natural Scattering · Gumroad · course · accessed 2026-10-21
  7. Margot Casiro (Ubisoft Montpellier) · 001AGT: Learning Substance Designer — Heightmap, Basecolor, Masks · 80 Level · article · accessed 2026-10-21
  8. Adobe · First Steps with Substance 3D Designer · Adobe Learn · course · accessed 2026-10-21
  9. Abstract · InstaMAT · instamaterial.com · tool · accessed 2026-10-21
  10. Material Maker project · Material Maker · materialmaker.org · tool · accessed 2026-10-21
  11. Blender Foundation · Shader Nodes: Introduction (manual source) · Blender Manual (source repository) · docs · accessed 2026-10-21
  12. Epic Games · Unreal Engine Materials · Unreal Engine documentation · docs · accessed 2026-10-21
  13. Adobe · Substance 3D for Unreal Engine · adobe.com · tool · accessed 2026-10-21
  14. Adobe · Changing parameters (Substance 3D for Unity) · Substance 3D integrations documentation · docs · accessed 2026-10-21
  15. Adobe Substance 3D · The Material Art of The Last of Us | Substance Days at GDC 2023 | Adobe Substance 3D · YouTube, 2023 · video · accessed 2026-10-22
  16. Pierre Bosset (Adobe), with Alan Reynaud and Carla Deveze (Sandfall Interactive) · How Substance 3D Powered the Art of Clair Obscur: Expedition 33 · No Film School (first published on the Adobe blog, 16 October 2025), 2025 · article · accessed 2026-10-22
  17. Théophile Lebeau · Assassin's Creed Shadows: Foliage · ArtStation · web · accessed 2026-10-22
  18. Tsvetelina Valkanova (Ubisoft Sofia) · A Look at the Material Workflow in Assassin's Creed Valhalla · 80 Level · article · accessed 2026-10-21
  19. JamesRay, Dreyzie and others · Kinmel Hall UE4 Environment Study · Polycount, 2019 · forum · accessed 2026-10-21
  20. Adobe · Getting Started with Substance 3D Designer · Adobe Learn · course · accessed 2026-10-21

Last updated 2026-10-22