Skip to main content

Lighting & Rendering Tech Overview

This page provides an in-depth look at the various lighting and rendering techniques used in our system, including dynamic and static lighting methods, and how they contribute to the overall visual experience.

Dynamic Lighting​


Indirect Dynamic Lighting​

There is no dynamic indirect (bounce) light. All indirect light is stored as static lighting.

Direct Dynamic Lighting​

The dynamic component handles both the direct diffuse and direct specular lighting, often referred to as punctual light sources or area light sources for specific types of light.

Sunlight dynamically contributes to direct lighting, and it also provides static bounce lighting.

direct dynamic lighting

Static Lighting​


Indirect Static Lighting (Ambient Lighting or Global Illumination)​

Indirect lighting is fundamentally the result of countless light rays bouncing off numerous surfaces and interacting with various media (such as clouds, smoke, or translucent surfaces) until they ultimately reach your eye.

The interaction of light with a surface depends on the surface's characteristics - whether it's rough or polished, metallic or plastic, etc. These factors determine if the light is absorbed, reflected diffusely or "focused" in a specific direction, among other outcomes.

Dynamic lights, like the sun, contribute their bounce light to Indirect Static Lighting.

Since it is not feasible to simulate light transport for each individual ray of light at runtime in a performance-efficient manner, this process is precomputed and approximated in the ways described below.

Indirect Diffuse​

  • Lightmap (Precomputed)
    • A texture with all the lighting data for the static surfaces.
    • Stored as 2D Lightmaps that affect static surfaces.
  • Ambient Probes (Precomputed)
    • Similar to the lightmap, but for sparse locations (samples) in the map.
    • Stored as SH2 probes; affects dynamic objects including fog/scattering.

Indirect Specular​

  • Environment Probes (Precomputed)
    • These are essentially "cube maps" containing the viewport result at sparse locations (samples) in the map. A local reflection is approximated from these viewports.
    • Also called Light Probes or Reflection Probes.
  • Screen Space Reflections (Runtime)
    • These complement the Environment Probes results by approximating the reflection using screen space image.
  • Lightmap Specular
    • 2D Lightmaps also exhibit a specular term from the average color and direction.

Direct Static Lighting​

Static lights contribute to both direct and indirect lighting in lightmaps and ambient probes. Static Diffuse Lighting retains limited directionality information (SH2), so it's advisable to steer clear of potent static lights in gameplay areas that could lead to ambient probes glowing.

Sky Lighting provides both direct and indirect lighting in a static format. While technically sky light is all indirect sunlight, it's generally considered its own light source.