|
The GeForce 3 & the NV20 Demystified!
Friday, March 02, 2001
The Vertex Shader
What is a vertex? Well, a vertex is simply the corner of a triangle, or the meeting point of two angles. A triangle, thus, possesses three vertices.
Mathematically, a Vertex Shader is an extension of the Transform & Lighting engines of previous GPUs. It is a sort of effect generator wherein Vertex come in, and are spit back out after having several effects applied.
The Vertex Shader is effectively a calculation function which allows mathematical operations to be performed on object in a 3D environment. A vertex is always determined by its position in a 3D environment by its x, y, and z coordinates. They can also be defined by their colors, texture, and lighting characteristics. The Vertex Shader doesn't change the type of data being presented, but rather treats the values involved. Effects can be applied only on certain pedefined verticees as well as on all vertices. It gives personality to sprites and surfaces. It allows for more fluid and detailed movements, and more realistic facial expressions to be displayed by game characters.
The Vertex Shader takes care of all operations performed on the intrinsic data of vertices according to the desires of the programmer. By personalizing the effects involving skin and movement, programmers can personalize their characters by giving them distinctiveness, which only enhance the realism of the image.
Below, an image to help you visualize the work done by the Vertex Shader:
Until recently, technology such as is represented by the Vertex Shader would have been too complicated to introduce into the circuitry of a graphics card. Thanks to the programmable nfiniteFX engine though, it's all made possible for the first time. Finally, note that a Vertex Shader is made even more powerful when combined with our next subject: a Pixel Shader.
The Vertex Shader allows for realistic skin and clothing effects, as you can see from the following image:
Next: The Pixel Shader.
|