Computer Graphics
This page highlights the history of my research as a developer and technical lead at a company that no longer exists. Although I worked on a number of other things, some CG-related and some not, the following topics are the principles ones to which I devoted most of my time.
Physically-accurate Lens Systems
I spent roughly 2 weeks reading background material and doing preliminary research on the subject of camera systems in computer graphics, then proceeded to implement a 2D camera lens ray tracer followed by a full 3D lens ray tracer. I wrote a GUI application (as a test-bed for my camera module) that rendered a lens system’s surface elements based on a text file description and interactively traced rays through the system, accurately computing internal reflections and handling dispersive media. I started (but did not finish) an image-preview feature for the 3D camera system that would have visualized images as they would look through the lens system and projected on an arbitrary image plane.
C. Kolb, P. Hanrahan, D. Mitchell. A realistic camera model for computer graphics
W. Heidrich, P. Slusallek, H.P. Seidel. An image-based model for realistic lens systems in interactive computer graphics
A. Glassner, ed. An Introduction to Ray Tracing. Academic Press, 1989.
Beam Rendering
Two other developers and I spent several months pursuing the concept of beam tracing. We were not the first to develop the idea of propagating a beam to avoid the sampling degeneracy of a ray, and we found several approaches along these lines. However, we wished to produce a method that allowed for some degree of non-regularity in our sampling frustum. (Most previous work simply tiled “regular” beams to approximate the view frustum.) We finally managed to derive the mathematics for oblique rectilinear pyramid intersection, projection and sampling. Unfortunately, the finished algorithm was too susceptible to floating-point error and too processor-intensive to be used in practice. (The images, however, were almost perfectly anti-aliased, and we were able to cheaply generate motion blur.)
P. Heckbert, P. Hanrahan. Beam Tracing Polygonal Objects
J.C. Gonzato, B. Le Saec. Face Tracing
J. Amanatides. Ray tracing with cones
Spherical and Holodeck Rendering
For the purposes of web presentation, we discovered and reviewed several different methods of efficiently computing, interpolating, and presenting high-quality CG to end users on thin clients. I implemented a spherical rendering system (similar to IPIX or QuickTime VR) for our core renderer, then proceeded to research several holodeck-based rendering schemes, including lightfield caching with portal culling. Although we never adopted the holodeck scheme due to its outrageous memory and bandwidth requirements, there were several lightfield-related concepts which we adopted into the renderer for computing diffuse and directionally-diffuse reflections.
G. Ward, M. Simmons. The Holodeck Interactive Ray Cache
M. Simmons. A dynamic mesh display representation for the holodeck ray cache system
Web Rasterizer
The web-based visualization product at my former company required a Java applet for user interaction and navigation around the 3D scenes we presented. The prototype version was very limited, and I was charged with rewriting it. The new applet I produced contained a wireframe and Phong rasterizer that could fluidly handle tens of thousands of polygons on a modest system. In addition, it contained a state engine for handling scene changes, multiple navigation modes and a full 2D windowing API with clipping, icons and transparency. Since we were targeting modem and PDA users, I had to shrink the compiled applet size to 20kb. I also had to protect the code from reverse engineering (to the best of my ability) using a variety of byte-compiler techniques.
D. Rayside, E. Mamas, E. Hons. Compact Java Binaries for Embedded Systems
J. Jeuring.
F. Tip, C. Laffra, P. Sweeney. Practical Experience with an Application Extractor for Java
W. Pugh. Compressing Java Class Files
Subsurface Scattering in Global Illumination
In order to meet the requirements of potential customers in the movie industry, the first revision of our global illumination renderer required, among other things, a highly accurate and realistic skin shader. I did some research into the subject and decided that since we were using a modified path tracing scheme for the core renderer, Wann Jensen’s BSSRDF algorithm for photon maps would adapt well. Over the course of several weeks I studied both his photon mapping technique and the BSSRDF concept, then implemented both marble and human skin surfaces for our renderer.
P. Shirley, H. Hu, B. Smiths, E. Lafortune. A Practitioner’s Assessment of Light Reflection Models.
H. Wann Jensen, S. Marschner, M. Levoy, P. Hanrahan. A Practical Model for Subsurface Transport
H. Wann Jensen. Realistic Image Synthesis Using Photon Mapping. AK Peters, 2001.
A. M. Ivanova, S.P. Kotova et al. Estimation of possibility of multiple scattering medium optical parameters determined by backscattered light
C. E. Siewert. Inverse solutions to radiative-transfer problems based on the binomial or the Henyey-Greenstein scattering law
Physically-accurate Global Illumination
The final and most engaging project I undertook at Immersive was the development of our flagship GI renderer. We targeted the auto design and CAD industries, where high quality visualization could be used to supplant expensive physical prototypes. Our product was a network renderer, capable of easily delivering stunning photorealism with very little modeling and surfacing effort. Auto designers could take CAD or even CAM data, apply some pre-selected surface parameters and generate a photograph-quality image.
The key to delivering these features was physical accuracy. I was central to designing and implementing most components in the rendering system: a radiometrically-accurate framework for light transport; an algebraic, templatized sampling framework in 2D and 3D, including key Monte Carlo techniques such as importance sampling; conservation of physical units and properties throughout all computations (power, spectral distribution, radiance, etc.); environmental and planar lighting from high dynamic range images. We expended great effort to ensure mathematical rigor and physical accuracy, and spent much time building a deep grasp of the sampling theory and radiometry roots of global illumination. After the core photon map and Monte Carlo code were finished, we researched improvements such as irradiance gradients and irradiance Jacobians, as well as alternative spatial subdivision structures.
A. Glassner. Principles of Digital Image Synthesis, Vol I & II. Morgan Kauffman, 1995
R. McCluney. Introduction to Radiometry and Photometry. Artech House, 1994.
H. Wann Jensen. Realistic Image Synthesis Using Photon Mapping. AK Peters, 2001.
E. Veach. Robust Monte Carlo Methods for Light Transport Simulation
L. Szirmay-Kalos. Stochastic Methods in Global Illumination - State of the Art Report
P. Shirley. Physically Based Lighting Calculations for Computer Graphics
P. Dutre. Global Illumination Compendium
G. Ward, P. Heckbert. Irradiance Gradients
P. Debevec, J. Malik. Recovering High Dynamic Range Radiance Maps from Photographs