For the past year I've been learning to create real-time vertex and pixel shaders for use in video games. I'm writing them in a high level shading language called Cg that was developed by Nvidia. I've been blown away by how much control an artist can have over the exact appearance of the surface of an object just by writing a few lines of code. Especially when using DX9 class hardware, we can now make real-time surfaces that look just like they were rendered in software.
I've decided to write several tutorials on the process of writing shaders and controlling the appearance of real-time surfaces. I want to share the information I've learned because shader writing can be a great artists tool, and because it's a very technical skill that mosts artists aren't familiar with.
In the coming months I'm planning to write tutorials on basic vertex and pixel shaders, different lighting equations, relection and refraction, ambient occlusion, using high dynamic range images, and hopefully a lot more.
To begin, I've written two tutorials explaining the process of creating, editing, and applying normal maps. I hope you enjoy them - and don't forget to check back here every once in a while to find the new tutorials I've posted.
Updated 7/4/05