SIGGRAPH 2007 papers posted

April 25, 2007 at 2:33 pm (Papers)

Tim Rowley’s graphics conference paper page has been updated with a list of papers that will be presented at this year’s conference! Only a few have links to papers, but still worth a good glance. Hard to say without seeing the papers, but my interests have been piqued by:

Implicit Visibility and Antiradiance for Interactive Global Illumination by Dachsbacher et al.

Interactive Editing and Modeling of Bidirectional Texture Functions by Kautz et al.

A Theory of Locally Low Dimensional Light Transport by Ramamoorthi

I’m interested in the Dachsbacher paper because I feel like he’s had a lot of good ideas in real-time global illumination but none of them so far have been practical enough for games. The Bidirectional Texture Functions paper is interesting because they’ve been around for awhile but I don’t think anyone has been using them because they’re a bit difficult to obtain and for artists to control.


Permalink Leave a Comment

Linearize Depth

April 16, 2007 at 2:55 am (Tips & Tricks)

I was just working on something in which I needed linearized depth values. I couldn’t remember how to do this off of the top of my head. Turns out you just take into account w, which makes complete sense now that I’ve seen it (doesn’t it always work that way?):

float4 vPos = mul(Input.Pos,worldViewProj);
vPos.z = vPos.z * vPos.w / Far;
Output.Pos = vPos;

This was poached from Robert Dunlop’s page

Permalink Leave a Comment

Hardware accelerated ambient occlusion techniques on GPUs

April 15, 2007 at 3:12 pm (Papers)

image from the paper

This paper has gotten the most attention from me from the limited time I’ve had to look through I3D papers. It’s not revolutionary or difficult to understand, but it seems fairly practical. The paper describes two methods. An image-based technique (i.e. performed on a 2D image of the scene, independent of geometric models/surfaces/media) for high-frequency ambient occlusion. Here, high-frequency refers to ambient occlusion caused by local surfaces to a point on a surface. A second technique addresses ambient occlusion on a global scale.

Image-based technique summary:

Each texel in a rendered depth map of a scene is represented as a sphere with a radius proportional to the depth in the scene. To find the ambient occlusion for each texel, sample some stochastic pattern in the neighbohood around the texel in question, calculating the area of the spherical cap subtended by the neighbor sphere (see Figure 3 in the paper). This calculation is used by many real-time occlusion techniques (see my other entry here )

Object-space technique summary:

For non-local ambient occlusion (inter-object occlusion, etc.), each object is represented as spheres. This setup is similar to the “Real-time Soft Shadows in Dynamic Scenes using Spherical Harmonic Exponentiation” paper at SIGGRAPH06. To calculate the ambient occlusion, an image-space technique is performed. A billboard is drawn at each sphere in screen space and the amount of occlusion of each pixel within that quad is increased by an amount based exponentially on the distance from the center of the quad. After performing this operation on all representative spheres in the scene, you have a rough approximation of the ambient occlusion.

I think these methods are certainly useful, and there are probably lots of small improvements that could be made in implementation that could improve performance. It may be more practical to use the image-based technique and not the global technique; It seems that the major bottle neck is the global technique. One improvement to the image-based technique would be to use an array of constants instead of a 1D texture lookup to find offsets for neighbors. Unnecessary texture fetches are bad.. especially dependent ones.

Another thing to look at might be optimizing the generation of the representative spheres (less = good) as in Wang et al.’s “Variational sphere set approximation for solid objects” paper and/or using low detail representations for distant objects. You could also construct the billboards used in the Geometry Shader from skeleton/medial axis vertices.

Perumaal Shanmugam’s website

Permalink 5 Comments