openscenegraph
ShadowSettings
Go to the documentation of this file.
1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-20 Robert Osfield
2 *
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version. The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * OpenSceneGraph Public License for more details.
12*/
13
14#ifndef OSGSHADOW_SHADOWSETTINGS
15#define OSGSHADOW_SHADOWSETTINGS 1
16
17#include <osg/Uniform>
18#include <osg/CullSettings>
19#include <osgShadow/Export>
20
21namespace osgShadow {
22
25{
26 public:
29
31
32 void setReceivesShadowTraversalMask(unsigned int mask) { _receivesShadowTraversalMask = mask; }
33 unsigned int getReceivesShadowTraversalMask() const { return _receivesShadowTraversalMask; }
34
35 void setCastsShadowTraversalMask(unsigned int mask) { _castsShadowTraversalMask = mask; }
36 unsigned int getCastsShadowTraversalMask() const { return _castsShadowTraversalMask; }
37
38 void setComputeNearFarModeOverride(osg::CullSettings::ComputeNearFarMode cnfn) { _computeNearFearModeOverride = cnfn; }
39 osg::CullSettings::ComputeNearFarMode getComputeNearFarModeOverride() const { return _computeNearFearModeOverride; }
40
41
45 void setLightNum(int lightNum) { _lightNum = lightNum; }
46 int getLightNum() const { return _lightNum; }
47
48 void setBaseShadowTextureUnit(unsigned int unit) { _baseShadowTextureUnit = unit; }
49 unsigned int getBaseShadowTextureUnit() const { return _baseShadowTextureUnit; }
50
53 void setUseOverrideForShadowMapTexture(bool useOverride) { _useShadowMapTextureOverride = useOverride; }
54
56 bool getUseOverrideForShadowMapTexture() const { return _useShadowMapTextureOverride; }
57
58
60 void setTextureSize(const osg::Vec2s& textureSize) { _textureSize = textureSize; }
61
63 const osg::Vec2s& getTextureSize() const { return _textureSize; }
64
65 void setMinimumShadowMapNearFarRatio(double ratio) { _minimumShadowMapNearFarRatio = ratio; }
66 double getMinimumShadowMapNearFarRatio() const { return _minimumShadowMapNearFarRatio; }
67
68 void setMaximumShadowMapDistance(double distance) { _maximumShadowMapDistance = distance; }
69 double getMaximumShadowMapDistance() const { return _maximumShadowMapDistance; }
70
71
73 {
75 PERSPECTIVE_SHADOW_MAP
76 };
77
78 void setShadowMapProjectionHint(ShadowMapProjectionHint hint) { _shadowMapProjectionHint = hint; }
79 ShadowMapProjectionHint getShadowMapProjectionHint() const { return _shadowMapProjectionHint; }
80
87 void setPerspectiveShadowMapCutOffAngle(double angle) { _perspectiveShadowMapCutOffAngle = angle; }
88 double getPerspectiveShadowMapCutOffAngle() const { return _perspectiveShadowMapCutOffAngle; }
89
90
91 void setNumShadowMapsPerLight(unsigned int numShadowMaps) { _numShadowMapsPerLight = numShadowMaps; }
92 unsigned int getNumShadowMapsPerLight() const { return _numShadowMapsPerLight; }
93
99
100 void setMultipleShadowMapHint(MultipleShadowMapHint hint) { _multipleShadowMapHint = hint; }
101 MultipleShadowMapHint getMultipleShadowMapHint() const { return _multipleShadowMapHint; }
102
103
105 {
108 PROVIDE_VERTEX_AND_FRAGMENT_SHADER
109 };
110
111 void setShaderHint(ShaderHint shaderHint) { _shaderHint = shaderHint; }
112 ShaderHint getShaderHint() const { return _shaderHint; }
113
114 void setDebugDraw(bool debugDraw) { _debugDraw = debugDraw; }
115 bool getDebugDraw() const { return _debugDraw; }
116
117 protected:
118
120
121
124
126
131
136
139
142
143};
144
145}
146
147#endif
Definition ShadowSettings:25
ShaderHint getShaderHint() const
Definition ShadowSettings:112
const osg::Vec2s & getTextureSize() const
Definition ShadowSettings:63
void setNumShadowMapsPerLight(unsigned int numShadowMaps)
Definition ShadowSettings:91
osg::CullSettings::ComputeNearFarMode _computeNearFearModeOverride
Definition ShadowSettings:125
void setMinimumShadowMapNearFarRatio(double ratio)
Definition ShadowSettings:65
ShadowSettings(const ShadowSettings &ss, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
void setDebugDraw(bool debugDraw)
Definition ShadowSettings:114
void setUseOverrideForShadowMapTexture(bool useOverride)
Definition ShadowSettings:53
ShadowMapProjectionHint getShadowMapProjectionHint() const
Definition ShadowSettings:79
void setShadowMapProjectionHint(ShadowMapProjectionHint hint)
Definition ShadowSettings:78
double _minimumShadowMapNearFarRatio
Definition ShadowSettings:132
ShadowMapProjectionHint _shadowMapProjectionHint
Definition ShadowSettings:134
void setCastsShadowTraversalMask(unsigned int mask)
Definition ShadowSettings:35
void setLightNum(int lightNum)
Definition ShadowSettings:45
bool _debugDraw
Definition ShadowSettings:141
unsigned int getCastsShadowTraversalMask() const
Definition ShadowSettings:36
double getPerspectiveShadowMapCutOffAngle() const
Definition ShadowSettings:88
ShaderHint
Definition ShadowSettings:105
@ NO_SHADERS
Definition ShadowSettings:106
@ PROVIDE_FRAGMENT_SHADER
Definition ShadowSettings:107
bool getDebugDraw() const
Definition ShadowSettings:115
osg::CullSettings::ComputeNearFarMode getComputeNearFarModeOverride() const
Definition ShadowSettings:39
double _maximumShadowMapDistance
Definition ShadowSettings:133
bool _useShadowMapTextureOverride
Definition ShadowSettings:129
META_Object(osgShadow, ShadowSettings)
unsigned int getNumShadowMapsPerLight() const
Definition ShadowSettings:92
MultipleShadowMapHint getMultipleShadowMapHint() const
Definition ShadowSettings:101
void setMaximumShadowMapDistance(double distance)
Definition ShadowSettings:68
void setMultipleShadowMapHint(MultipleShadowMapHint hint)
Definition ShadowSettings:100
void setTextureSize(const osg::Vec2s &textureSize)
Definition ShadowSettings:60
unsigned int getReceivesShadowTraversalMask() const
Definition ShadowSettings:33
void setShaderHint(ShaderHint shaderHint)
Definition ShadowSettings:111
unsigned int _numShadowMapsPerLight
Definition ShadowSettings:137
int _lightNum
Definition ShadowSettings:127
unsigned int _receivesShadowTraversalMask
Definition ShadowSettings:122
bool getUseOverrideForShadowMapTexture() const
Definition ShadowSettings:56
void setBaseShadowTextureUnit(unsigned int unit)
Definition ShadowSettings:48
double getMaximumShadowMapDistance() const
Definition ShadowSettings:69
MultipleShadowMapHint _multipleShadowMapHint
Definition ShadowSettings:138
unsigned int _baseShadowTextureUnit
Definition ShadowSettings:128
void setComputeNearFarModeOverride(osg::CullSettings::ComputeNearFarMode cnfn)
Definition ShadowSettings:38
void setPerspectiveShadowMapCutOffAngle(double angle)
Definition ShadowSettings:87
MultipleShadowMapHint
Definition ShadowSettings:95
@ PARALLEL_SPLIT
Definition ShadowSettings:96
double _perspectiveShadowMapCutOffAngle
Definition ShadowSettings:135
ShaderHint _shaderHint
Definition ShadowSettings:140
int getLightNum() const
Definition ShadowSettings:46
unsigned int _castsShadowTraversalMask
Definition ShadowSettings:123
osg::Vec2s _textureSize
Definition ShadowSettings:130
void setReceivesShadowTraversalMask(unsigned int mask)
Definition ShadowSettings:32
unsigned int getBaseShadowTextureUnit() const
Definition ShadowSettings:49
double getMinimumShadowMapNearFarRatio() const
Definition ShadowSettings:66
ShadowMapProjectionHint
Definition ShadowSettings:73
@ ORTHOGRAPHIC_SHADOW_MAP
Definition ShadowSettings:74
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
ComputeNearFarMode
Definition CullSettings:161
Definition Object:61
Definition Vec2s:20
Definition ConvexPolyhedron:33
#define OSGSHADOW_EXPORT
Definition osgShadow/Export:39