Introduction


While ATI’s “Shader Day” was a very useful educational experience, inevitably it will mainly be remembered for the comments from Valve's presentation by Gabe Newell concerning NVIDIA’s products and how they perform with Half Life 2. Which is a shame in some ways. However, the strong way in which Valve has spoken out is more or less a direct result of the strength of ATI’s hardware shader capabilities.

First Valve were keen to stress that Half Life 2 was written in such a fashion to make effective use of a wide range of DirectX9 functionality – in fact in many places they started with DX9 and deconstructed the operations for DX8 paths. Because of this they go on to suggest that the performance trends displayed under Half Life will be more or less the case with other games that make effective use of DirectX9.

The feature utilisation of DirectX9 with Half Life 2 includes:

  • High Dynamic Range
  • Bump Mapped Characters and environments
  • Soft Shadows
  • DX9 Shader utilisation

Part of the purpose of Valves presentation was to show off some of the new DirectX9 utilisation within the Half Life 2 engine and game. The latest addition of which is "High Dynamic Range".


 

The increased range that the full floating point precision DirectX9 pipeline required was utilised for the high dynamic range, which shows more “blooming” effects as bright light streams through openings, and surfaces that display different reflective properties giving them a more realistic look. As floating point precision is required for the HDR effects, architectures that have a mixed integer and floating point path will be at a disadvantage as only the floating point path can be utilised for these effects, and architectures that were designed to be fully float will be more efficient. High Dynamic Range will be enabled in the DirectX9 path of the game, however it requires floating point render target support so that DirectX9 graphics boards that do not have this enabled in the drivers will not be able to reproduce these photorealistic effects.

Half Life 2 will also make extensive use of bump mapping on both environments and characters. A few environmental examples were given, with subtle use such as little architectural effects being created by bump mapping, to more dramatic displays such as a very rocky cave wall – both of these were generated with very simple flat polygons, but the bump mapping can simulate a startling level of detail. This technique has more recently also been applied to the characters in Half Life 2, giving them a greater element of detail.

Valve appeared to be very happy with the way they were able to implement DirectX9 into their engine and the way it utilised the hardware. The nature of the way they were able to implement DirectX9 allowed them to more effectively expose the underlying hardware and make efficient use of it. They cite the example of the Radeon 9800 able to run the full DirectX9 functionality at the same performance as the DX8 path despite the fact that the DirectX9 path has a greater feature utilisation. From here on in, anything new added will only be DirectX9.