Friday, 30 January 2009

Interview with NVIDIA's Jensen Huang (and some books)

I just came across this entertaining interview with Jensen Huang. I particularly love this quote: "Q: Jeffrey Katzenberg is giving effusive testimonials for Intel’s Larrabee graphics chip. A: You and I don’t know what Larrabee can do. It doesn’t exist. If you pay for Katzenberg’s compute farm, he will tell you your lawnmower is great for making movies. " The interview was done by Dean Takahashi, who also wrote the book "Opening the Xbox: Inside Microsoft's Plan to Unleash an Entertainment Revolution", which I only recommend if you're really into games consoles and high-tech folklore. While we're on the subject of nerd books, I also just read "The Race for a New Game Machine: Creating the Chips Inside the XBox 360 and the Playstation 3", which all about the IBM/Sony/Toshiba project to develop the Cell processor. It's no "The Soul of a New Machine" (which the authors credit in the intro), and it doesn't really cover the subsequent total lack of success of Cell outside the PS3, but it's somewhat interesting if you're into chip design. It also reads like their publishers tried to turn it into a management book half way through, which is a shame.

Thursday, 15 January 2009

Visual Adrenaline

I just love Intel's "Visual Adrenaline" magazine. It's such an unabashed marketing vehicle! This month there's a real treat in the form of a article by Daniel Pohl on his new ray traced version of the game Quake Wars. It was this paragraph at the beginning that really got my goat (my emphasis): "Today’s games all use a rendering technique called rasterization. Rasterization requires difficult programming work and as many special effects (such as shadows or reflections) need to be calculated as approximations over multiple rendering passes and are often stored in resolution-limited textures in between." (sic) Now, don't get me wrong, I love ray tracing, and I think that soon (like in the off-line rendering world) real-time graphics will probably converge to a hybrid model that uses rasterization with ray-tracing effects where they make sense. But to claim that rasterization requires "difficult programming work" and is any more of an approximation than ray tracing is just misleading. Rendering is all an approximation, and real-time rendering is more approximate than most. Sure, it's easier to to do hard edged shadows using ray tracing, just shoot another ray, but start adding soft shadows and you might start wishing you had a shadow map to blur. And what about the "difficult programming work" and run-time cost of constructing the spatial data structures which are essential to make ray-tracing perform decently? Ray tracing advocates too often ignore this. He then actually goes on to discuss in detail how badly ray tracing handles the alpha-tested trees in the game because of the thread divergence this causes. He says: "Another advantage of using a ray tracer for partially transparent objects is that they don’t need to be sorted by their depth" Err, I believe the trees in Quake Wars are rendered using alpha-to-coverage, so no sorting is necessary. (Addendum: you could also argue that ray tracing is also essentially doing a sort by traversing a spatial data structure of the scene and returning the closest hit.) The final icing on the cake is the image above, which is supposed to show ray-traced refraction, but as far as I can tell doesn't actually show the back faces of the dome and thus spectacularly fails to demonstrate an actual benefit of ray tracing!

Wednesday, 7 January 2009

Volumetric Particle Shadowing

This has been available for a while in the CUDA 2.1 SDK beta download, but since the PDF isn't on the web yet it hasn't had much exposure, so I thought I'd post something about it here. It's a very simple technique which is based on an old volume rendering trick by Joe Kniss, but it can achieve some great looking results. The basic idea is to that instead of sorting the particles in back-to-front or front-to-back order, you sort them along a vector half way between the view and light directions. You then render the particles in batches, accumulating the shadows to a 2D texture as you go. You can even add some blur to simulate scattering. Details are in the PDF (fixed link). Oh, and there's a short movie here.

Screen Space Fluid Rendering with Curvature Flow

Our paper "Screen Space Fluid Rendering with Curvature Flow" is now available to download here.

I3D 2009 papers online

The always reliable Ke-Sen Huang has posted a list of the available papers from I3D 2009, although quite a few are missing at this point.