Wednesday, August 10, 2011

SIGGRAPH 2011 Trip Report: Day Two

I started off today at some of the NVIDIA exhibitor sessions. In the OpenGL & CUDA-Based Tessellation talk, Philippe Rollin made an excellent point about tessellation shaders: the result can be cached using transform-feedback, and used for several frames. This is just one of the many examples of the synergy among recent hardware features. He also convinced me that tessellation can be useful for real-world terrain data by reducing the amount of preprocessing - and everyone hates preprocessing! In the final part of this talk, Miguel Ortega talked about tessellation in Thor. An interesting stat he mentioned is that the biggest asset used 900 4K textures - wow! Movies are quite a bit different than real-time rendering.

I also stayed for the Parallel Nsight 2.0 and CUDA 4.0 for the Win talk by Jeff Kiel. Parallel Nsight has some very impressive Direct3D debugging capabilities, and I'm looking forward to full OpenGL support. I will be ecstatic when I can set breakpoints in a shader. Parallel Nsight is also a great tool for GPU Compute debugging. I want to work this into our GPU course, but requiring two GPUs will call for some careful logistics. However, it will run on some laptops.

I spent some time in the Advances in Real-Time Rendering course, but I spent the bulk of my afternoon in the How to Write Fast iPhone and Android Shaders in Unity Studio Workshop by Aras Pranckevičius and Renaldas Zioma. So far, this was my favorite talk of the conference. It was full of battle-won tips on optimizing shaders for mobile platforms. I haven't done any mobile development yet, but it sounds messy with all the different architectures. For example, on some architectures you should pack varyings into a vec4, and on others you shouldn't. Some architectures scale better than others as more ALU instructions are used. Some architectures care what precision qualifier you use (lowp, mediump, highp), some don't, and some are slow when swizzling lowp precision variables.

Some themes were uniform across all architectures though: baking lighting into textures to avoid heavy ALU instructions like the pow() function in specular lighting; combining several post-processing passes into a single pass to avoid fill-rate; and pragmatic front-to-back rendering for early-z, e.g., render the large player, followed by the environment, followed by enemies which are likely occluded, and finally the skybox. I really enjoyed how this talk was realistic, and even mentioned the reality of optimizations not working and tools crashing. These things happen to me too, and I always tell my friends so you really want to be a graphics developer?!?!? I hope they give a similar talk next year, and that SIGGRAPH gives them a bigger room with more seats.

Full SIGGRAPH Trip Report: day one | two | three | four | five

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.