Video summary
4: Texture Packing
Main summary
Key takeaways
Summary (Texture Packing & Master Material Setup)
The video focuses on preparing environment shading materials by breaking down surface materials into a small number of layers (≤4) and then packing multiple texture maps into combined texture assets to save memory and improve performance.
It covers:
- Selecting/defining material layers (brick, mortar, plaster, dirt, plus procedural snow)
- Downloading Megascans texture sets and processing them in Substance Designer
- Packing channels into Unreal Engine 5–friendly textures using RGBA
- Using a gradient-map color workflow (instead of per-layer base color textures)
- Fixing common tiling/repetition artifacts in Megascans materials
- Building packed maps for Unreal shader use, including special handling of normal maps and channel reconstruction
Artistic Techniques / Concepts Shown
Layered material decomposition
- The surface is decomposed into constituent layers with no more than four core material types (plus an extra procedural layer).
- Planned layers:
- Brick
- Mortar (separate layer)
- Plaster
- Dirt/rust stains
- Snow (procedural)
Snow is handled as an extra procedural layer rather than a texture-based layer.
Procedural snow layer (no textures)
- Snow is generated by mixing:
- white color + roughness
- The mixing uses a top/vector-based function with manual artistic control.
- This procedural result is integrated into the final shading stack as a purely procedural layer.
Texture packing for performance
- Instead of using separate textures (base color, roughness, AO, height/displacement), the workflow packs multiple maps into RGBA channels.
- It uses Substance Designer RGBA blending to merge grayscale inputs into a single exported texture.
Gradient-mask color workflow (performance + control)
- The artist avoids using a standalone base color texture inside the shader.
- A grayscale gradient mask is colorized using a gradient map node:
- adjusting black/white positions in the gradient replaces them with chosen colors
- Framed benefits:
- Better performance (fewer 2K textures per layer)
- Greater flexibility for color iteration directly in-editor
Normal-map channel packing & reconstruction
- Normal maps are split into RGB channels using RGB split.
- The workflow reconstructs the missing channel in Unreal:
- It uses two existing channels (R and G) and reconstructs B (Z component) in the shader.
- Packed channel assignment:
- Normal green channel → packed green
- Normal red channel → packed alpha
- Mentions the importance of specific bias/scale parameters to ensure correct reconstruction.
Tiling artifact correction for Megascans
- Repetition issues are detected visually (e.g., square black blocks).
- Uses “Make It Tile Photo” in Substance Designer:
- shifts texture samples multiple times
- creates blending masks to smooth repetition
- adjusts parameters to improve transition quality
Texture value conditioning for realism
To avoid overly localized peaks and washed-out results, the workflow:
- Uses Levels to increase or normalize contrast/range.
- Attempts to normalize height maps so the average height matches mid-gray (≈ 127.5 on 0–255).
- Builds a cleaner AO:
- rather than relying on noisy Megascans AO
- uses ray-traced AO in Substance Designer to generate better occlusion for mortar.
Step-by-Step Workflow / Process (As Described)
1) Define material layers (concept breakdown)
- Determine planned surface constituent materials:
- brick
- mortar (separate)
- plaster
- dirt/rust stains
- snow (procedural, textureless)
- Keep the layered approach efficient:
- core layers limited to ~4, with snow added as an extra procedural mix.
2) Prepare Megascans textures in Substance Designer
- Import textures into a Substance Designer project:
- base color (or grayscale mask source)
- displacement/height
- roughness
- ambient occlusion
3) Create the main packed texture (“grah” = gradient/roughness/AO/height)
- Convert base color source to grayscale.
- Increase contrast using Levels to improve gradient colorization results.
- Pack maps into one RGBA texture using an RGBA blending node:
- R channel / packed content depends on the exact setup
- intent: pack gradient mask + roughness + AO + height into one asset
- Export packed texture in TGA format (named “grah” in-engine).
4) Fix repetition/tile quality
- Apply Make It Tile Photo to individual textures (especially noisy materials like plaster/mortar).
- Keep parameters consistent across inputs.
- Adjust settings until repetition artifacts (e.g., square black blocks) are reduced.
5) Build the second packed texture for normals/metallic (“MN”)
- Split normal map channels with RGB split.
- Pack:
- normal G → packed G
- normal R → packed alpha
- Fill remaining channel needs:
- metallic set to 0 (black) since this material instance doesn’t use metallic
- blue channel left unused / for future generic noise/gradient work
- Export the second packed texture in TGA format.
6) Reconstruct normal map in Unreal
- In Unreal material nodes:
- recompute the blue (Z) component from the packed red/green channels
- use correct bias/scale constants for accurate results
- Credit a community method for the reconstruction approach.
7) Additional mortar-material tuning
- Adjust normal intensity to better match the intended look.
- Fix displacement/height distribution:
- raise levels slightly to spread peaks
- Normalize height map:
- target average around mid-gray
- verify by blurring to visually check mean value
- Replace noisy AO:
- generate cleaner AO using ray-traced ambient occlusion
- Modulate roughness:
- reduce/alter overly opaque roughness values if needed
Creators / Contributors Credited
- Brian LeLaw — credited as the author of a normal reconstruction method referenced via Experience Points Discord (Tech Art channel).
Rate this summary
Your feedback will help improve summaries.
Improve this summary
Reprocess with a stronger model when the summary feels incomplete or inaccurate.
Translate summary in another language
Ask questions to this video
Chat for follow-up questions, clarifications, and source-backed answers.