Back to Lighting

Part 12: REFLECTIONS

~15 min2 sections

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:

  1. Diffuse — Light scatters in all directions, creating the "base color" we see
  2. 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:

MetallicBehavior
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:

RoughnessResult
0.0Mirror-sharp reflection
0.5Blurry, brushed-metal look
1.0Completely 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 NameMetallicRoughnessBase ColorPurpose
MI_LHT_RF_Chrome1.00.00.9, 0.9, 0.9Sharp metal reflection
MI_LHT_RF_BrushedMetal1.00.50.9, 0.9, 0.9Blurry metal reflection
MI_LHT_RF_GlossyPlastic0.00.10.18, 0.18, 0.18Sharp non-metal reflection
MI_LHT_RF_MattePlastic0.00.80.18, 0.18, 0.18Minimal 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:

  1. Right-click M_LHT_01 → Create Material Instance
  2. Name it MI_LHT_RF_Chrome
  3. Set Metallic = 1.0, Roughness = 0.0, BaseColor = (0.9, 0.9, 0.9)
  4. Repeat for the other 3 instances

Create a portable reflection test rig:

  1. Create Blueprint: Content Browser → Right-click → Blueprint Class → Actor
  2. Name it: BP_LHT_RF_Reference
  3. Open the Blueprint and add 4 Sphere components (or Static Mesh components with sphere mesh)
  4. Arrange them in a row, spaced apart so they don't reflect each other
  5. 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
  6. 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.