Implementing flexible software solutions, such as rendering and ray tracing, is still challenging for GPU programs. The amount of available memory on modern GPUs is relatively small. Scenes for feature film rendering and visualization have large geometric complexity and can easily contain millions of polygons and a large number of texture maps and other data attributes. CentiLeo presents an interactive out-of-core ray tracing engine running on the single desktop GPU. The system is built around a virtual memory manager. A novel ray intersection algorithm built around an acceleration structure, cached on the GPU, loads needed data on-demand using page swapping. The ray tracing engine is used to implement a variety of rendering and light transport algorithms. The system is implemented using CUDA and runs on a single NVIDIA GTX 480.
A demo video presents an interactive path tracer rendering the massive 400-million-polygon Boeing 777. There will be a talk on SIGGRAPH 2011 about this work: “Out-of-Core GPU Ray Tracing of Complex Scenes“, by Kirill Garanzha, Simon Premoze, and Alexander Bely. Kirill also has a paper at High Performance Graphics this weekend.