DirectX 9 Features, Shaders, And Cg, Continued
In modern graphics cards, a distinction is made between pixel shaders, which are applied to textures or pixels, and vertex shaders, which allow modification of vector objects. For example, the chrome effect of the T1000 seen in the movie Terminator 2 is, simply put, a chrome shader which calculates highlights and reflections. Other examples would be rust or dirt effects, the exhaust of a turbine or motor, clouds and smoke, rough surfaces - you get the picture. In practice, this means game developers no longer need to "simulate" things with textures, they can use "real" mathematical effects similar to those found in ray tracing programs.
Unsharp effects by using pixel shaders.
Vertex shaders, on the other hand, modify 3D models. Programming the wave movement of water with classical animation techniques, for example, would be a very time-consuming and thankless task. Using vertex shaders, wave effects are easily created - thanks to the freely available mathematical models. Other applications would be facial animation or deformations, for example, dents in a cars' fenders.
So shaders aren't a new development. Yet until now, their calculation in ray tracing programs has always required much effort and was very CPU intensive. A 3D chip like the GeForceFX possesses highly optimized dedicated hardware for exactly these tasks. Such specialized circuits are always several orders of magnitude faster than a CPU, i.e., a processor that must be able to handle any number of different tasks. A shader, on the other hand, is created with a very specific task in mind and is incapable of anything else. A more or less comparable example of dedicated hardware in the past would be MPEG 2 and DVD decoder chips, although these weren't especially programmable.
Dawn is very detailed!