The GeForce 3 & the NV20 Demystified!

Friday, March 02, 2001

The Pixel Shader

The Nvidia GeForce 2 line of video cards used Dot3 and some other a per-pixel effects through fixed functions of the pixel texture stage pipeline. Textures could be combined in a single pass to create effects. However, there was no loopback and therefore effects that needed dependant texture read such has true reflective bump mapping were simply not possible.

Below, a view of the various stages of the texture pipeline implemented in the GeForce 2 GTS:



In contrast, the Pixel Shader engine provides a much greater range of flexibility for the following reasons:

  • It is programmable, and allows programmers to create their own, personalized effects.
  • There are a greater number of texture operations, and texture address registers available.
  • Read-dependant textures are now possible, which adds greater flexibility.

    The image below provides an idea behind the new set-up:



    The Pixel Shader serves to render the ambience associated with surfaces, and with materials that are meant to have a realistic aspect. As well, an infinite number of material now replaces the artificial computerized effect by organic high impact surfaces. Thanks to the increase in control programmers now have over effects, they are no longer limited in what they can apply to the scenes they create. Add that to the drastic increase in processing speed, and they are no longer bothered by the limited functionality of the NSR. Overall, developers can expect to see twice the performance they could expect to get if they had left these operations to be handled by the CPU.

    Sprites will also be able to be rendered with a greater level of skin detail than ever seen before - allowing artists to render more realistic characters with facial hair, and blemishes. We can also even see the honeycomb rendered onto golf balls, leather surfaces with texture, and highly detailed wooden grain and texture, among other things.

    In short, sprites will become more animated, and realistic then they have been in the past, with fewer limits imposed on the vision of artists and programmers.

    Use of the nfiniteFX architecture won't stop programmers from making calls to the texture functions of the DirectX 7 API, however. In fact, if the developer chooses to use the much more sophisticated engine that is the Pixel Shader in conjunction with DirectX 8, they can expect to realize much more complex operations, permitting them to obtain effects such as those pictured below:

    To sum-up, the Pixel Shader promises the joy of programming one's very own effects, handle up to 4 textures in a single pass, and all while benefiting from a very noticeable boost in performance.

    Next: The Lightspeed Memory Architecture.