bit-tech.net

A bluffer's guide to Shader Models

As with all technological changes, things haven't exactly gone according to plan when it comes to the upgrade path, because hardware vendors haven't all leapt on board with the same degree of commitment. NVIDIA have been making a huge amount of noise about their Shader Model 3.0 support in their current hardware, which is something that ATI doesn't have.

However, with up to half their market without the ability to run 3.0 routines, game developers haven't been quick in their implementation - it's only now that we are really starting to see games come out that take advantage of the capabilities of the specification. Previous games, such as Far Cry, have used 3.0 as a way of speeding up render routines, because most effects that can be done in 3.0 can also be done in 2.x, albeit with a performance hit. However, later patches have added support for HDR lighting and the like, which are exclusive NVIDIA's GeForce 6 series and above at the moment.

Far Cry

A bluffer's guide to Shader Models More shaders
Just what difference do the specs make to games, then? Well, we've already touched on Far Cry. Patch 1.3 added the full Shader Model 3.0 support into the game, and a performance increase on hardware that supported it was clear - we saw an average framerate leap from 40 to 50 FPS (approximately) on a 6800 Ultra at highest settings. Throughout the game, we saw around 15% extra performance - a testament to the fact that whilst the 3.0 and 2.x paths look mighty similar, the code compromises required in 2.x clearly hit the performance. If you want to see for yourself, you can input '/r_sm2xpath 1' in the game console to force 2.0b, or '/r_sm30path 1' to force 3.0 on supporting hardware.

The higher colour precision and FP16 blending supported by NVIDIA's hardware means that the1.3 patch enables the use of High Dynamic Range lighting, which presents a much more varied colour range on your screen. Brights are brighter and darks are darker, with the overall experience appearing far less bland. There is a big performance hit for enabling it, due to the extra precision on the mathematical calculations, but the next generation of hardware, such as the GeForce 7800 GTX, is far more competent at it.

Splinter Cell: Chaos Theory

A bluffer's guide to Shader Models More shaders
There are also clear advantages to be had in the latest version of Splinter Cell: Chaos Theory. Here, the developers have chosen to implement two shader paths, - 1.1, for legacy hardware, and 3.0. The lack of a 2.x path will mean that ATI users are left out in the cold a little - forced to stick with 1.1, their graphical quality will suffer a little, at least until ATI pitches up with 3.0 hardware.

The use of the two different models highlights the big differences that the specifications can make. The 1.1 path in SCCT allows for transparent materials, real time reflections, filtered soft shadows, specular lighting and procedural animated texturing. However, the 3.0 path allows for parallax mapping, enhanced filtered soft shadows, HDR lighting, high precision rendering and an advanced skin shader for subsurface scattering.

What?

What do these features mean? Well, just enabling the 3.0 path willl give you a performance improvement over the 1.1 path, assuming identical image quality, because 3.0 is more efficient. Adding in 3.0-specific graphical features will increase image quality at the cost of performance.

Parallax mapping is a form of displacement mapping. It allows for textures to be given the appearance of height by allowing the use of a parallax distortion alongside a height map which is laid on top of the texture. Simply - it gives an impression of depth without having to use lots of geometry to make up bumps.

The Soft shadows obviously allow for better quality shadows - this is partly achieved by having the 3.0 shadow shader use dynamic branching to execute quicker - dynamic branching being part of the 3.0 spec.

Subsurface scattering is a way of rendering the partial translucency of a surface like skin, by showing how the light plays under the surface - it can give jaw-dropping effects, and is used well on the characters in the game.

The High precision rendering prevents colour banding that can sometimes be seen, with more precision meaning better colour reproduction.