Upcoming Events
Southwest Gaming Expo
11/20 - 11/22 @ Dallas, TX

Workshop on Network and Systems Support for Games (NetGames 2009)
11/23 - 11/25 @ Paris, France

ICIDS 2009 Interactive Storytelling
12/9 - 12/11 @ Guimarães, Portugal

Global Game Jam
1/29 - 1/31  

More events...


Quick Stats
6542 people currently visiting GDNet.
2341 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!



Link to us

Link to us

  Intel sponsors gamedev.net search:   
Core Techniques and Algorithms in Shader Programming
Posted March 17 2:48 PM by Drew Sikora
The tutorial day "Core Techniques and Algorithms in Shader Programming" on Monday was targeting graphics programmers. Myself, Tom Forsyth and Matthias Wloka put together a trip down the graphics pipeline of a modern game. We started with lighting.

Matthias Wloka from Visual Concepts covered the lighting system they use in their 2K sports titles. They have to mimic a huge number of static lights in an arena and therefore pre-baking this number of lights into a cube map gives them good results. The approach is similar to the idea of a diffuse cube map and very efficient.

Carsten Dachsbacher outlined a "radiosity-like" approach that was running in real-time and that showed a lot of potential for games. He also outlined a two-sided refraction approach that was developed by Chris Wyman. Both approaches are also featured in ShaderX5 with source code. His global illumination approach based on a combination of shadow maps and a deferred renderer is one of the most scalable approaches that are available. It runs with acceptable radiosity like quality with very high framerates on decent graphics cards and seems to be the closest for being usable in games nowadays.

Tom Forsyth (RAD game tools) outlined depth and ID based shadow map approaches and he was also featuring multi-frustum approaches he developed. A simple multi-frustum approach is called Cascaded Shadow Maps and it is featured in an article in ShaderX as well. When Tom was asked what he thinks about shadow volumes he mentioned that it is possible that they provide very different performance results for different scenes in a game. There was also a question on if the speakers have used variance shadow maps. Wolfgang said he looked into it and in general they trade depth aliasing against light bleeding. With increasing depth complexity light bleeding gets more obvious. Matthias said they use them in their games, that have a low depth complexity.

Ken Hurley from Signature Devices was talking about ways to compress/decompress vertex data and attributes to reduce the pressure on the vertex shader unit. Being vertex shader limited is something that can happen during cross-platform development in case the vertex count and the number of vertex attributes is not suitable on one platform, while the other platforms can easily cope with it.

Martin Mittring from Crytek outlined their tangent space calculation system. It is open source, was used in Far Cry and is now used in Crysis in the same way. He encouraged developers to use it and was making a point that he thinks it provides superior performance and quality to other algorithms.

Vlad Stamate from Sony was talking about deforming geometry to mimic bullet holes. He outliend an implementation for the PC and the PS3 and mentioned that the PS3 version will be available in the PS3 SDK.
Lutz Latta from EA LA gave an overview on how to implement particle systems. He showed breath-taking screenshots from the particle effects in Command & Conquer 3 and outlined how he implemented the particle system in this game.

I talked about several aspects of a post-processing pipeline, focusing on gamma control, High-Dynamic Range rendering and a Depth-of-Field effect. The main take-away for the audience were some algorithmic improvements of the effects and a real-world coverage how this is used in a game team.

Tom Forsyth described in his second talk how to integrate shaders into a game engine. He talked about Ubershaders and using several fx files. He outlined that some studios use a shader library consisting of shader include files and then write specific shaders in fx files.

Matthias Wloka ended the day by talking about performance optimization tips for the PC. He gave lots of rules of thumb and suggested to think big on the PC.

The slides of the tutorial day can be downloaded from www.coretechniques.info

This tutorial day was great. It was 9 hours of concentrated real-world knowledge coming from some of the best graphics programmers in the world that work on AAA titles. Those guys put a lot of love into this.
I especially liked the fact that we all had time for questions and there were in average about more than 5 questions asked and answered after each talk.

- Wolfgang Engel
 
 
Menu
 Back to GDC 2007
 See more Programming
 Discuss this article