PROPOSAL
SUMMARY
We are going to implement a real-time global illumination renderer/solution based on hierarchical voxel octree representation of the scene and efficient radiance estimation based on voxel cone tracing.
BACKGROUND
We are going to implement a real-time global illumination renderer/solution based on hierarchical voxel octree representation of the scene and efficient radiance estimation based on voxel cone tracing.
THE CHALLENGE
Data Representation and Query on GPU:  In order to efficiently estimate indirect illumination, a hierarchical voxel tree representation of the scene is construct entirely on GPU which also supports dynamic modification. Each pixel needs to get access to the scene and lighting information efficiently through the structure to perform radiance estimation.
Computation Time:  We would like to achieve interactable frame rate on large scenes with complex geometry. Furthermore, our solution supports dynamic objects and lights.
Divergence:  Although it is generally feasible to parallelize raytracing-like operation, the difference of paths of light often ends up divergence and different memory access patterns.
RESOURCES
We will start the project from scratch.
The deliverable will be running on desktop or laptop (either Windows or Linux) with a moderate CUDA-capable graphics card. The project is implemented using CUDA and OpenGL.
References are listed at the bottom.
GOALS AND DELIVERABLES
The deliverable will be a real-time rendering application that supports limited global illumination on large scenes on desktop. More specifically, it supports:
- Indirect Lighting (2 bounces or more indirect lighting)
- Dynamic Objects
- Dynamic Lights
- Real Time Performance on Large Scene
PLATFORM CHOICE
The project will be implemented in C++ and CUDA, with OpenGL.
The platform will be desktop(either Windows or Linux) with a moderate CUDA-capable graphics card.
SCHEDULE
- Nov.1 - Nov.7         Research, Set up environment: C++, CUDA, OpenGL interop, model and texture import, etc.
- Nov.8 - Nov.14      Design data structure for tree node and cone; Implement Sparse voxel octree hierarchy construction.
- Nov.15 - Nov.21   Update sparse voxel octree hierarchy construction and voxel cone tracing. -> Expect to render voxelized scene.
- Nov.22 - Nov.26   Update voxel cone tracing; Add support to dynamic objects and lights.
- Nov.27 - Dec.3      Debug and Optimize. -> Expect to have a functional version.
- Dec.4 - Dec.10      Create an interactive demo. Debug and Optimize. -> Expect to have a complete version.
- Dec.11 - Dec.13    Write final Report and preapre for presentation.
REFERENCE
Crassin, Cyril, et al. "Interactive indirect illumination using voxel cone tracing." Computer Graphics Forum. Vol. 30. No. 7. Blackwell Publishing Ltd, 2011.
Laine, Samuli, and Tero Karras. "Efficient sparse voxel octrees." IEEE Transactions on Visualization and Computer Graphics 17.8 (2011): 1048-1059.
Crassin, Cyril, et al. "Gigavoxels: Ray-guided streaming for efficient and detailed voxel rendering." Proceedings of the 2009 symposium on Interactive 3D graphics and games. ACM, 2009.