[osg-users] Shadows on two-sided polygons

Jean-Sébastien Guay jean-sebastien.guay at cm-labs.com
Fri Nov 20 13:17:38 PST 2009

Hi Andreas,

> I have turned off those things, and now it works good for me. Should I
> refactor that in a way that the application programmer can choose the
> behaviour and submit that?

You could, but I think setting those things via overridden state is also 
acceptable, since if you need that you'll probably know what to set...

> Another thing: I have written a vertex and a fragment shader that work
> together in a way that allows the shadows to be rendered exactly in the
> ambient color. This means that shadowed surfaces look the same as
> surfaces that face away from the light. This gives a much more natural
> feeling, and you don´t get false shadows on the backs of polygons. I
> needed the vertex shader to get the correct ambient color, I think it is
> not possible to do this with a fragment shader alone.

I assume you're talking about osgShadow::ShadowMap? The shaders used for 
the ViewDependentShadow classes (LightSpacePerspectiveShadowMapDB, CB, 
VB) already do this. Note that osgShadow::StandardShadowMap is the 
equivalent of osgShadow::ShadowMap but under the ViewDependentShadow 
architecture, so you could have used that and you would have gotten the 
right shadow ambient color.

You can always submit those shaders (as part of modified ShadowMap.cpp 
files so that they work by default), I'm sure anyone still using 
osgShadow::ShadowMap will be glad you do.

Jean-Sebastien Guay    jean-sebastien.guay at cm-labs.com

More information about the osg-users mailing list