Repository files navigation
Regular grid of irradiance probes
Probes stored in two texture maps (RGB, RG)
Each texture map stores 4 copies of the same view at different heights above the scene
The first map stores irradiance of each probe in 6x6 tiles
The second map stores radius, radius^2 visibility of each probe in the R,G channels, in 16x16 tiles
Each probe tile is octahedron-encoded, and has a 1px border for bilinear blending between probes
Probe textures arranged into cascades (like cascaded shadow maps)
Lower resolution (coarser) cascade probes map to a larger area of the world
More probes in higher resolution (finer) cascades
Update finer cascade probes more frequently than coarse cascade probes
Fade out coarse cascades
Algorithm
Generate ~200 rays per probe, generate G-Buffer with pixel per hit
Use deferred shading to compute each pixel output
Each probe finds rays that affect it, and blends in the new pixel data using an exponentially-weighted moving average, like TAA
For each pixel on screen, shade it by sampling from the probes
Advantages
Avoids light leaks and noise
Fully dynamic
Can be tuned to never update (baked) or update more slowly for mobile or weaker devices
Disadvantages
Diffuse indirect only (no specular, no direct)
Requires shadow-map like bias parameter
You can’t perform that action at this time.