Changed new ViewDependentShadowMap to default to a perspective shadow map with automatic detection of a spot light/perspetive light projection

matrix to prevent inappropriate usage of perspective shadow map.
This commit is contained in:
Robert Osfield
2011-08-24 13:57:15 +00:00
parent 622cfb524c
commit 26e2106636
3 changed files with 19 additions and 80 deletions

View File

@@ -148,9 +148,8 @@ class OSGSHADOW_EXPORT ViewDependentShadowMap : public ShadowTechnique
enum ShadowMapProjectionHint
{
STANDARD_SHADOW_MAP,
PERSPECTIVE_SHADOW_MAP,
LIGHT_SPACE_PERSPECTIVE_SHADOW_MAP
ORTHOGRAPHIC_SHADOW_MAP,
PERSPECTIVE_SHADOW_MAP
};
void setShadowMapProjectionHint(ShadowMapProjectionHint hint) { _shadowMapProjectionHint = hint; }
@@ -158,12 +157,7 @@ class OSGSHADOW_EXPORT ViewDependentShadowMap : public ShadowTechnique
virtual bool computeShadowCameraSettings(Frustum& frustum, LightData& positionedLight, osg::Camera* camera);
virtual bool standardShadowMapCameraSettings(Frustum& frustum, LightData& positionedLight, osg::Camera* camera);
virtual bool perspectiveShadowMapCameraSettings(Frustum& frustum, LightData& positionedLight, osg::Camera* camera);
virtual bool lightSpacePerspectiveShadowMapCameraSettings(Frustum& frustum, LightData& positionedLight, osg::Camera* camera);
virtual bool adjustPerspectiveShadowMapCameraSettings(osgUtil::RenderStage* renderStage, Frustum& frustum, LightData& positionedLight, osg::Camera* camera);
virtual bool assignTexGenSettings(osgUtil::CullVisitor* cv, osg::Camera* camera, unsigned int textureUnit, osg::TexGen* texgen);