GDC First Day

Today was the first day of GDC. For me, it was a day dedicated to graphics and DirectX 11 with speakers from AMD, NVIDIA (yeah, those two could get along), Crytek and Crystal Dynamics.

A lot of theory was covered, first a quick overview of DIrectX 11, then we continued with particle self-shadowing and optimizations. After that, there was some stuff about DirectCompute, but it was quite rushed, so it wasn’t as educative as it could have been. After that, we got a guy from Crystal Dynamics talking about how he simulated the hair of Lara Croft In their latest game, quite interesting stuff. I was very excited about the talk by the Crytek game programmer, but I ended up a bit disappointed. Too many subjects were covered with too little depth.

After that, two guys from AMD presented a comparison between Forward++ and Deferred shading. This was by far the most interesting topic of today, I’ll probably research this a bit more and write a separate blog post about this subject (I’m so excited about Forward++ shading!) The final talk was about deferred contexts, which make it easier for a graphics programmer to put rendering code in different threads.

From all these subjects, forward++ shading got me most excited. I already knew about deferred rendering. Deferred rendering allows you to inexpensively add lights to your scene, enabling you to have hundreds or thousands of dynamic lights at the same time. It has it’s disadvantages though. MSAA doesn’t work with deferred shading, you need to go through a lot of hoops to get that working. A second shortcoming is transparency, while inferred shading can partially solve this problem, it still is more like a hack than a good solution to transparency.

Forward++ shading supports a lot of dynamic lights just like deferred shading, but it doesn’t have these shortcomings. It does have a few disadvantages, it’s a little bit more expensive in some cases (doesn’t scale as well as deferred lighting). I’ll discuss these pros and cons later in a post dedicated to this subject.

I’ll be attending an iOS game programming bootcamp tomorrow. Here’s a (fairly bad) picture of one of the talks of today: