Home

Awesome

Fast Indirect Illumination Using Two Virtual Spherical Gaussian Lights

This is an improved implementation of "Fast Indirect Illumination Using Two Virtual Spherical Gaussian Lights" on Microsoft MiniEngine. It roughly approximates virtual point lights (VPLs) with two virtual spherical Gaussian lights (VSGLs) for real-time single-bounce indirect illumination.

Method Overview

Algorithm

  1. Generate VPLs by rendering a reflective shadow map
  2. Approximate the VPLs into a diffuse VSGL and glossy VSGL
  3. Compute lighting from the two VSGLs

Accurate Spherical Gaussian (SG) Lighting

We use an accurate SG lighting method presented in "Hierarchical Light Sampling with Accurate Spherical Gaussian Lighting" (SIGGRAPH ASIA 2024 Conference Paper). For the GGX microfacet BRDF under sharp SG lights, this method produces higher-quality highlights than the conventional anisotropic SG lighting method [Xu et al. 2013].

<img width="256" src="asg_lighting.webp"><img width="256" src="reference_sg_lighting.webp"><img width="256" src="ndf_filtering-based_sg_lighting.webp">
Anisotropic SG lighting<br>[Xu et al. 2013]Our SG lighting<br>[Tokuyoshi et al. 2024]Reference

Limitations

Requirements

Getting Started

  1. Open ModelViewer/ModelViewer.sln
  2. Select configuration: Debug (full validation), Profile (instrumented), Release
  3. Build and run

Controls

Camera

Light

Others

License

This software is released under the MIT License, see LICENSE.txt.