I’m using dual-paraboloid shadow maps in my engine, and they don’t look like crap. I don’t have an up-to-date demo available, but here are a couple of screenshots:
http://www.hut.fi/~ikuusela/images/Image1.jpg
http://www.hut.fi/~ikuusela/images/trouble.jpg
The real difference between the two techniques remains unclear until somebody bothers to write a test app using both of the techniques in a similar, real-world situation. In general:
-DP shadows are heavy on geometry, cubemaps on fragments. This difference is made bigger by the fact that having the geometry always well-tesselated allows you to move computations from fragment level to vertex level. The interesting thing is, that for low-poly models you’re practically always fill-limited, so the one with fastest fillrate wins. When the amount of geometry increases, the need of additional tesselation for DP decreases, closing the gap on the geometry side.
-Dual-paraboloid maps are faster to update than cubemaps (unless retesselation is required). With cubemaps it’s likely that several objects occupy more than one cubemap face, and they have to be drawn more than once. If you divide a DP map in top/bottom maps, often all moving objects belong to the bottom map.
-With DP maps it’s easy to use different resolutions for the two maps, I often use smaller resolution for the top maps, since most of the detail is below the lights.
-Cubemaps always give better or equal quality than DP maps, and they’re practically free of any distortion problems.
-More seams on cubemaps. Doesn’t matter for basic implementation, but can hurt some special effects (it’s hard to blur a cubemap).
-DP maps are harder to get working than cubemaps
-The ability to exploit NVidias PCF is a minor advantage, since it doesn’t work on all cards anyways. Besides, there are other ways to antialias the shadows, for example the penumbra maps used in my screenshots. They generally give superior quality as long as the shadowmap resolution is good enough to capture all the details. If not, things’ll look ugly They’re slower for shadowmap updates, but very fast for static shadows.
So… No real answers here, but at least some points to consider.
-Ilkka