Jump to content
  • Advertisement
Sign in to follow this  
skyemaidstone

Cascaded Shadow Maps

This topic is 911 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi,

 

I'm trying to switch from my basic shadow mapping to CSM so I can have decent quality shadows covering my terrain.

 

I think I understand the concept after lots of reading but I'm struggling with the specifics.

 

How am I meant to be writing the values to the depth buffer? Currently for my simple shadow mapping I'm just writing out z/w (z position comes from position multiplied by WorldViewProj).

 

Now from the example code I'm reading the cascades are partitioned from 0-1 depth using slides like 0-0.2 then 0.2-0.5 then 0.5-1 or similar. Now when I check my depth buffer in final rendering and do something like:

 

if (depth > 0.5f)

   OutputColor.g += 0.5;

else

   OutputColor.r += 0.5;

 

I'd expect everything to be tinted red near the camera and tinted green about halfway from the camera to the far clip plane.

 

Unfortunately its just all green. It seems I have to do depth > 0.92 or so before it makes any difference.

 

Any ideas what I'm doing wrong?

 

Update: I found my nearclip was too close (0.1f) after reading a good article about depth buffers. Moving it a little further away to 5 made me at least be able to use 0.9-1 in fairly sensible chunks.

 

If I just use my depth buffer is it is not I can divide it to 0-0.9 for the cascade near the player, 0.9-0.95 is the mid-distance/medium quality cascade and 0.95-1 is the low quality cascade for everything further away than that.

 

Is there some reason I can't do CSM like that? Do I have to use linear depths?

 

Here's a screen shot of my "cascades"

 

cascades.png

Edited by skyemaidstone

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!