Sign in to follow this  
3TATUK2

Sun Shadows

Recommended Posts

3TATUK2    714

I'm not sure how the fact it's *directional* plays into the *shadows*. I understand how it plays into lighting, but shadowmapping pretty much works the same, doesn't it? You still need to have a light source position to render the shadow depth texture from? And I'm guessing the shadows for something like in the youtube video I linked is done an a single shadow pass... actually hmm

 

now that I think about it, i guess if it's static geometry it's possible to use baked lightmaps for the geometry and then just separate individual shadow maps for each moving object (player), although I somehow don't think this is what the tech in the video is doing, for example with modern engines that have this type of "full shadowing", with things like dynamic geometry or many many objects, or even dynamic time of day, I doubt they use a separate individual shadow map per object?

 

A lightmap wouldn't work in that situation, and individual shadow maps would probably be too slow, plus, for something specifically like time of day... the "entire" geometry has dynamic shadows, so again I don't get how that would be created since you need to render a shadow depth texture from a specific light source position??

Share this post


Link to post
Share on other sites
phil_t    8084


You still need to have a light source position to render the shadow depth texture from?

 

You can use an "arbitrary" position that, when combined with the projection matrix (near/far planes), covers the range of depth values that you need with maximum precision.

Share this post


Link to post
Share on other sites
Murdocki    285

Usually you dont see the entire world, so you can limit the area you have to include in your shadow map, thus increasing it's resolution. As with other rendering optimizations it's always good to not render what you dont see, meaning you only need to have shadows inside your player's frustum.

Using the sun's direction you can build an oriented bounding box around your frustum. You'll then have to extend that box in the direction of the sun so that it reaches all the way up to your scene/world's roof. This ensures that objects (a tree or tall building for example) that are outside of the player's view but are casting shadows into the player's view are still rendered into your shadow map.

If you extend the obb's size to the roof of your scene and the sun is at an angle(which is pretty much always) then you'll be extending a part of the obb outside of the scene's bounding box. This will lose you a little bit of precision, which you can solve by using a sheared matrix for the sun's projection.

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