Jump to content
  • Advertisement
Sign in to follow this  
george7378

Sampling a bluured shadow map

This topic is 2075 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 everyone,

 

I'm working on a program which uses an external pre-rendered shadow map to create static shadows. I want to create soft-edged shadows so I have applied a Gaussian blur to the shadow map using Paint.net. However, I'm not really sure how to use this to create soft shadows in my program. Here's my code for sampling the shadow map in HLSL:

if ((saturate(shadowProjectedTexCoords.x) == shadowProjectedTexCoords.x) && (saturate(shadowProjectedTexCoords.y) == shadowProjectedTexCoords.y))
    {
        if ((PSIn.Pos2DAsSeenByLight.z - f_ShadowEpsilon) > tex2D(ShadowMapSampler, shadowProjectedTexCoords).r && (PSIn.Pos2DAsSeenByLight.z - f_ShadowEpsilon) <= f_ShadowFarClip)
        {
            diffuseLightingFactor = 0;
            specularLightingFactor = 0;
         }
    }

How do I convert this to take advantage of the blurred shadow map and get soft shadows?

 

Thanks!

Edited by george7378

Share this post


Link to post
Share on other sites
Advertisement

You can't just blur a shadow map, it won't give you the results you want. Instead the standard procedure is to take multiple samples from the shadow map, compare with each one, and then filter the results. It's known as Percentage Closer Filtering, or PCF for short. There are also more advanced shadow map techniques like variance shadow maps or exponential shadow maps that allow filtering the shadow map directly, but they require using different techniques when rendering and sampling the shadow map.

Share this post


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

  • Advertisement
×

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!