Realtime Diffuse Indirect Illumination on mobile GPUs


  • Much more realistic bounce than Enlighten.
  • Full dynamic (even dynamic objects bounce light unlike Enlighten).
  • Works with forward renderer (doesn’t need GBuffer color data from deferred pipeline).
  • Running at realtime framerates (30+) on Adreno 540 GPU (Android) along with other post-processing effects like SSAO, Bloom, Color grading, tonemapping and vignette in the mobile game Tak3n.
  • Splatting VPLs for the spotlight using 3 approaches.
  • Compute based uses a compute shader to store VPL data in the compute buffers to pass to the GPU. Slowest since only 4 compute units allowed at a time on OpenGL ES 3.2.
  • CPU based reads back the texture from the GPU and passes arrays to the GPU after computing VPL Data on the CPU. Faster than Compute method and runs at 30 fps.
  • GPU based where the texture itself is passed to the GPU and is sampled considering every texel as an individual VPL. Fastest and runs at 45ish fps.

Video :


May, 2018