Scenes modeling the real-world combine a wide variety of
phenomena including glossy materials, detailed heterogeneous
anisotropic media, subsurface scattering, and complex
illumination. Predictive rendering of such scenes is
difficult; unbiased algorithms are typically too slow or too
noisy. Virtual point light (VPL) based algorithms produce
low noise results across a wide range of
performance/accuracy tradeoffs, from interactive rendering
to high quality offline rendering, but their bias means that
locally important illumination features
Single Scattering in Refractive Media with Triangle Mesh
Light scattering in refractive media is an important optical
phenomenon for computer graphics. While recent
research has focused on multiple scattering, there has been
less work on accurate solutions for single or low-order
scattering. Refraction through a complex boundary
allows a single external source to be visible in multiple
directions internally with different strengths; these are
hard to find with existing techniques. This paper presents
techniques to quickly find paths that connect points inside
and outside a medium while obeying the laws of refraction.
We introduce a half-vector based formulation to support the
most common geometric representation, triangles with
interpolated normals; hierarchical pruning to scale to
triangular meshes, a solver with strong accuracy guarantees,
and a faster method that is empirically accurate. A
GPU version achieves interactive frame rates in several
Fast Agglomerative Clustering
This paper describes how to build binary trees using
agglomerative (or bottom-up) construction quickly and
evaluates the quality of the trees compared to divisive (or
top-down) construction in two applications: BVH trees for
ray tracing and light trees for Lightcuts. We
introduce a novel faster unordered agglomerative clustering
algorithm for use when the clustering function is
non-decreasing. Our results indicate that the
agglomerative-built trees generally have higher quality
though the build times are a little slower than the fastest
|Several people asked if a divisive builder that tries splits on all three axes rather than just the longest one would make a significant difference. I tried this and SAH estimated cost results (see figure 6) are shown in this table. The quality improved at the cost of slower builds but still does not match the agglomerative quality. The maximum depth of each BVH is shown in paranthesis () with agglomerative trees tending to be a little deeper than the divisive ones.||
Microfacet RefractionThis work extends microfacet theory (eg, Cook-Torrance models) to handle refraction through rough surfaces such as etched glass globe shown. We also discuss the Smith shadowing-masking approximation for general microfacet distributions and good importance sampling strategies (which is essential when simulating transmitted light). Published at EGSR 2007. You can download the EGSR 2007 paper (pdf) here.
Multidimensional LightcutsThis work extends the approach and concepts of Lightcuts to scalable rendering of complex effects such as motion blur, depth of field, and volume rendering. We achieve greater scalability by holistically considering complete pixel integrals and using an implicit hierarchy called the product graph.
You can download the SIGGRAPH 2006 paper (pdf) and a movie from the
The SIGGRAPH presentation slides are available in powerpoint or pdf formats, and a separate archive of clips on the movies page. (Note: the powerpoint file was created on a Macintosh computer and some of the graphs do not seem to display properly under Windows.)
Lightcuts: A Scalable Approach to IlluminationComputing the illumination from complex sources such as area lights, HDR environment maps, and indirect, can be very expensive. Lightcuts introduces a new scalable algorithm for computing the illumination from thousands or millions of point lights. Using a perceptual metric, a binary light tree of clusters, and conservative per-cluster error bounds, we show that we can accurately compute the illumination from hundreds of point lights using only hundreds of shadow rays. A lightcut is cut through the global light tree that adaptively partitions the lights into clusters to locally control the cost vs. error tradeoff. We also introduce a related technique called reconstruction cuts that uses the lightcut framework to further reduce shading costs by intelligently interpolating illumination while preserving high frequencies details like shadow boundaries and glossy highlights.
You can download the SIGGRAPH 2005 paper (pdf) (Note: several figures were printed incorrectly in the proceedings but are correct in the PDF) and a movie from the
The SIGGRAPH presenation slides are available in powerpoint or pdf formats.
A related technical report discusses several important implementation issues for the Ward BRDF including the correct sampling weights that should be used when using it associated Monte Carlo sampling distribution.
Perceptual Illumination ComponentsDifferent components of global illumination have widely varying costs, but may not provide the same benefits to image quality. We performed a user study to examine this issue. We divided the illumination into several components based on the BRDF (indirect diffuse, indirect gloss, indirect specular), rendered images with different subsets of the illumination. We then had people rank the images and studied the results. What we found is the components had differing affects on user-ranking (though indirect diffuse was usually the most important), but that we could predict their importances quite accurately using a simple model and some simple image/material statistics. We think this can provide insight for creating more efficient rendering systems in the future.
Published in SIGGRAPH 2004. More information can be found on the first author's page.
Feature-Based TexturesBy adding explicit features (eg, discontinuity edges) to a standard raster-based textures, we can increase image quality, especially during magnification, with only minimal extra storage. Features can be automatically extracted from vector format images, approximated for raster images, or hand annotated.
Published in EGSR 2004. More information can be found on this project page.
Combining Edges and PointsBy combining edges (explicit discontinuities) and points (shading samples), we are able to reconstruct high quality images from relatively sparse data. By computing the exact locations of discontinuities, we are able to interpolate the sparse data without smoothing out these sharp features and we also show that knowing the subpixel location of the edges allows to compute good quality anti-aliasing almost for free and without supersampling. Our software implementation runs at interactive rates on the CPU and future versions should be able to exploit the GPU for even faster framerates.
Published SIGGRAPH 2003. More information can be found on this project page.
A GPU-based version was published at Graphics Interface 2006.
The render cache enables interactive display by caching rendered results as colored 3D points, reprojecting them to estimate the current image, and automatically deciding which subset of pixels should be (re)rendered for future frames. Because the image generation and pixel (or ray) rendering happen asynchronously, we can guarantee a fast consistent framerate regardless of rendering cost (though renderering cost does affect visual quality). In our experiments we have found that we get very good visual quality when only one tenth the pixels are rendered per frame and acceptable quality when only one hundreth of the pixels are renderered per frame (the rest of the pixels are estimated by reprojecting older results).
This work was begun while I was a post-doc at the iMAGIS lab in
Grenoble, France and continued at Cornell.
You can view a project page here (including a link to the Eurographics Rendering Workshop '99 paper ). (Powerpoint presentation)
A followup paper, Enhancing and Optimizing the Render Cache, appeared in EGRW 2002. (Powerpoint presentation)
A GPU-based version was published at Graphics Interface 2006.
There is also a
web-downloadable binary so that you can try it out for
yourself or download the C++ source code under GPL license and
compile it yourself.
You can get my thesis here
You can get our Transactions on Graphics 1997 paper here .
You can get our Eurographics Rendering Workshop '95 paper here .
You can get our SIGGRAPH '97 paper
The path-buffer is a modified z-buffer with two z values per pixel. The extra z value allows us to use the the path-buffer and scan conversion to trace rays in a path tracing style algorithm. This reformulated algorithm is designed to be easy to accelerate using scan conversion and z-buffer type hardware. More details can be found in: