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:
Within Camera View: Probes are placed directly in the camera’s field of view.
Recursive Spreading: Additional probes are placed by recursively firing placement rays from existing probes, allowing coverage to expand throughout the scene.
Last updated