Jump to content
  • Advertisement
Sign in to follow this  

Shadow Volume Artefacts (Not the usual one)

This topic is 2004 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



i am implementing stencil volume shadowing for a render engine. Now this engine is taking in lots of different polygon data that might come from the gluTesselator or so, is deformed after, and therefore not feasible for adjacency information (since one vertex and/or normal can be shared by > 20 other faces). Means: No Silhouette detection in the geometry shader is possible.


This requires me to cast a shadow volume per triangle. Speed is not an issue though. However, no matter if i do depth-pass or depth-fail properly, i always get white specs on polygon edges. Now if a model is highly tesselated, things go awkward.


It creates single pixels that do not succeed in the stencil test.


What i do:


1: (DepthTest on/Write on) Render the scene but just the depth (transforms happen in the geometry shader)

2: (DepthTest on/Write off) Render the volumes with stencilOpSeparate

3: (DepthTest off/Write off) Render a fullscreen quad so that the shadow areas are extracted

4: 1,2,3 -> render into a texture array (per light) that i use in the real render pass later


no multisampling at the moment.


The effect increases when the number of faces is increased, but it also happens for each front facing volume plane that is shared with another back facing volume plane (same edge, different order).


This means: As soon as 2 volume planes are the same but have different orientation, the stencil test is not always correct in the shadowed areas.


any help is appreciated. I'll try to post screenshots later when i'm at home again.


Thank you very much!

Edited by FlyingBavar

Share this post

Link to post
Share on other sites

Ok. Attached is a screenshot that outlines the issue. 2 cubes and a plane, all tesselated and hovering over the ground plane. This is simple geometry, but due to requirements, every triangle has to cast its own shadow volume.


Thanks for your help!4jnwjhss.jpg

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!