Dual Sphere-Unfolding/Omni-directional shadow maps

Started by
6 comments, last by B_old 11 years, 9 months ago
I'm curious what people are using for omni-directional shadow maps these days.
I think that dual paraboloid and cube map shadows are two typical choices. I have used the latter in the past. While looking for alternatives that might perform faster with comparable quality I came across Dual Sphere-Unfolding Shadow Maps, which are rendered in a single pass. Has anyone tried it? Is there a more detailed explanation of the method around? Any other methods that are worth looking into?
Advertisement
I tried this method in a recent project to fill a scene with 100 dynamic lights casting shadows. The theory is appealing and the results are not so bad...
BUT you'll want to have a very fine geometry in order to obtain accurate shadows: the projection used to store the whole shadow sphere in a single texture will highly bend the geometric data, thus leading to frequent artifacts during the depth comparison.
(Though I had to rush that project so I might have missed something)

Still, it was tremendously fast and produced cool shadows... If you don't stare at them too much tongue.png
Interesting.
Are you aware of additional resources related to this technique?
Unfortunately, I am not.
This technique seems to remain unnoticed (or people consider that such artifacts are unworthy of their time tongue.png).

There is this video, made by the author of Dual-Sphere Unfolding (It was my only help when implementing my demo), but nothing from the community.
If you ever find something, I would be greatly interested.
It's just simply sphere mapping. The only difference is, that they use 2 sphere maps and let the vertex shader decide on which one the vertex gets projected, based on whether the y axis is positive or negative. They say that it would be a one pass method, but I really doubt it. I don't think that a triangle that has vertices on both sides of the xz-plane wouldn't cause artifacts. You'd probably still need a geometry shader or 2 passes to render these shadow maps without artifacts. I think it's worse than dual paraboloid shadow mapping, but I'll give it a try.

It's just simply sphere mapping. The only difference is, that they use 2 sphere maps and let the vertex shader decide on which one the vertex gets projected, based on whether the y axis is positive or negative. They say that it would be a one pass method, but I really doubt it. I don't think that a triangle that has vertices on both sides of the xz-plane wouldn't cause artifacts. You'd probably still need a geometry shader or 2 passes to render these shadow maps without artifacts. I think it's worse than dual paraboloid shadow mapping, but I'll give it a try.

It would be nice to see your results in case you find the time and implement it.
I would also try single pass cubemapping using the geometry shader: http://devmaster.net/forums/topic/9367-render-to-cubemap-in-a-single-pass-really-useful/

The least amount of geometry warping that I know of, and still very efficient smile.png

I would also try single pass cubemapping using the geometry shader: http://devmaster.net...-really-useful/

The least amount of geometry warping that I know of, and still very efficient smile.png

Last time I tried it, using the geometry shader for single pass cubemapping was slower on my machine than doing a pass for every cube face. Have you seen more encouraging results?

This topic is closed to new replies.

Advertisement