Sign in to follow this  
InvalidPointer

A hypothetical hybrid shadow rendering technique

Recommended Posts

I apologize in advance for the brevity of the description, but I'm busy today and only have a short amount of time to post this. In a nutshell, is anyone aware of any shadow techniques that combine the general ideas of smoothies and penumbra wedges? From a 10,000 foot view you'd basically be computing the penumbra wedges from the light's POV to create the smoothie buffer(s) and then doing all the sampling, etc. as per the first paper. I can see this being absolutely wicked fast on DX10-class hardware as you're able to generate the wedges entirely on the GPU and avoiding the massive overdraw/fillrate consumption that all shadow volume techniques suffer from. I also came up with the idea to use distance fields to extend smoothies to alpha-tested surfaces, but we'll see how that fares. Any feedback is helpful.

Share this post


Link to post
Share on other sites
I am occasionally working on an extension of shadow mapping which I call Depth Cone Shadow Mapping. It works by post-processing the shadow map to generate seams around shadow casters which provide a brightness function along the depth showing an increasingly wide seam when being evaluated. It produces an additional depth cone shadow map (2 channels, float16 is enough, can be lower resolution than the source shadow map) that contains the parameters to the shadow penumbra. The post processing is actually expensive, but like a gaussian blur it's separable and evaluating it in the scene pass is really cheap. Plus the depth cone parameters are good candidates for standard GPU texture filtering, creating perfectly smooth shadow penumbras.

I built a little demo to showcase the method, but due to my serious lack of time it's incomplete ATM. For the same reason I also haven't written any documentation, yet. I'll post the last version of the prototype app if you're interested. It actually works fine for outer seams, but of course less so for inner seams. Inner seams are always prone to light bleeding due to the "first depth only" nature of shadow maps.

Share this post


Link to post
Share on other sites
Could be interesting, though I actually was interested in smoothies precisely because they avoided the complicated convolutions with the micropatch-based methods like the one you describe. If it works, though, I'd be more than happy to hear it :) As they say, performance is king.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this