- Explain what albedo, metallic, roughness, and normal maps each control — and what belongs in none of them.
- Bake a normal and ambient-occlusion map from geometry onto your low-poly kit.
- Author a full material set in
Substance Painter(or Blender texture paint) and export game-ready textures. - Build a parent
Materialin the Unreal Material Editor, then drive its look withMaterial Instances.
Mon 2:00 · Brief Four maps, four questions
Physically based rendering isn't a look — it's a contract. If your maps describe a surface the way the real world does, the surface reads correctly under any light your game throws at it.
The PBR mindset
Stop thinking "paint what it looks like" and start thinking "describe the material." Each map answers one physical question, and mixing the answers is the classic beginner mistake — baked highlights in albedo, dirt in the wrong channel, a surface that falls apart the moment the lighting changes.
- Albedo (base color) — the pure, unlit color of the surface. No shadows, no highlights, no ambient occlusion. If you can see a light direction in it, it's wrong.
- Metallic — is this raw metal or not? It's nearly binary: 1.0 for bare metal, 0.0 for everything else (wood, plastic, cloth, rock). The in-between values are for transitions like worn edges and paint flaking off metal.
- Roughness — how scattered are the reflections? Black is a mirror; white is chalk. This is where a surface reads as new vs. worn, wet vs. dry, polished vs. cast.
- Normal — fake surface detail. It tilts the shading normal per-pixel so low-poly geometry catches light like it has bolts, seams, and scratches it doesn't actually model.
Unreal's default shading model takes base color, metallic, roughness, and normal directly as inputs — the same four physical answers, wired straight into the material graph. Author to roughness (not "smoothness"): black is a mirror, white is chalk, and Unreal reads the map exactly that way with no inversion to track.
Metallic vs. specular workflow
You'll hear about a "specular" workflow too. Metallic/roughness (what we use, and Unreal's default shading model) is more compact and harder to break — one metallic map instead of a full specular color map. Specular workflow gives finer control over reflectance for oddball dielectrics but costs a channel and invites errors. For games, metallic/roughness is the right default; know specular exists so you can read older assets and tutorials.
Author where the work is easiest
Substance Painter paints directly on the 3D model with smart materials and generators that respond to your baked maps — edge wear follows curvature, dirt settles into cavities. Blender's texture paint mode is a capable free alternative and lives in the same file as your model. Either way, the baked normal + AO maps you make first are what make the smart effects look placed rather than sprayed.
Text-to-texture and material-generation tools now sit inside real DCC and engine workflows, and Substance's generative features keep expanding. They accelerate the boring 80% — but a coherent, art-directed surface is still an authored decision. Discussion: what does a texture artist's job become when the base maps are generated?
Mon 2:45 · Guided lab From geometry to an Unreal material
Bake, author, export, assign — the full round trip on one kit piece, then repeat for the rest.
- Bake normal + AO
In
Substance Painter, create a project from your low-poly mesh, thenTexture Set Settings → Bake Mesh Mapswith your high-poly (or self-bake) as the source. Generate Normal, Ambient Occlusion, Curvature, and Position. These drive every smart effect later. - Start the project clean
Set document resolution to 2048 and confirm your UV layout looks right in the 2D view. Check for seams landing on visible faces — fix them now in Blender, not after you've painted.
- Lay base color
Block the largest material zones first with a fill layer per material (metal frame, painted panel, rubber grip). Get albedo values in a believable range — no pure black, no pure white. Real surfaces sit in the mid-tones.
- Set metallic and roughness
Mark true metal zones metallic 1.0, everything else 0.0. Then push roughness to tell the wear story: polished handle low, cast body high. This is where the surface starts to feel real.
- Add authored detail
Use a curvature-driven generator for edge wear and an AO-driven one for grime in the cavities. Mask them by hand where they read wrong — the generator is a starting point, not the answer.
- Export game-ready
File → Export Texturesusing the Unreal Engine 4 (Packed) preset. This gives you a base color, a normal (OpenGL — Unreal expects +Y, so flip green if you exported DirectX), and a packed ORM map (occlusion / roughness / metallic). Name themKit_BaseColor,Kit_Normal,Kit_ORM. - Build the Unreal material
Import the textures into Unreal, set the normal map's Compression Settings to
Normalmapand mark the ORM map sRGB off (it's data, not color). In the Material Editor, create one parentMaterial: wire Base Color, feed the ORM's channels into Ambient Occlusion, Roughness, and Metallic, and plug in Normal. - Tune with a Material Instance
Right-click the parent material →
Create Material Instance. Promote roughness and a base-color tint to parameters on the parent, then drag those sliders on the instance while orbiting a light in the viewport. The maps set the pattern; the instance sets the intensity — and instances recompile instantly, so you iterate in real time.
Wed 2:00 · Workbench Practice, unhurried
No new material. You work on your own file while I circulate — this is the hour where the technique from the guided lab stops being something you watched and becomes something you can do.
- Finish the lab on your own work
The guided lab was built on the class example. Now do it on the piece you are actually submitting. That second pass is where it sticks.
- If you fell behind, catch up here
This is what the hour is for. Say so and I will come to you — do not spend it quietly stuck.
- If you are ahead, go deeper
Take the optional extensions from the lab, or push the piece further than the brief asks. Nothing graded depends on them.
- Ask Gary, the AI TA, anything
The tutor on the course site is open all term for questions about how and why. It explains; you build. No agents in the work until Week 9.
- Albedo has no baked lighting — spot-check it flat, with no visible highlight or shadow.
- Metallic reads near-binary; only wear transitions sit between 0 and 1.
- Normal map imports with
Normalmapcompression and pushes detail the right direction (green channel not inverted). - The ORM channels land where the material expects them (occlusion R, roughness G, metallic B) with sRGB off.
Wed 3:10 · Crit / share Surface pass
Drop your textured kit into the shared level and orbit one light across everyone's work. We're reading for material honesty — does the metal read as metal, does the wear tell a believable story, is anyone hiding a baked highlight in albedo? Bring one surface you're proud of and one you're unsure about; the unsure one is where the useful notes are.
Homework — due before Week 05
| Task | Deliverable |
|---|---|
| Fully texture every piece of your kit | Exported BaseColor + ORM + Normal sets, applied through Material Instances in your Unreal project |
| Assemble the kit in one Unreal level | A staged arrangement, materials assigned, ready to light next week |
Resources
- Adobe Substance 3D Painter — the industry-standard 3D texture painting tool; free with a student license.
- Unreal Engine materials — how the Material Editor builds PBR surfaces from base color, metallic, roughness, and normal.
- Unreal Engine documentation — importing textures, Material Instances, and the rendering pipeline.
- Blender texture paint docs — the free in-DCC painting path if you skip Substance.