This is a demo of my homegrown cascading shadow mapping. Notice how the shadows remain sharp at all distances. This is currently using 4 2048 byte shadow textures, but it looks similar with 1024 byte textures. Cascading shadow maps work by dividing the view frustum into sections, and assigning a shadow texture to each section. This allows shadows to be rendered at great distance without loss of visual fidelity during close-up shots of a shadow. The great thing about shadow mapping is that you get self-shadowing for free. The performance isn't too bad either. This demo ran at 270 frames per second on my EVGA 8800 GTS, with normal mapping and specular mapping. Modern GPUs have really great texture lookup performance: the shader I wrote for this demo performs 7 texture lookups per pixel (1 for normal mapping, 1 for the diffuse map, 1 for specular mapping, and 4 for shadow mapping). A previous iteration of this demo (with only 1 shadow texture loo...
Aspiring to be the nerdiest blog you'll ever read