What are the vertex shaders?

Can any one gives me a detailed information about vertex shaders, the name meaning, usage and a tutorial if it is possible?

A vertex shader is a small program that plugs into your OpenGL (or D3D) app that will perform a number of calculations on each vertex sent to your GPU. There are many presentations/papers on both NVIDIA’s and ATI’s developer sites. http://developer.nvidia.com/ and http://www.ati.com/developer/

Like for example if you want to calculate vertex lighting yourself from some lighting equation you came up with, it would be easy with a vertex shader. You put all the calculations in the shader and this will be executed for every vertex you then sumbit to the graphics card while this shader is active.


Just separate ARB_vertex_program(or NV_vp) which is low-level(assembly) and upcomming # ARB_vertex_shader which is high-level(C-like).

Nice examples of ARB_vp you can find in Humus page- http://esprit.campus.luth.se/~humus/

examples of ARB_vs exist in ATI Ashli tool.

specs: http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_program.txt http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_shader.txt