Antiradiance vs imperfect shadow maps

Started by
3 comments, last by Prune 15 years, 6 months ago
I'm trying to decide on which realtime GI algorithm for fully dynamic scenes to implement. Antiradiance: http://www-sop.inria.fr/reves/Basilic/2007/DSDD07/ImplicitVisibilityAndAntiradiance.pdf Imperfect shadow maps: http://www.uni-koblenz.de/~ritschel/dokumente/ISM.pdf The results and performance look similar. The ISM paper claims that with antiradiance "the use of dynamic objects is restricted due to the need for highly tessellated surfaces near indirect shadows", however it doesn't look that ISM can reproduce high frequency shadows well unless a lot of virtual point lights are used. The other thing of note is that the antiradiance algorithm converges to ground truth given enough time; I didn't manage to make out whether ISM does that by just adding more VPLs (and can you easily adjust this dynamically as a function of the running average frame rate the way you could with antiradiance which is iterative). In terms of implementation difficulty both appear of similar complexity. Both seem to have a similar degree of orthogonality with most other graphics effects one might implement in an engine (though I didn't think too much about this and could be wrong). Finally, in terms of aesthetics, I like the idea of implicit visibility and disklike VPLs, but that's not something I'd use as a deciding factor... So, comments pro/con these algorithms are requested.
"But who prays for Satan? Who, in eighteen centuries, has had the common humanity to pray for the one sinner that needed it most?" --Mark Twain

~~~~~~~~~~~~~~~Looking for a high-performance, easy to use, and lightweight math library? http://www.cmldev.net/ (note: I'm not associated with that project; just a user)
Advertisement
I've never worked with any of these, but about their realtimeness - they run just several frames per second and they're not the best solution for an engine (note that you need some power for doing other effects while rendering, physics, AI, etc.).
Anyway both looks interesting, though they're not giving out correct results (as you can get from ray tracers).
I personally would try ISM, because it sounds like something little similar to radiosity (well just went fast-through the paper). Or you can try dynamic realtime radiosity, which is possible and faster than you think.

My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com

I think both papers used 8800 GTX cards; I'll be running at a minimum of GT280, or whatever is the king of the hill by December. It should be good for at least a single indirect bounce.
I think antiradiance is also similar to radiosity, it just adds negative light (and foregoes explicitly computing visibility).
(Personally I like photon mapping and monte-carlo/metropolis hybrids over radiosity because my roots are in photorealistic offline rendering and because they easily handle very general illumination and high frequency indirect glossy/specular bounces in addition to indirect diffuse.)
"But who prays for Satan? Who, in eighteen centuries, has had the common humanity to pray for the one sinner that needed it most?" --Mark Twain

~~~~~~~~~~~~~~~Looking for a high-performance, easy to use, and lightweight math library? http://www.cmldev.net/ (note: I'm not associated with that project; just a user)
If somehow you could get away with not updating every frame it could be a lot faster. The problem obviously is dealing with dynamic objects and shadows.

Both techniques ran on 8800 with only a few FPS so it seems this is several generations away--i dont know if GT280 will even be fast enough for real time use--particularly when one bounce doesnt seem enough.

Much is made of global illumination, but in practice people dont carry around reference raytracers in thier brains...so is the high cost worth it right now?
For my application it's important, and I'd go as far as recommending to my uppers to set the hardware requirement to two GT280s per computer. Not refreshing every frame is certainly a good idea, and some way of doing incremental updates for small scene changes would be excellent, though I'm not sure how feasible it is (perhaps caching VPLs and ISMs in the second paper, if a fast heuristic can be found to determine which to update).
"But who prays for Satan? Who, in eighteen centuries, has had the common humanity to pray for the one sinner that needed it most?" --Mark Twain

~~~~~~~~~~~~~~~Looking for a high-performance, easy to use, and lightweight math library? http://www.cmldev.net/ (note: I'm not associated with that project; just a user)

This topic is closed to new replies.

Advertisement