17#ifndef OSGSHADOW_MINIMALSHADOWMAP
18#define OSGSHADOW_MINIMALSHADOWMAP 1
44 { _modellingSpaceToWorld = modellingSpaceToWorld; }
47 {
return _modellingSpaceToWorld; }
50 {
return _maxFarPlane; }
53 { _maxFarPlane = maxFarPlane; }
56 {
return _minLightMargin; }
59 { _minLightMargin = minLightMargin; }
65 DEFAULT_ACCURACY = BOUNDING_BOX
70 { _shadowReceivingCoarseBoundAccuracy = accuracy; }
72 ShadowReceivingCoarseBoundAccuracy
74 {
return _shadowReceivingCoarseBoundAccuracy; }
149 unsigned int trimMask = (1|2|4|8|16|32)
153 (
osg::Matrixd & projection,
float n = 0,
float f = FLT_MAX );
#define META_ViewDependentShadowTechniqueData(ShadowTechnique, TechniqueData)
Definition ViewDependentShadowTechnique:32
Definition ConvexPolyhedron:36
Definition MinimalShadowMap:25
MinimalShadowMap(const MinimalShadowMap &msm, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
const osg::Matrix & getModellingSpaceToWorldTransform(void) const
Definition MinimalShadowMap:46
StandardShadowMap BaseClass
Definition MinimalShadowMap:30
ShadowReceivingCoarseBoundAccuracy _shadowReceivingCoarseBoundAccuracy
Definition MinimalShadowMap:98
void setMaxFarPlane(float maxFarPlane)
Definition MinimalShadowMap:52
virtual ~MinimalShadowMap(void)
ShadowReceivingCoarseBoundAccuracy getShadowReceivingCoarseBoundAccuracy() const
Definition MinimalShadowMap:73
void setMinLightMargin(float minLightMargin)
Definition MinimalShadowMap:58
float _minLightMargin
Definition MinimalShadowMap:97
float _maxFarPlane
Definition MinimalShadowMap:96
ShadowReceivingCoarseBoundAccuracy
Definition MinimalShadowMap:61
@ BOUNDING_BOX
Definition MinimalShadowMap:64
@ EMPTY_BOX
Definition MinimalShadowMap:62
@ BOUNDING_SPHERE
Definition MinimalShadowMap:63
float getMinLightMargin() const
Definition MinimalShadowMap:55
void setShadowReceivingCoarseBoundAccuracy(ShadowReceivingCoarseBoundAccuracy accuracy)
Definition MinimalShadowMap:69
osg::Matrix _modellingSpaceToWorld
Definition MinimalShadowMap:95
META_Object(osgShadow, MinimalShadowMap)
void setModellingSpaceToWorldTransform(const osg::Matrix &modellingSpaceToWorld)
Definition MinimalShadowMap:43
MinimalShadowMap ThisClass
Definition MinimalShadowMap:28
float getMaxFarPlane() const
Definition MinimalShadowMap:49
Definition StandardShadowMap:25
Definition CullVisitor:49
Definition BoundingBox:34
Definition BoundingSphere:35
@ SHALLOW_COPY
Definition CopyOp:47
Definition ConvexPolyhedron:33
#define OSGSHADOW_EXPORT
Definition osgShadow/Export:39
Definition MinimalShadowMap:101
osg::Matrixd _clampedProjection
Definition MinimalShadowMap:110
osg::Matrix * _modellingSpaceToWorldPtr
Definition MinimalShadowMap:102
virtual void aimShadowCastingCamera(const osg::BoundingSphere &bounds, const osg::Light *light, const osg::Vec4 &worldLightPos, const osg::Vec3 &worldLightDir, const osg::Vec3 &worldLightUp=osg::Vec3(0, 1, 0))
int _frameShadowCastingCameraPasses
Definition MinimalShadowMap:105
osg::BoundingBox computeScenePolytopeBounds(const osg::Matrix &m)
ConvexPolyhedron _sceneReceivingShadowPolytope
Definition MinimalShadowMap:107
static void extendProjection(osg::Matrixd &projection, osg::Viewport *viewport, const osg::Vec2 &margin)
virtual void cullShadowReceivingScene()
virtual void init(ThisClass *st, osgUtil::CullVisitor *cv)
float * _maxFarPlanePtr
Definition MinimalShadowMap:103
osg::BoundingBox computeScenePolytopeBounds()
std::vector< osg::Vec3d > _sceneReceivingShadowPolytopePoints
Definition MinimalShadowMap:108
virtual osg::BoundingBox computeShadowReceivingCoarseBounds()
virtual void frameShadowCastingCamera(const osg::Camera *cameraMain, osg::Camera *cameraShadow, int pass=1)
float * _minLightMarginPtr
Definition MinimalShadowMap:104
static void clampProjection(osg::Matrixd &projection, float n=0, float f=FLT_MAX)
void cutScenePolytope(const osg::Matrix &matrix, const osg::Matrix &inverse, const osg::BoundingBox &bb=osg::BoundingBox(-1,-1,-1, 1, 1, 1))
virtual void aimShadowCastingCamera(const osg::Light *light, const osg::Vec4 &worldLightPos, const osg::Vec3 &worldLightDir, const osg::Vec3 &worldLightUp=osg::Vec3(0, 1, 0))
static void trimProjection(osg::Matrixd &projection, osg::BoundingBox subrange, unsigned int trimMask=(1|2|4|8|16|32))
Definition StandardShadowMap:161