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.
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
- Non-destructive. Adobe says "you can reverse any action without losing any of your work" (Substance 3D Designer documentation: Substance 3D Designer overview).
- Variants from one graph. Designer lets you "control nearly any aspect of a texture through a single slider or dropdown" (Substance 3D Designer documentation: Substance 3D Designer overview). Nathan Mackenzie describes a rock material that can be changed "with just a few sliders and in just a few seconds" and reused from jungle to tropical scenes (80 Level: Advanced Materials with Substance).
- Consistency across a team. Shared graphs and node libraries keep materials in one style. Naughty Dog's GDC 2016 talk covers the goals and evolution of the studio's Substance pipeline on Uncharted 4, from adopting physically based rendering to managing content (GDC Vault: Texturing Uncharted 4: a matter of Substance).
- Resolution independence. The graph can be re-exported at any resolution.
#How a graph is structured
Most graphs follow the same logic:
- 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…).
- 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…).
- Masks: extracted from the height at each stage.
- Outputs: colour via gradient maps, roughness via levels, normal and AO from height.
- 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:
- Author the material in Designer, InstaMAT or Material Maker and export textures.
- Combine and vary those textures in the engine's material graph: tiling, blending layers, vertex colour masks, detail maps and macro variation, triplanar and world-aligned mapping.
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:
- Unreal Engine: Adobe's plugin lets you "Tweak SBSARs directly in Unreal Engine" (adobe.com: Substance 3D for Unreal Engine).
- Unity: parameters "are accessible on the Substance Graph Object", the control type matches the parameter type, and a Random Seed button creates "a new result for the computed texture based on the seed value" (Substance 3D integrations documentation: Changing parameters).
- Substance 3D Painter: SBSAR materials appear as layers with their sliders.
#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.
- 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.
- 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…).
- 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…).
- 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).
- 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.
- 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).
- 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.
- 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
- Clair Obscur: Expedition 33 (Sandfall Interactive, 2025). Lead environment artist Carla Deveze says the team used "Substance 3D Designer when we needed to create tileable or more complex materials", alongside smart materials in Painter (No Film School: How Substance 3D Powered the Art of Clair…).
- Assassin's Creed Shadows (Ubisoft, 2025). Théophile Lebeau baked foliage high polys in Substance Designer into masks for roughness, normals and translucency, created seasonal LUTs in Designer and built a procedural damage tool so leaf damage stayed consistent (ArtStation: Assassin's Creed Shadows: Foliage).
- The Last of Us Part I (Naughty Dog, 2022). One brick graph produced other patterns, trims and formed concrete, and river rock graphs scattered sculpted rocks with seven Atlas Scatter nodes (ArtStation: Brick and Concrete Generator; ArtStation: River Rock Breakdown). See the example above.
- Assassin's Creed Valhalla (Ubisoft, 2020). Bark and root textures were built in Designer with what Tsvetelina Valkanova calls a "really simple" process, while stone textures started as ZBrush sculpts baked into Designer (80 Level: A Look at the Material Workflow in Assassin's…).
- Uncharted 4: A Thief's End (Naughty Dog, 2016). Naughty Dog's GDC 2016 talk covers the goals and evolution of the studio's Substance pipeline, from adopting PBR to managing content (GDC Vault: Texturing Uncharted 4: a matter of Substance).
#Further reading and watching
References
- · Substance 3D Designer overview · Substance 3D Designer documentation · docs · accessed 2026-10-21
- · Advanced Materials with Substance · 80 Level, 2017 · article · accessed 2026-10-21
- · Texturing Uncharted 4: a matter of Substance · GDC Vault, 2016 · talk · accessed 2026-10-21
- · Brick and Concrete Generator · ArtStation, 2023 · web · accessed 2026-10-21
- · River Rock Breakdown · ArtStation, 2023 · web · accessed 2026-10-21
- · Tutorial | Fundamentals Part 1: Pattern Creation and Natural Scattering · Gumroad · course · accessed 2026-10-21
- · 001AGT: Learning Substance Designer — Heightmap, Basecolor, Masks · 80 Level · article · accessed 2026-10-21
- · First Steps with Substance 3D Designer · Adobe Learn · course · accessed 2026-10-21
- · InstaMAT · instamaterial.com · tool · accessed 2026-10-21
- · Material Maker · materialmaker.org · tool · accessed 2026-10-21
- · Shader Nodes: Introduction (manual source) · Blender Manual (source repository) · docs · accessed 2026-10-21
- · Unreal Engine Materials · Unreal Engine documentation · docs · accessed 2026-10-21
- · Substance 3D for Unreal Engine · adobe.com · tool · accessed 2026-10-21
- · Changing parameters (Substance 3D for Unity) · Substance 3D integrations documentation · docs · accessed 2026-10-21
- · The Material Art of The Last of Us | Substance Days at GDC 2023 | Adobe Substance 3D · YouTube, 2023 · video · accessed 2026-10-22
- · 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
- · Assassin's Creed Shadows: Foliage · ArtStation · web · accessed 2026-10-22
- · A Look at the Material Workflow in Assassin's Creed Valhalla · 80 Level · article · accessed 2026-10-21
- · Kinmel Hall UE4 Environment Study · Polycount, 2019 · forum · accessed 2026-10-21
- · Getting Started with Substance 3D Designer · Adobe Learn · course · accessed 2026-10-21
Pages that link here
- Roles in 3D game production Topic
- Texturing and material software Reference
- Procedural modeling Topic
- Modeling rocks, trees and terrain pieces Topic
- Primary, secondary and tertiary forms Topic
- Sculpting rocks and cliffs Guide
- Tileable sculpts Guide
- Baking Topic
- Height and displacement maps Key term
- Bit depth and banding Key term
- Ways to texture an environment Overview
- Smart materials Key term
- Tileable materials Topic
- Photo-sourced and scanned materials Topic
- De-lighting Key term
- Trim sheets Topic
- Texture atlases Topic
- Colour grading and LUTs Key term
- Heightfield erosion Key term
- Foliage and vegetation Topic
- The technical artist Topic
- Making (and reading) an art breakdown Guide
- Portfolio advice from industry professionals Reference
- Exercise: a trim sheet Exercise
- A 12-month learning roadmap Guide
- Essential talks and videos Reference
- Game art breakdowns: a curated library Reference
- Postmortems worth reading Reference
Last updated 2026-10-22