[osg-users] Shadows on two-sided polygons
jean-sebastien.guay at cm-labs.com
Fri Nov 20 13:17:38 PST 2009
> 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