SIGGRAPH 2008

Post date: Aug 21, 2008 6:2:36 PM

Okay, I must talk about this before I forget everything. So, I attended my first SIGGRAPH and it was awesome, apparently there were a lot of changes from previous years that people didn't like, but I probably wouldn't have noticed anyway since I spent pretty much every spare moment attending every course, talk, and paper on Global Illumination, Ray Tracing, Real-Time Rendering, and Programmable Shading. All around a very inspiring experience which has left me with a lot questions, and few cool ideas, in fact, I've been spending an inordinate amount of time chasing down papers and background on a lot of this stuff.

Anyway, on to some of the cool stuff...

Alias Free Shadow Maps

I forget who exactly was talking about this, but it wasn't actually a SIGGRAPH paper, rather Eurographics. But it is a clever idea, in which the screen space pixels are transformed to the image plane of a light source, and the results are incredible. I dug up a couple on papers on this:

Alias-Free Shadow Maps (2004), which I've mostly read, but doesn't yet describe a hardware implementation

Sample Based Visibility for Soft Shadows using Alias-free Shadow Maps (2008), which does describe a hardware implementation, that I haven't gotten to read yet, and details extensions for soft shadows.

Alias-Free Shadow Maps using Graphics Hardware (2007), this one annoys me because it sounds like exactly what I would want to read, yet apparently its not freely available.

Voxel's and Raycasting

These were an awesome set of talks presented by Jon Olick from id software, in which he advocates (quite convincingly) a return to voxel based graphics and raycasting using some clever data structures like the Sparse Voxel Octree (SVO).

Current and Next Generation Parallelism in Games, the talk itself, which describes many of the crazy optimizations and tricks used to get this to work.

One thing I don't get is that he describes several methods for enumeration surfaces into voxels, but settles on subdivision because its easiest, but I don't get how he can guarantee the new subdivision points will be placed in the voxels he wants to fill. Oh well, rasterization seems easier to me, but that's probably because I had to do something similar for my HistoPyramid implementation last quarter.

Which brings me to any interesting question, are SVOs and HistoPyramids similar, it seems like the HistoPyramid reduction step could be used to generate an Octree, and the compaction generates a sparse voxelized representation of the scene geometry. Anyway, I found this blog, which talks a bit more about it and provides more links, although there seems to be no specific paper on SVOs.

Also found some Voxelization papers somewhere in the ompf forums.

Fast Scene Voxelization and Applications (2006)

Real-Time Voxelization for Complex Models (2004)

Froblins

Okay, so I thought the Froblins themselves were pretty lame, and the demo (from ATI) seemed totally gratuitous, but this was the one presentation that I thought had interesting and applicable techniques to my Farmer project. Where I use a shunting equation to create a potential field, they using the eikonal equation, which apparently has its origins in optics, and seems popular for propagating wavefronts, as in the Eikonal Rendering paper, there is even some hlsl code on how the solve it in parallel.

March of the Froblins, talk from ATI's techreports

...and some papers about solving Eikonal Equations

A Fast Iterative Method for Eikonal Equations (2007)

A Fast Eikonal Equation Solver for Parallel Systems (2007)

OpenGL 3.0

The spec was released! And I got a shirt! But, other than that it seemed like they finally realized that they better release something or OpenGL would begin dying off (more so), there's a better writeup about what did and didn't make it into OpenGL 3.0 in these two postings. Although there was no discussion of OpenGL's answer to some of the new DirectX 11 features like...

Tesselators

Tesselators were discussed a lot, in papers that seemed increasingly DirectX specific, I'm not exactly sure what the OpenGL equivalent to this would be, so far I've come up with the following:

Instanced Tessellation, recently in nVidia's OpenGL SDK 10.5, based on Generic Mesh Refinement on the GPU.

GLOD: Geometric Level of Detail for OpenGL, a free library with associated paper

Semi-uniform Adaptive Patch Tessellation, with extra HistoPyramids!

Okay, that enough writing, I know I've left a lot out, but hopefully if its important enough I'll get to it later.