What you'll learn:
- What reflections are and how they differ from diffuse lighting
- How material properties (Metallic, Roughness) control reflection appearance
- How to set up reference materials to evaluate reflections
Section 45: Reflection Fundamentals (8 min)
When light hits a surface, it can scatter in two ways:
- Diffuse — Light scatters in all directions, creating the "base color" we see
- Specular — Light bounces in a mirror-like direction, creating reflections
Reflections are specular light — the portion of incoming light that bounces off a surface at a predictable angle, showing the environment around it.
Every surface has some amount of reflection. Even matte paper reflects a tiny bit. The difference between a mirror and a matte wall is how much light reflects specularly vs diffusely, and how sharp that reflection is.
Two material properties control how surfaces reflect:
Metallic
Metallic determines what reflects:
| Metallic | Behavior |
|---|---|
| 0.0 (Non-metal) | Reflects the environment — what's around the surface |
| 1.0 (Metal) | Reflects the environment tinted by Base Color — metals color their reflections |
Non-metals (plastic, wood, skin) reflect white/neutral light. Metals (gold, copper, chrome) reflect colored light matching their Base Color.
Roughness
Roughness determines how sharp the reflection is:
| Roughness | Result |
|---|---|
| 0.0 | Mirror-sharp reflection |
| 0.5 | Blurry, brushed-metal look |
| 1.0 | Completely diffuse — no visible reflection |
Think of roughness as surface texture at a microscopic level. A polished surface has aligned micro-facets (sharp reflection). A rough surface has random micro-facets (scattered, blurry reflection).
Section 46: Reflection Reference Setup (7 min)
To properly evaluate reflections, we need reference materials that show the full range of reflective behavior.
Creating the Material Instances
We'll create 4 material instances from M_LHT_01 (our master material from Part 8):
| Instance Name | Metallic | Roughness | Base Color | Purpose |
|---|---|---|---|---|
MI_LHT_RF_Chrome | 1.0 | 0.0 | 0.9, 0.9, 0.9 | Sharp metal reflection |
MI_LHT_RF_BrushedMetal | 1.0 | 0.5 | 0.9, 0.9, 0.9 | Blurry metal reflection |
MI_LHT_RF_GlossyPlastic | 0.0 | 0.1 | 0.18, 0.18, 0.18 | Sharp non-metal reflection |
MI_LHT_RF_MattePlastic | 0.0 | 0.8 | 0.18, 0.18, 0.18 | Minimal reflection |
Why these values?
- Base Color 0.9 (not 1.0): Pure white (1.0) doesn't exist in the real world. Even the whitest materials reflect ~90% of light. Using 1.0 can cause energy conservation issues in PBR.
- Base Color 0.18 (mid grey): This is the actual photographic mid-grey value — 18% reflectance. It's the standard reference for neutral surfaces.
- Metallic 1.0 or 0.0: In PBR, Metallic is almost always binary. Real materials are either metal or not — there's no "50% metal."
Creating the instances:
- Right-click
M_LHT_01→ Create Material Instance - Name it
MI_LHT_RF_Chrome - Set Metallic = 1.0, Roughness = 0.0, BaseColor = (0.9, 0.9, 0.9)
- Repeat for the other 3 instances
Create a portable reflection test rig:
- Create Blueprint: Content Browser → Right-click → Blueprint Class → Actor
- Name it:
BP_LHT_RF_Reference - Open the Blueprint and add 4 Sphere components (or Static Mesh components with sphere mesh)
- Arrange them in a row, spaced apart so they don't reflect each other
- Assign materials:
- Sphere 1:
MI_LHT_RF_Chrome - Sphere 2:
MI_LHT_RF_BrushedMetal - Sphere 3:
MI_LHT_RF_GlossyPlastic - Sphere 4:
MI_LHT_RF_MattePlastic
- Sphere 1:
- Compile and Save
Now you can drop BP_LHT_RF_Reference into any scene to evaluate reflections.
TODO: Screenshot - BP_LHT_RF_Reference with 4 spheres showing different reflection behaviors
Key Points:
- Reflections are specular light — light bouncing in a mirror-like direction
- Metallic controls what reflects (environment vs tinted by Base Color)
- Roughness controls sharpness (0 = mirror, 1 = diffuse)
- Use realistic values: 0.9 for white (not 1.0), 0.18 for mid-grey
- Metallic is binary in PBR — materials are either metal (1.0) or not (0.0)
- Create reference materials (
MI_LHT_RF_*) and a test Blueprint (BP_LHT_RF_Reference)
You now understand what reflections are and have reference materials to evaluate them. But where does the reflection data come from? In Part 13: Reflection Systems, we'll explore the different methods Unreal uses to generate reflections — from simple Sky Light cubemaps to hardware ray traced reflections — and when to use each.