What you'll learn:
- The different Sky Light Source Types and when to use each
- Static vs Real-Time capture workflows
- Sky Atmosphere — the physically-based alternative to HDRI
- Sky-flagged materials for custom procedural skies
- Cast Ray Traced Shadows for soft ambient shadowing
Section 25: Sky Light Systems Theory (3 min)
Sky Light has one fundamental question: Where does the environment data come from?
The answer determines your entire ambient lighting workflow:
| Source Type | Capture | Best For |
|---|---|---|
| SLS Captured Scene | Captures visible environment | HDRI Backdrop, Sky Atmosphere, distant geometry |
| SLS Specified Cubemap | Uses assigned cubemap directly | Controlled lighting independent of visible sky |
SLS = "Sky Light Source" — the prefix Unreal uses for Source Type enum values. You'll see this in Blueprints and C++ code as
SLS_CapturedSceneandSLS_SpecifiedCubemap.
Orthogonal to Source Type is the capture timing:
| Mode | When It Captures | Cost | Use Case |
|---|---|---|---|
| Static (Real Time Capture: Off) | Once at level load | Free after initial capture | Most scenes, static environments |
| Real-Time (Real Time Capture: On) | Every frame | ~1-2ms GPU | Time-of-day, dynamic skies |
These two axes give you four combinations — we'll cover each.
Section 26: SLS Captured Scene — Static Capture (5 min)
With Source Type: SLS Captured Scene and Real Time Capture: Off, the Sky Light:
- Looks around at level load
- Captures whatever is visible (sky mesh, HDRI dome, distant geometry)
- Stores result as a cubemap
- Uses that cubemap for all ambient lighting until manually recaptured
This is the default and most common workflow.
- HDRI Backdrop setup (Sky Light captures the HDRI dome)
- Static outdoor scenes with Sky Atmosphere
- Interior scenes with visible windows/skylights
- Any scene where ambient lighting doesn't need to change
- Add Sky Light (Place Actors → Lights → Sky Light)
- Set Source Type: SLS Captured Scene
- Set Real Time Capture: Off (default)
- Ensure something is visible to capture (HDRI Backdrop, Sky Atmosphere, etc.)
When you change your sky or HDRI, the Sky Light doesn't automatically update. Click Recapture Scene in the Details panel to manually trigger a new capture.
TODO: Screenshot - Recapture Scene button in Sky Light Details panel
Why is my scene black? With SLS Captured Scene, if there's nothing visible to capture — no HDRI dome, no Sky Atmosphere, no distant geometry — the Sky Light captures black. That's correct behavior. Add a sky system or switch to SLS Specified Cubemap.
Controls the detail level of the captured environment:
| Resolution | Quality | Use Case |
|---|---|---|
| 64–128 | Low | Quick previews |
| 256 | Medium | Default — good balance |
| 512 | High | Detailed environments |
| 1024–2048 | Maximum | Hero shots, cinematics |
Higher resolution = sharper reflections and more color detail in ambient lighting, but more memory.
Section 27: SLS Specified Cubemap — Static Capture (5 min)
With Source Type: SLS Specified Cubemap, you assign a cubemap (HDRI) texture directly. The Sky Light uses that cubemap regardless of what's visible in your scene.
- Lighting environment should differ from visible background
- No visible sky in scene (interior with no windows)
- Art-directed lighting that shouldn't match the backdrop
- Quick iteration without setting up HDRI Backdrop
- Add Sky Light
- Set Source Type: SLS Specified Cubemap
- Assign your HDRI texture to Cubemap slot
- Adjust Source Cubemap Angle to rotate the lighting direction
Rotates the HDRI around the vertical axis. Useful for:
- Aligning the bright sun area with your Directional Light
- Adjusting where highlights appear on reflective surfaces
- Fine-tuning the overall lighting direction
| Aspect | SLS Captured Scene | SLS Specified Cubemap |
|---|---|---|
| Source | Whatever is visible | Assigned texture |
| Flexibility | Responds to scene changes | Independent of scene |
| Setup | Needs visible sky/HDRI | Just assign texture |
| Use case | Most outdoor scenes | Controlled/interior lighting |
Tip: SLS Specified Cubemap is great for product visualization where you want specific HDRI lighting without showing the HDRI as a background.
Section 28: Real-Time Capture + Sky Atmosphere (8 min)
Sky Atmosphere is Unreal's physically-based atmospheric scattering system. Instead of using a photograph (HDRI), it simulates how sunlight scatters through Earth's atmosphere.
When combined with Real Time Capture, the Sky Light continuously updates to match the changing sky — enabling time-of-day systems.
- Directional Light — represents the sun
- Sky Atmosphere — generates the sky based on sun position
- Sky Light — captures the sky for ambient fill (Real Time Capture: On)
- Place Actors → Visual Effects → Sky Atmosphere
- Select your Directional Light → Details → Light → enable Atmosphere Sun Light
- Add a Sky Light (set to SLS Captured Scene, Real Time Capture: On)
Now rotate your Directional Light — the sky color changes automatically. Noon = blue sky. Sunset angle = orange/red. Below horizon = night. The Sky Light captures these changes every frame.
| Setting | What It Does |
|---|---|
| Rayleigh Scattering | Blue color at midday, red/orange at sunset |
| Mie Scattering | Haze/glow around the sun |
| Absorption | Atmospheric thickness |
Tip: The defaults are physically accurate for Earth. You rarely need to change these unless going for stylized or alien atmospheres.
With Real Time Capture: On, the Sky Light renders the environment to a cubemap every frame. This costs ~1-2ms GPU depending on resolution.
Only enable Real Time Capture when you need it:
- Time-of-day systems
- Dynamic weather
- Sky that changes during gameplay
For static skies, use static capture and click Recapture Scene when needed.
| Scenario | Best Choice |
|---|---|
| Dynamic time of day | Sky Atmosphere |
| Controlled studio/product shots | HDRI |
| Consistent, repeatable lighting | HDRI |
| Realistic outdoor that reacts to sun | Sky Atmosphere |
| Quick outdoor prototyping | Sky Atmosphere (simpler) |
| Art-directed specific look | HDRI |
HDRI Pros: Consistent, art-directed, real photograph reflections Sky Atmosphere Pros: Dynamic, physically accurate, no file management
Section 29: Real-Time Capture + Sky-Flagged Materials (5 min)
What if you want a dynamic sky but don't want Sky Atmosphere's realistic look? Maybe you want:
- Stylized cartoon sky
- Sci-fi procedural nebula
- Fantasy gradient sky
- Custom cloud system
Sky-flagged materials let you create custom sky visuals that the Sky Light will capture.
- Create a sky dome mesh (hemisphere or sphere)
- Create an Unlit material for your custom sky
- Enable Is Sky on the material
- Sky Light captures it like any other sky
- Create new Material
- Set Shading Model: Unlit
- Set Material Domain: Surface
- Enable Is Sky checkbox (under Material settings)
- Build your sky visuals using nodes (gradients, noise, procedural patterns)
TODO: Screenshot - Material editor showing Is Sky checkbox
The Is Sky flag tells Unreal:
- This material represents the sky background
- Include it when Sky Light captures the scene
- Treat it as infinitely far (no parallax)
Without this flag, your sky dome would be captured as geometry at a specific distance, causing incorrect reflections and ambient lighting.
Material nodes:
1. Camera Position (World) → Normalize
2. Take Z component (sky direction)
3. Lerp between horizon color and zenith color
4. Plug into Emissive Color
This creates a basic gradient sky that the Sky Light will capture for ambient lighting.
With Real Time Capture: On, you can animate your sky material and the ambient lighting will update:
- Animated cloud layers
- Pulsing alien sky
- Day/night color transitions
- Weather effects
Section 30: Cast Ray Traced Shadows (5 min)
Sky Light can cast ray traced shadows — soft, omnidirectional shadows from ambient lighting. This creates subtle darkening in corners and where objects block the sky.
Without Sky Light shadows, ambient light reaches everywhere equally. With Cast Ray Traced Shadows enabled:
- Objects block ambient light from certain directions
- Creates soft, directionless shadowing
- Different from directional light shadows (no clear direction)
- Select your Sky Light
- Details panel → Find Cast Ray Traced Shadows
- Enable it
Requirements:
- Hardware Ray Tracing enabled in Project Settings
- RTX/DXR compatible GPU
Cast Ray Traced Shadows and Ambient Occlusion both darken areas where ambient light is blocked. The difference:
| Method | How It Works | Quality | Cost |
|---|---|---|---|
| SSAO | Screen-space approximation | Limited to visible geometry | Cheap |
| DFAO | Distance field occlusion | Works with off-screen geometry | Moderate |
| RTAO | Ray traced ambient occlusion | Accurate but noisy | Expensive |
| Cast RT Shadows | Sky Light ray traced shadows | Accurate, integrates with Sky Light | Expensive |
Cast RT Shadows is essentially the Sky Light's own form of ambient occlusion — it's tracing rays from surfaces toward the sky to determine occlusion.
Note: We'll cover AO systems in detail in Part 9: Ambient Occlusion Systems. Cast RT Shadows can complement or replace traditional AO depending on your workflow.
Use Cast RT Shadows when:
- You have RT hardware and frame budget
- You want accurate sky occlusion
- You're already using other RT features
Stick with traditional AO when:
- Performance is critical
- You need to support non-RT hardware
- Approximate occlusion is acceptable
Section 31: Sky Light Quality Settings (5 min)
| Setting | Purpose | Typical Value |
|---|---|---|
| Intensity Scale | Brightness multiplier | Depends on HDRI/sky |
| Light Color | Tint applied to captured environment | White (neutral) |
| Lower Hemisphere Is Solid Color | Prevents ground lighting upward | On |
| Lower Hemisphere Color | Color used below horizon | Dark gray/black |
Lower Hemisphere Is Solid Color prevents unrealistic light from "leaking" up from below the ground. If you see a black bar at the horizon with an HDRI, your HDRI may not have below-horizon data — try a full-sphere HDRI or disable this setting (with caution).
Every HDRI has its own baked intensity based on the exposure value (EV) at which it was captured. Some HDRIs are captured at +8 EV (very bright), others at +2 EV (much dimmer).
Intensity Scale 1.0 means "use the cubemap values as-is" — but those values might be wildly bright or dim depending on the source.
Coming up: This will be covered in more detail in Part 15: Exposure under Calibration and Physically Based Lighting.
| Issue | Cause | Fix |
|---|---|---|
| Black reflections | Sky Light missing or Size too small | Add Sky Light, increase HDRI Backdrop Size |
| Horizon black bar | HDRI doesn't cover below horizon | Use full-sphere HDRI or disable Lower Hemisphere Solid Color |
| Conflicting ambient | Multiple Sky Lights | Delete extras — only one Sky Light |
| Flat, washed-out look | Ambient overpowering direct light | Reduce Sky Light Intensity |
| Sky not updating | Real Time Capture off | Enable Real Time Capture or click Recapture Scene |
Key Points:
- SLS = Sky Light Source — the enum prefix for Source Type values
- SLS Captured Scene captures visible environment — use with HDRI Backdrop or Sky Atmosphere
- SLS Specified Cubemap uses assigned texture directly — for controlled/interior lighting
- Real Time Capture updates every frame — enable for time-of-day systems
- Sky Atmosphere provides physically-based dynamic sky
- Is Sky material flag enables custom procedural skies
- Cast Ray Traced Shadows provides accurate ambient shadowing (RT required)
You now have direct lighting (sources) and ambient lighting (fill). But ambient light doesn't reach everywhere equally — corners and crevices should be darker. In Part 8: Ambient Occlusion, we'll add the shadow side of ambient lighting.