This is the result of my first foray into D3D Vertex Shaders. It's the
regular D3DXTeapot, rendered with three projective textures. One is a
rotating fan-like texture, one a static vent-like texture, the other is a
moving texture (the DirectX 'X'). The inspiration for making this was the
Doom3 video shown at MacWorld the other day. Code-side I spend some time
setting up projection matrices for each of the spot lights, set a few
vertex shader constants, and then just render the mesh 3 times with alpha
blending. Texture coordinates are generated given the object-space
coordinates, they're clamped to the texture boundaries, and the texture
is also multiplied by N*L (N=Vertex Normal, L=Light Vector) to get a
nice falloff on the edges.
The DX8 binary is here:
The code for the
vertex shader is included. Pretty standard, and probably grossly
inefficient in register usage (hey, it's the first assembly code I've
written in years). Makes for a purty app tho.