Grad School
Projects from Graduate School
Here are some outdated projects that I worked on during my few years in graduate school.
Interactive Rendering of Heterogeneous Translucent Objects
This topic eventually became my M.S. thesis. At the time there were many approximations of subsurface scattering that worked at interactive rates, but they all relied on the assumption that the material had homogeneous material properties. I was interested in finding a method for rendering translucent obects that were not homogeneous. An initial direction I pursued was constructing a volumetric texture that had precomputed irradiance for many lighting and view directions. This texture was to be precomputed using photo tracing and then tiled across the surface. This approach had high memory requirements and expensive rendering rates so I chose a technique more akin to Translucent Shadow Maps.
I chose a hybrid polygonal surface mesh and scalar density volume representation. From the view point of the light, several buffers are rendered, including depth, 3D texture coordinate and surface normal. For each visible surface location, we sample the rendered buffers at the locations of lit surfaces and approximate subsurface scattering due to each surface using an artist-parameterized function.
Screenshots
Procedural Haptic Texture
I developed a procedural shading system that described the haptic properties of an object surface. This permits an author to create parameterized procedural shaders (very similar to GPU shaders) that could have their paramters tweaked during application execution. This creates a dynamic haptic surface that updates based on surface interaction or time-based events. This work won the UMBC Computer Science Department's "Best M.S. Research" at the 2006 CS Department Research Review.
Paper (ACM User Interface and Software Technology conference in Montreux, Switzerland 2006)
Time-Varying Visualization of Hurricane Data
For my Data Visualization class, I partnered with my good friend Alark Joshi to create an application for real-time visualization of time-varying hurricane data. The data we primarily worked with was simulated data from hurricane Katrina from the UMBC Physics department. This application featured a GPU raycaster with editable transfer function and controls for looping through the data and manually explorng forward/backward in time. This renderer featured illustrative volume rendering techniques (silhouette enhancement, boundary enhancement, tone shading, distance coloring) to emphasize areas of interest. Also included clipping planes and a line integral convolution tool.
Screenshots
GPU Raycaster
This was my first crack at a GPU-based raytracer. This was based on the Kruger and Westermann paper from 2003.
Screenshots
Real-time Shading
Real-time shading was a course taught by Dr. Marc Olano that focus on real-time shading using GPU shading languages. It's odd to think that two and a half years ago when I started this course I had never written a shader before. Shaders implemented include anisotropic BRDFs ( Cook/Torrance, Banks ) and image-space diffusion approximations to subsurface scattering.
Screenshots