david_gallagher at September 30th, 2012 19:57 — #1
Hi I've just started working on shadows for my dx11 engine and have found that soft shadows (blur done full screen pass) causes a halo, the same thing happened in dx9 and was hopeing there was a way to get around it.
I spent all morning trying everything I could think of but in the end the only thing i could figure out to get around it was to deflate the mesh when rendering the shadow before the blur pass. it did minimize the halo effect to almost non existant, but was wondering if there are any better ways i might not have thought of. I don't really want to use VSM just yet as i think that has it's own can of worms as far as issues go. and only want soft shadows at this stage.
below are a few pics showing the artifact and the current fix...
Thanks for any ideas.
not a perfect fix but I can live with this over the halo...
reedbeta at September 30th, 2012 20:10 — #2
Like motion blur, this is another case where you probably want to detect depth discontinuities and avoid having your blur sample from pixels with too different of a depth. This is always going to be a problem when doing any kind of blur or filter in screen space. This is known as a "cross bilateral filter" or "joint bilateral filter" (same thing, AFAICT) in the literature; if you google those terms you should get some hits.
david_gallagher at September 30th, 2012 21:52 — #3
ah depth again, will look into this Reedbeta thanks!