/VoxelConeTracingGI

Global illumination with Voxel Cone Tracing in fully dynamic scenes using a 3D clipmap to support huge areas around the camera while maintaining a low memory footprint.

Primary LanguageC++MIT LicenseMIT

Real-Time Indirect Illumination with Voxel Cone Tracing

Overview

Check out Implementation-Overview.pdf

Overview

Features

  • One bounce indirect illumination (diffuse + specular) with Voxel Cone Tracing (VCT)
  • Emission with VCT
  • 3D Clipmap to support a huge area around the camera
  • Ambient Occlusion with VCT
  • Fully dynamic scenes

Build

  • CMake
  • Requirements: C++14 or later, OpenGL 4.4 or later
  • Supported (tested) Platforms:
    • Windows 8 and 10 (compiled with Visual Studio 2015+)
    • Ubuntu 18 (GCC 7.4.0, thanks to contributions of hchoi405)

Issues

  • No coverage based voxelization (anti-aliasing voxelization)
    • Leads to discrete indirect illumination changes when objects move
  • Hardly any performance optimizations
  • Noticeable indirect illumination changes when the camera moves (because a clipmap is used)
  • Perfect reflections aren't practical with VCT because the voxelized scene is only a rough approximation
  • Light leaking (VCT is just an approximation of cone tracing)

Screenshots

GI Specularity Emission Ambient

Relevant Sources

  • Crassin, Cyril, Fabrice Neyret, Miguel Sainz, Simon Green and Elmar Eisemann: Interactive Indirect Illumination Using Voxel Cone Tracing. In: Computer Graphics Forum, volume 30, pages 1921-1930. Wiley Online Library, 2011.
  • Engel, Klaus, Markus Hadwiger, Joe Kniss, Christof Rezk-Salama and Daniel Weiskopf: Real-Time Volume Graphics. A K Peters, 2006.
  • McLaren, James: The Technology Of The Tomorrow Children. Q-Games Ltd., Game Developers Conference, 2015.
  • Panteleev, Alexey: Practical Real-Time Voxel-Based Global Illumination For Current GPUs. NVIDIA, GPU Technology Conference, 2014.
  • Tanner, Christopher C, Christopher J Migdal and Michael T Jones: The Clipmap: A Virtual Mipmap. In: Proceedings of the 25th annual conference on Computer graphics and interactive techniques, pages 151-158. ACM, 1998.
  • [McGuire2011] McGuire, Computer Graphics Archive, Aug 2011 (http://graphics.cs.williams.edu/data)