I'm still reading through my book on shaders, and I'm starting to get some good ideas. I've now finished Part II: Lighting Algorithms.
I like the way the book has been going in this section - lighting can be expressed as the diffuse equation quite easily, but simulating the full diffuse equation can get a bit tricky when you're dealing with realtime graphics.
Part 2 of the book builds up vertex/pixel shaders through the various stages of the lighting equation. Firstly simple ambient lighting, then diffuse, then specular, bump mapping and self-shadowing. It's quite easy to understand both the theory and the implementation when it's build up piece-by-piece.
The bit I found interesting was the stuff for simulating the different light types (point, directional, spot). Some mention was made of doing 4 lights per pass, but I am curious to try some implementations for getting more lights working. That does, currently, strike me as one downside of shaders - a lot of fairly simple things seem to break down into (potentially) lots of passes.
In other news, thanks to Evolutional, I should have some webspace setup sometime soon. He passed on the details of some very reasonably priced hosting/forwarding that I went with - we'll see how that works out - might put a bigger/better version of my F1 car video [grin]