Introduced --near-far-mode into osgshadow and ShadowSettings::setComputeNearFarModeOverride(..) to allow user control of how the cull traversal is optimized for computing the depth range of the shadow map.

This commit is contained in:
Robert Osfield
2012-08-03 16:14:14 +00:00
parent 35816e6b25
commit fb83c2b061
4 changed files with 40 additions and 3 deletions

View File

@@ -18,6 +18,7 @@ using namespace osgShadow;
ShadowSettings::ShadowSettings():
_receivesShadowTraversalMask(0xffffffff),
_castsShadowTraversalMask(0xffffffff),
_computeNearFearModeOverride(osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR),
_lightNum(-1),
_baseShadowTextureUnit(1),
_useShadowMapTextureOverride(true),
@@ -31,12 +32,15 @@ ShadowSettings::ShadowSettings():
// _shaderHint(PROVIDE_FRAGMENT_SHADER),
_debugDraw(false)
{
//_computeNearFearModeOverride = osg::CullSettings::COMPUTE_NEAR_FAR_USING_PRIMITIVES;
//_computeNearFearModeOverride = osg::CullSettings::COMPUTE_NEAR_USING_PRIMITIVES);
}
ShadowSettings::ShadowSettings(const ShadowSettings& ss, const osg::CopyOp& copyop):
Object(ss,copyop),
_receivesShadowTraversalMask(ss._receivesShadowTraversalMask),
_castsShadowTraversalMask(ss._castsShadowTraversalMask),
_computeNearFearModeOverride(ss._computeNearFearModeOverride),
_lightNum(ss._lightNum),
_baseShadowTextureUnit(ss._baseShadowTextureUnit),
_useShadowMapTextureOverride(ss._useShadowMapTextureOverride),