Jump to content

  • Log In with Google      Sign In   
  • Create Account

Combining shadow map passes


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 3DModelerMan   Members   -  Reputation: 1003

Like
0Likes
Like

Posted 11 August 2014 - 05:15 PM

I'm working on my rendering engine, and I've got all the core features that I'm basing it around working. I've already got dynamic shader generation, const buffer management, texture management, etc. all implemented. Now I'm trying to work on shadow mapping though, and I'm not sure how to combine the results of multiple shadow passes.

 

I already have a system for rendering shadow maps for each light, but after I've rendered my regular diffuse+specular shading pass, how do I combine the shadow map passes? Are shadow maps generally combined using blend states? It would probably work well for simple cases, but what if I have lights illuminating part of another shadow? Then both shadows will just draw on top of each other as one combined shadow. If I just blend the shadows at half opacity though, then they won't properly block shading in un-shadowed areas. 



Sponsor:

#2 kauna   Crossbones+   -  Reputation: 2509

Like
1Likes
Like

Posted 12 August 2014 - 05:09 AM

Practically, while calculating the effect of each light, you should apply the shadow map as a multiplier to the diffuse/specular values. So, while calculating the lighting, you'll need to have access to the shadow map(s) and the matrices which allow you to transform a point to the shadow space.

 

You can't apply the shadows afterwards, ie. no blending operator will produce the correct results. 

 

Cheers!



#3 3DModelerMan   Members   -  Reputation: 1003

Like
0Likes
Like

Posted 12 August 2014 - 07:12 AM

So the shadow maps should be generated first and the lighting for those lights done at the same time then? What about when I have to run multiple passes? This is just an example, because I probably wouldn't need this many shadow casting lights, but If I light four spot lights with shadows, and then I make a pass for directional lighting, how do I combine those? Since I'm doing shading with the shadows, do I just additively blend the lighting results?



#4 kauna   Crossbones+   -  Reputation: 2509

Like
1Likes
Like

Posted 12 August 2014 - 07:32 AM

You can render the lights additively (as you stated) to a render target. I think that it is easier to have all the shadow maps rendered at this point (ie. you'll need to update the shadow maps before calculating lighting). Of course, you'll need some texture memory for storing the shadow maps which probably isn't a big problem. 

 

Additive blending can be used for any kind of multipass lighting with or without shadowmaps. You can even calculate multiple lights in one pass. 

 

Cheers!



#5 3DModelerMan   Members   -  Reputation: 1003

Like
0Likes
Like

Posted 12 August 2014 - 07:55 AM

Okay, that makes sense now. Thanks for the help.






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS