Creating Procedural Materials for Graphics
In open-world projects, the art department spends weeks manually rendering 20+ variants of a single texture. Procedural materials solve this: one parametric graph in Substance Designer in 2–3 days yields all 15 variations. Time savings — up to 80%, and the texture budget is reduced 5 times. For example, developing a procedural material set costs $800–$2,000 and saves $5,000–$10,000 in manual texture production per project. Our engineers have 10+ years of experience in procedural generation and are Adobe certified.
Suppose you need 15 variants of stone masonry for different biomes. Manual rendering — three weeks. A procedural graph with parameters (stone size, shape variation, smoothness, moss/dirt, weathering) — one day. We guarantee the result will be PBR-correct and ready for integration into Unity or Unreal Engine. Procedural materials are 5 times more efficient than traditional methods. official Substance Designer documentation
How Substance Designer Accelerates Texture Production
Substance Designer is the standard tool for creating procedural tiled materials. How it works: instead of layers in Photoshop, you use a node graph where each node performs a mathematical operation on the image. Shape → Transform → Blend → Warp → Level — that's the basic chain for any structural material (brick, tile, patterned metal).
Key nodes used in every serious material:
-
Tile Generator — the foundation for regular structures. Parameters: number of elements per X/Y, offset between rows, random rotation, size variation. It controls brick density in masonry or gravel on a road.
- Flood Fill + Flood Fill to Random Color/Grayscale — isolates individual elements for independent modification. For example, each brick gets a random Normal Map variant from a set of presets. This breaks perfect repetition without losing seamlessness.
- Directional Warp and Warp — deformation for organic surfaces: wood, bark, skin, rock. Without Warp, procedural materials look mathematical, not natural.
-
Histogram Scan — a critical node for calibrating ranges. All PBR values must fall within physically correct ranges: albedo 30–240, roughness 0–1, metallic 0 or 1 (practically binary). Histogram Scan with Position and Width parameters allows precise range adjustment.
Example from practice
For an open-world RPG, we needed 15 variants of stone masonry for different biomes (tropics, tundra, desert). Instead of 15 separate texture sets, one parametric graph was created with variables: stone size, shape variation, edge smoothness, moss/dirt type in joints, weathering intensity. All 15 variants were exported with different parameter values in one day — versus three weeks of manual work.
What If the Procedural Material Slows Down the Application?
Substance Designer exports .sbsar files — a compiled graph that can be loaded into Unity or Unreal and parameters controlled at runtime. On mobile platforms, .sbsar generates textures at app startup — this loads the CPU, so for mobile we typically export pre-baked PNG variants and switch via Texture2D swap. For runtime generation on mobile, an alternative is custom shaders in ShaderGraph or Material Graph, which compute the procedural material on the GPU. This is faster but limited in complexity: basic patterns (Voronoi for stone, Perlin for organics) work well; complex multilayer materials do not.
Comparison of Procedural vs Manual Textures
| Criterion |
Procedural Material |
Manual Texture |
| Creation time (basic tile) |
2–4 days |
5–7 days |
| Variability |
Parametric (10+ variants from one graph) |
Each variant painted separately |
| Disk size |
Kilobytes (.sbsar) |
Megabytes (PNG) |
| Runtime modification |
Yes, via parameters |
No, need to switch textures |
| Quality of unique elements |
Lower |
Higher |
| Cost per project |
$800–$2,000 |
$5,000–$10,000 |
How We Create a Procedural Material: Step-by-Step
- Analyze references and identify key variability parameters.
- Prototype the graph in Substance Designer.
- Agree on ranges with the art director.
- Export .sbsar with settings for the target engine.
- Integrate into Unity or Unreal with runtime control.
- Document parameters and graph logic.
- Provide support during integration and subsequent refinements as needed.
What's Included
- Source graph (.sbsar) with full documentation.
- Team training on parameter handling and graph modification.
- Integration into the target engine with a demo scene.
- Guarantee of PBR correctness and platform optimization.
- Support during integration and 3 months after delivery.
Timeline Estimates
| Task Scale |
Approximate Time |
| Single basic tiled material (Substance Designer graph) |
2–4 days |
| Complex organic material (bark, rock, skin) |
4–8 days |
| Parametric set (one graph with 5–10 variants) |
5–10 days |
| Integration of .sbsar into engine with runtime control |
2–4 days |
The cost is calculated individually after requirements analysis: number of materials, required level of parameterization, target platform.
Contact us for a preliminary assessment of your project. Order procedural material development and get a consultation.
Texturing and Materials
An artist sends an asset to the engine — and it looks like a plastic toy. We've seen this dozens of times: correct geometry, good UV unwrapping, but the material doesn't "play". In 90% of cases, the reason is a misunderstanding of PBR channels. Over 10+ years working on mobile and PC projects, we've developed a pipeline that guarantees predictable results in any lighting. Texturing for modern games involves physically based materials, procedural systems, and a strict FPS budget. Our experience includes over 50 completed game projects — from indie to AAA. Contact us — let's discuss which texturing pipeline best suits your project with PBR materials for games.
Why are PBR materials the standard for modern games?
PBR (Physically Based Rendering) is not an artistic style but a set of rules that make materials behave physically predictably under any lighting. In Unity (URP/HDRP) and Unreal, this is the default standard. Using PBR reduces rework time by 30%: a material baked correctly does not require re-tuning when the environment changes. In contrast to legacy approaches, PBR provides consistency across the team — artists and engineers speak the same channel language.
What is included in the PBR pipeline: Metal/Roughness vs Specular/Glossiness
Two main workflows:
-
Metal/Roughness (used in Unity URP, Unreal): Base Color — diffuse color without lighting information. Metallic — binary map: 0 (dielectric) or 1 (metal). Roughness — 0 mirror surface, 1 matte. Normal Map — relief simulation. AO (Ambient Occlusion) — darkening in crevices.
- Specular/Glossiness — older workflow, used less often, mainly in legacy projects or when converting from Photoshop.
Boundary values for dielectrics: base color not darker than #383838 and not lighter than #E0E0E0 — otherwise the material starts to "glow" or "sink" into darkness under HDR lighting. For metals, base color = reflection color (gold — warm, chrome — neutral).
— from Unreal Engine documentation: "PBR is the only way to get predictable reflections on all platforms."
How does Substance Designer speed up the creation of tiling materials?
If Substance Painter is manual painting on finished geometry, Substance Designer is programming a material. The node graph outputs a set of texture maps that are generated algorithmically. Designer is 5 times faster than manual texturing when reused: one graph with parameters — stone size, gap, mossiness, wetness — gives hundreds of variations. Instead of painting a 2K texture by hand, the artist builds a graph that can:
- Be parameterized — one "stone wall" graph with sliders: stone size, gap, mossiness, wetness.
- Be scaled without quality loss — rendering at any resolution (2K → 4K for cinematic).
Building blocks of the Designer graph:
- Shape nodes — geometric primitives (rectangle, circle, polygon). Basis for tiling patterns.
- Noise nodes (Perlin, Gaussian, Cells, Voronoi) — organic irregularities.
- Tile Generator / Splatter — key nodes for creating patterns with control over offset, rotation, scale.
- Warp nodes — deformation by normal map or gradient (drips, shifts, cracks).
- Blend — layer blending with masking (final compositing).
- Normal Map nodes — synthesis of normals from height data.
Typical graph for "industrial metal" material:
[Shape: rectangular panel]
↓
[Tile Generator: grid of panels with small offset]
↓
[Warp: micro-dents from Gaussian noise]
↓
[Blend: add curvature mask → rust on edges]
↓
[Blend: drips by Directional Warp]
↓
[Export: BaseColor / Metallic / Roughness / Normal / AO]
Such a graph is reused across different projects without rework when resolution changes. One graph saves up to 40% of time on repetitive textures.
How to avoid performance loss when working with textures?
The main mistake is overestimated texture resolution and wrong compression format. Comparison table by platform:
| Platform |
Max texture for hero asset |
Compression format |
Size relative to PNG |
| Mobile (mid-range) |
1K–2K |
ETC2 / ASTC |
4–8 times smaller |
| PC / Console |
2K–4K |
BC1–BC7 |
4 times smaller |
| VR |
1K–2K |
ASTC (mandatory) |
4–8 times smaller |
Never export PNG to production without compression — it's a direct memory waste. BC7 for RGBA gives good quality at 8 bpp. ASTC for mobile is adjustable by quality/size ratio. Additional tool comparison table:
| Tool |
Speed |
Flexibility |
Reusability |
| Substance Designer |
3-5 days per tile |
Maximum (parameters) |
100% for different projects |
| Substance Painter |
2-3 days per hero asset |
Medium (manual touch-up) |
~70% via Smart Materials |
| Quixel Mixer |
1-2 days |
Limited by Megascans library |
Depends on project |
Work process: from reference to integration
- Analysis of references and reference geometry — determine PBR channels, style, platform constraints.
- UV unwrapping and baking — bake AO, Normal, Curvature, Thickness considering texel density.
- Texturing — Painter for hero, Designer for tiles, hand-painted if needed.
- Export and optimization — compress to target format, atlas, LOD textures, test on target platform.
- Support during integration — set up materials in engine, debug lighting issues.
Checklist of common mistakes
- Base Color contains fake shadows → breaks dynamic lighting.
- Normal Map in sRGB space → inverted normals.
- AO and Curvature not baked → Smart Materials work incorrectly.
- Texture resolution higher than necessary → FPS drop and extra VRAM.
- Compression format chosen without considering alpha channel (BC1 vs BC7).
What is included in our work and quality guarantees?
- Deliverables: PBR texture sets (Base Color, Metallic, Roughness, Normal, AO) for Metal/Roughness workflow, parametric Substance Designer graph (if required), full documentation for material setup in Unity/Unreal, support during integration with testing on target platform.
- Guarantee: every material is tested in the engine under three different lighting conditions. Our experience — 10+ years, 50+ projects, including projects with AR Foundation and XR Interaction Toolkit.
- Timeframe: 3 to 14 days depending on complexity (one tiling material in Designer — 3–5 days, hero asset with UDIM — up to 14 days). Cost is calculated individually.
Order texturing of your asset — we guarantee predictable results without rework. Get a consultation on the right pipeline today.