Background Information

AdaptiveGI's novel system for calculating and rendering global illumination efficiently utilizes two core concepts:


1. AdaptiveLights (Custom Point/Spot Lights)

  • Voxel Grid Lighting: AdaptiveGI maintains a voxel grid centered around the camera, where lighting data is calculated. This approach decouples rendering resolution from lighting resolution, allowing a much larger number of real-time lights to be rendered simultaneously.

  • Configurable Performance:

    • Voxel Grid Resolution: Adjustable to balance quality and performance.

    • Update Frequency: Can be tuned to meet performance requirements.

  • GPU Acceleration:

    • Compute Shaders: Used for parallel lighting calculations in the voxel grid.

    • Fragment Shaders: Serve as a fallback when compute shaders are unavailable.

  • Lighting Fade-Out: In regions outside the voxel grid, global illumination gradually transitions to a static ambient probe.

  • Flexible Volume Placement: The render volume can be centered on the camera or parented to any other GameObject as needed.


2. GI Probes

  • Probe Placement and Sampling: GI Probes are distributed around the camera and sample the environment using CPU ray casting against Unity physics colliders.

  • Adaptive Point Lights: Each GI Probe acts as an adaptive point light, with its intensity dynamically adjusted based on ray casting results.

  • Update Strategy:

    • Distance Cascades: Probes are updated over multiple frames in configurable distance bands.

    • Intensity Interpolation: Probe intensities are smoothly interpolated between GI updates.

  • Probe Distribution Methods:

    1. Within Camera View: Probes are placed directly in the camera’s field of view.

    2. Recursive Spreading: Additional probes are placed by recursively firing placement rays from existing probes, allowing coverage to expand throughout the scene.

Last updated