GeForce3's new pixel shaders feature a new technique to apply shadows, which is supposed to look very realistic.
The implementation is also not hard to understand, as you can see from the slides below:
Here's what the developer has to consider:
- One shadow map per point light source
- If the light or objects casting shadows do not move, no need to update map
- To make a map, draw the scene from the viewpoint of the light source, Z buffer only, and store that Z buffer as the map.
- To use a shadow map, render the scene normally, except use texgen to project the screen space coordinate z back to light space
- The hardware compares the two z-values and generates 0 or 1 depending on the compare order. This is done for 1, 4, or 9 samples of the depth map. The resulting values are filtered, giving a shadow value in the range 0.0 to 1.0. Use the combiners to shadow the object.
We will have to see what shadow mapping will finally look like, once applications started using it. So far NVIDIA doesn't even have a demo of it available anywhere.