Research

My interests are in the area of real-time computer graphics. In particular, I work with the latest graphics hardware technology from vendors such as NVIDIA and ATI and study how global illumination algorithms could be mapped to this hardware. In addition, I'm also interested in non-graphic algorithms that could benefit from hardware acceleration. Currenlty, my interests can be divided into several areas:

Silhouette maps
We have come up with a novel structure we call a silhouette map which we have shown can be used to reduce the artifacts of shadow map shadow algorithms. Our SIGGRAPH paper on this can be found here. I also wrote a paper which I will present at the 2004 Graphics Hardware Workshop where I extend the silhouette map ideas to general texturing. You can find a copy of this work here. I'm now studying how other global illumination effects can benefit from this structure.

Shadesmith Fragment Program debugger
Along with Tim Purcell, I am working on Shadesmith, a real-time fragment program debugger, that can be embedded into a graphics application and can be used to debug the fragment programs in real time. We have released an alpha version of our debugger, which is available for download here.

Real-time light field rendering
Light fields, which were introduced into computer graphics by Levoy and Hanrahan [96] and independently by Gortler [96], still have several interesting open problems regarding their acquisition, rendering and display. I'm currently exploring some of these areas.

Real-time shading languages
When I first joined the group, I began learning about real-time graphics by working on the RTSL shading system. My first project involved the optimization of the compiled code for the NV20 vertex program backend. Later, I wrote compiler-backends that targetted the vertex and fragment programs of the Radeon 8500. I also wrote a demo based on the classic "Textbook Strike" scene using the shading language. An image from this animation is shown on the left. This work was featured on the cover of the Proceedings of the Workshop on Graphics Hardware 2001.

To conclude this section, I would like to put up some class projects that I have worked on in the past. For now, I will just put one up that I did for a class in computer vision.