Out-of-core Global IlluminationI'm currently working on a system which performs data management for out-of-core, hybrid computation. Out-of-core means that the data required for the computation is too large to fit in system memory, often requiring a large number of slow disk reads to accomplish the task of accessing data. By hybrid I mean that we aren't restricted to CPUs for our computation, but can use CPUs, GPUs, and theoretically Cell processors and custom ASICs. This has been applied to rendering synthetic images via path tracing. Path tracing tends to be expensive, and has difficult access patterns for out-of-core algorithm design, however, with the use of our data management system, and some additional intelligent design choices, we now have a highly efficient out-of-core path tracer which can utilize the powerful computational resources offered by modern GPUs, as well as multiple multi-core CPUs.
Improved Convergence of CausticsCaustics tend to be a computational burden when computing realistic images via unbiased means. Several methods have made strides in computational efficiency for diffusive types of materials, however, caustics are generally calculated via a biased method such as photon mapping because of the difference in render speed. We split the integral of the rendering equation, and utilize previous methods for computing the "diffusive component", while applying our new method to computing the "specular component".
Real-time Ray Tracing on GPUsI have implemented a real-time ray tracer running on NVIDIA GPUs which achieves over 50 frames/second for small scenes like the Stanford Bunny, while reaching nearly 12 frames/second on a seven million triangle scene, the XYZ_RGB Dragon, also from Stanford's scanning repository.
Better RBSP TreesWe are also working on improving restricted BSP trees, both from a build and a render aspect. Our build shows asymptotic improvement, and in practical terms is hundreds of times faster than previous work. Our render times are also an order of magnitude faster than previous work.