Thursday, 15 January 2009
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!