The GeForce FX and DirectX 9.0 With the recent announcement of NVIDIA's next generation product, the GeForce FX, in addition to the new effects available within the new DirectX 9.0 API, there are three new major features:
When paired with the NVIDIA Cg Developer's Toolkit, designers can take full advantage in developing dramatic visual effects. Pixel Shader 2.0 The DirectX 8 pixel shader specifications can be called more configurable rather than programmable. This is due in part to the original DirectX 8 specification needing general programmability associated with a full instruction set and flexible programming structure. However, the newer GeForce FX graphics processor unit (GPU) and DirectX 9 pixel shader specifications allow for much longer shader programs. This benefits software developers by providing them with a greatly-expanded pixel shading instruction set. DirectX 9 introduces Pixel Shader 2.0. This newer version of DirectX reveals the true programmability of the pixel shading engine. For the first time, procedural shading on a GPU is possible. The Pixel Shader 2.0 spec in DirectX 9 is capable of impressive new levels of image quality. Such an example of this new level of image quality is procedural shading which uses math computations to calculate what the pixel color should be and presents a solution to the age old issue of mapping a 2D image onto a curved object. The picture below shows the wood grains and the rough surface of the ceramic vase. This was done using procedural shading. No textures were utilized to create the scene. Vertex Shader 2.0 The DirectX 8 vertex shader specification gave developers very little control over program flow. DirectX 8 vertex shader programs were executed linearly, with no early termination for performance optimization. Now, DirectX 9 and the GeForce FX GPUs support conditional branching for greatly improved program flow control. DirectX 9 presents Vertex Shader 2.0. This improved vertex shader specification increases the power of the previous DirectX vertex shader by increasing the length and flexibility of vertex programs. The Vertex Shader 2.0 improves upon the previous vertex shader specification of DirectX 8 in two ways: longer vertex programs and longer flow control. The picture below shows the benefit of longer vertex programs. The results of longer vertex programs is the creation of complex and visually believable effects such as this 3D rendering of waves in ocean water. High-precision, floating-point color By allowing designers to use high-precision operations, developers are able to create more sophisticated special effects. Along with the added flexibility of being able to switch between FP16 and FP32 (16- and 32-bit floating point formats), developers can adjust the necessary computations for the best suited situations, affording them the maximized executions speed while offering an optimal balance of image quality and performance. High-precision, floating point color is what makes real-time cinematic graphics possible. Programmability Using DirectX 9 As you can see from the chart below, the newest implementation of DirectX working alongside with the GeForce FX gives developers much more accuracy, higher precision, as well as a longer and more flexible program structure.
that can be used in a valid shading program. Stunning Effects With all the improvements made in DX9, along with its implementation through the GeForce FX architecture, this translates to visually stunning differences in the world of real-time graphics, as shown in the side-by-side comparison below. Objects such as plants, metallic paint, skin, and eyes can now be shown in great detail and with sophisticated effects.
Faster Effects A good example of the performance raising capabilities of DirectX 9 is the Wolfman Demonstration made to show capabilities of the GeForce4 Ti GPU. Using DirectX 8 rendering, the fur on the Wolfman character took eight passes for every pixel. Using DirectX 9, the GeForce FX GPU is able to render the Wolfman's fur in one single pass for every pixel. The result is a big performance gain without sacrificing image quality. Conclusion Microsoft's DirectX 9 specification is an important part for raising the bar of real-time graphics. DirectX 9, paired with the capabilities of the GeForce FX GPU, brings to the table the best programmability, versatility, and precision available to developers today. Through these two engines, developers will be able to bring forth the reality of presenting their artistic visions through stunning real-time cinematic graphics rendering, while end users will be treated to ground-breaking visual experiences. |