This is the NVIDIA / Geforce 3 specific section! Here you will lots of vertex program goodness, and hopefully some pixel shader stuff in the next few weeks! These demos probably require very new Detonator drivers. Preferably version 12.40 or later!
This is a cleaned up and commented version of the original vertex program code I managed to get hold of from Peter Popov, I changed the spheres for Torus', and added some comments in.

In order to make sense of the actual vertex program refer to these documents from NVIDIA's website.

Toon Shading Vertex Program. Yep the very same method as used in NVIDIA's effects browser for Direct X. Very Slightly different implementation. Does a 2 stage transformation, but no normal normalization.

The Toon Tone Shade texture is stored as a bitmap. But the outline texture is calculated in code, as it requires different data in it's levels.

NV_VERTEX_PROGRAM specular, with cube mapping, and point light shading effects. This demo really does look top! Requires 2 texture units, and cube mapping support.

Full commented source is included.

This program has now been optimized, and uses a VERTEX STATE PROGRAM to convert the light position into local space, removing the need for any world space conversions in the vertex program.

Vertex program is now 24 instructions. :)

TRIPLE Texturing vertex program, using vertex attributes, rather than glNormal, glTexCoord, glVertex.

Pretty similar to the above, except for that it Requires 3 texture units and vertex program support. i.e. Geforce 3. It's getting to the stage where to get more realistic looks, I will need to jump to per pixel fragments, rather than per vertex fragments. I'll do that, once I've covered a few other features that I think are important. Vertex streams for one.

Simple targa code used instead of BMP's. Enjoy.

Same as the one above, but using vertex attribute streams. i.e. like glVertexPointer, glNormalPointer etc etc.. For using glDrawElements and such like. Very easy to use.

Not much else to say really. Nothing else is different. Just the streams.

Camera aligned Billboards on the GPU!

This demo throws up a few hundred particles, and calculates the corners of the quad, in a vertex program, from the centre point passed over, a multiplier, and the right and up vectors of the modelview matrix.

Uses only immediate mode commands at the mo. This will be changed at a later date to improve performance.


Texture Env Combine demo, featuring multi-texturing, and vertex programs. It's pretty simple if you understand all the rest.


Per Pixel Diffuse lighting using Register Combiners, and a normalization cube map.

Full extensively documented source included, with new extension headers/source modules for easy integration of new OpenGL extensions.

Press W or SPACE to see the cube in wireframe, to prove theres no high tesselation going on there! :)


Per Pixel Diffuse Tangent Space Bump Mapping.

Full extensively documented source code included, on everything to do with tangents and binormals.

A and Z moves light source back and force, mouse to swivel cube.