Vertex Shaders|NVIDIA

Vertex Shaders

A Facet of the nfiniteFX Engine


Before the advent of NVIDIA's nfiniteFX engine, realistic characters and environments were beyond the reach of graphics processors. Now programmable Vertex Shaders enable an unlimited palette of visual effects that can be rendered in real time. But what are programmable Vertex Shaders, and how do they work? To answer this we have to start with the basics. In order to understand Vertex Shaders, it's important to know what a vertex is in relation to a scene. Objects in a 3D scene are typically described using triangles, which in turn are defined by their vertices.
What is a vertex?
A vertex is the corner of the triangle where two edges meet, and thus every triangle is composed of three vertices.

A vertex shader is a graphics processing function used to add special effects to objects in a 3D environment by performing mathematical operations on the objects' vertex data. Each vertex can be defined by many different variables. For instance, a vertex is always defined by its location in a 3D environment using the x-, y-, and z- coordinates. Vertices may also be defined by
colors, coordinates. Vertices may also be defined by colors, textures, and lighting characteristics. Vertex Shaders don't actually change the type of data; they simply change the values of the data, so that a vertex emerges with a different color, different textures, or a different position in space.

Before the introduction of the GeForce3, vertex shading effects were so computationally complex that they could only be processed offline using server farms. Now, developers can use Vertex Shaders to breathe life and personality into characters and environments, such as fog that dips into a valley and curls over a hill; or true-to-life facial animation such as dimples or wrinkles that appear when a character smiles.

Examples of vertex shading effects include: matrix palette skinning, which allows programmers to create realistic character animation with up to 32 "bones" per joint, allowing them to move and flex convincingly; deformation of surfaces, which gives developers the power to create realistic surfaces such as waves and water that ripples; and vertex morphing, which is used to morph triangle meshes from one shape to another, providing smooth skeletal animation. These are just a few of the virtually infinite number of effects developers can create using Vertex Shaders. By customizing skinning and motion, developers can create life-like personalities for characters and scenes, thereby intensifying the graphics experience.



Pixel Shaders
Part of the nfiniteFX engine, Pixel Shaders alter lighting and surface effects that replace artificial, computerized looks with materials and surfaces that mimic reality.



LinkedIn Twitter Facebook Reddit