Public Member Functions | |
SoftShadowMap () | |
SoftShadowMap (const SoftShadowMap &es, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
META_Object (osgShadow, SoftShadowMap) | |
void | setTextureUnit (unsigned int unit) |
Set the texture unit that the shadow texture will be applied on. | |
unsigned int | getTextureUnit () const |
Get the texture unit that the shadow texture will be applied on. | |
void | setAmbientBias (const osg::Vec2 &ambientBias) |
Set the values for the ambient bias the shader will use. | |
void | setTextureSize (int width, int height) |
Set the resolution of the rendertarget texture used for shadow generation. | |
void | setTextureSize (const osg::Vec2s &) |
Set the resolution of the rendertarget texture used for shadow generation. | |
const osg::Vec2s & | getTextureSize () const |
Get the resolution of the rendertarget texture used for shadow generation. | |
void | setBias (float bias) |
Add a small bias to the z-value when calculating the MVPT matrix, this can reduce shadow acne problem. | |
float | getBias () const |
Return the bias value set used when calculating the MVPT matrix. | |
void | setSoftnessWidth (const float softnesswidth) |
Set the values for width of the soft penumbra the shader will use. | |
void | setJitteringScale (const float jitteringscale) |
Set the values for jittering scale the shader will use. | |
const osg::Vec2 & | getAmbientBias () const |
Get the values that are used for the ambient bias in the shader. | |
const float | getSoftnessWidth () const |
Get the value used for width of the soft penumbra in the shader. | |
const float | getJitteringScale () const |
Get the value used for jittering scale in the shader. | |
virtual void | init () |
initialize the ShadowedScene and local cached data structures. | |
virtual void | update (osg::NodeVisitor &nv) |
run the update traversal of the ShadowedScene and update any loca chached data structures. | |
virtual void | cull (osgUtil::CullVisitor &cv) |
run the cull traversal of the ShadowedScene and set up the rendering for this ShadowTechnique. | |
virtual void | cleanSceneGraph () |
Clean scene graph from any shadow technique specific nodes, state and drawables. | |
Protected Member Functions | |
virtual | ~SoftShadowMap () |
void | initJittering (osg::StateSet *) |
Protected Attributes | |
osg::ref_ptr < osg::Camera > | _camera |
osg::ref_ptr < osg::TexGen > | _texgen |
osg::ref_ptr < osg::Texture2D > | _texture |
osg::ref_ptr < osg::StateSet > | _stateset |
unsigned int | _textureUnit |
osg::Vec2 | _ambientBias |
float | _softnesswidth |
float | _jitteringscale |
float | _bias |
osg::Vec2s | _textureSize |
osgShadow::SoftShadowMap::SoftShadowMap | ( | ) |
osgShadow::SoftShadowMap::SoftShadowMap | ( | const SoftShadowMap & | es, | |
const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY | |||
) |
virtual osgShadow::SoftShadowMap::~SoftShadowMap | ( | ) | [inline, protected, virtual] |
osgShadow::SoftShadowMap::META_Object | ( | osgShadow | , | |
SoftShadowMap | ||||
) |
void osgShadow::SoftShadowMap::setTextureUnit | ( | unsigned int | unit | ) |
Set the texture unit that the shadow texture will be applied on.
unsigned int osgShadow::SoftShadowMap::getTextureUnit | ( | ) | const [inline] |
Get the texture unit that the shadow texture will be applied on.
void osgShadow::SoftShadowMap::setAmbientBias | ( | const osg::Vec2 & | ambientBias | ) |
Set the values for the ambient bias the shader will use.
void osgShadow::SoftShadowMap::setTextureSize | ( | int | width, | |
int | height | |||
) | [inline] |
Set the resolution of the rendertarget texture used for shadow generation.
void osgShadow::SoftShadowMap::setTextureSize | ( | const osg::Vec2s & | ) |
Set the resolution of the rendertarget texture used for shadow generation.
const osg::Vec2s& osgShadow::SoftShadowMap::getTextureSize | ( | ) | const [inline] |
Get the resolution of the rendertarget texture used for shadow generation.
void osgShadow::SoftShadowMap::setBias | ( | float | bias | ) | [inline] |
Add a small bias to the z-value when calculating the MVPT matrix, this can reduce shadow acne problem.
Suitable values are 0-0.005 Default is 0.
float osgShadow::SoftShadowMap::getBias | ( | ) | const [inline] |
Return the bias value set used when calculating the MVPT matrix.
void osgShadow::SoftShadowMap::setSoftnessWidth | ( | const float | softnesswidth | ) |
Set the values for width of the soft penumbra the shader will use.
Zero is for hard shadow (no penumbra). 0.01 is already very soft penumbra. Default is 0.005.
void osgShadow::SoftShadowMap::setJitteringScale | ( | const float | jitteringscale | ) |
Set the values for jittering scale the shader will use.
Zero is no jittering (i.e. see the banding in penumbra) High values (>64) cause 'pixelization' of the penumbra. Usually but not necessarily power of two number. Default is 32.
const osg::Vec2& osgShadow::SoftShadowMap::getAmbientBias | ( | ) | const [inline] |
Get the values that are used for the ambient bias in the shader.
const float osgShadow::SoftShadowMap::getSoftnessWidth | ( | ) | const [inline] |
Get the value used for width of the soft penumbra in the shader.
const float osgShadow::SoftShadowMap::getJitteringScale | ( | ) | const [inline] |
Get the value used for jittering scale in the shader.
virtual void osgShadow::SoftShadowMap::init | ( | ) | [virtual] |
initialize the ShadowedScene and local cached data structures.
Reimplemented from osgShadow::ShadowTechnique.
virtual void osgShadow::SoftShadowMap::update | ( | osg::NodeVisitor & | nv | ) | [virtual] |
run the update traversal of the ShadowedScene and update any loca chached data structures.
Reimplemented from osgShadow::ShadowTechnique.
virtual void osgShadow::SoftShadowMap::cull | ( | osgUtil::CullVisitor & | cv | ) | [virtual] |
run the cull traversal of the ShadowedScene and set up the rendering for this ShadowTechnique.
Reimplemented from osgShadow::ShadowTechnique.
virtual void osgShadow::SoftShadowMap::cleanSceneGraph | ( | ) | [virtual] |
Clean scene graph from any shadow technique specific nodes, state and drawables.
Reimplemented from osgShadow::ShadowTechnique.
void osgShadow::SoftShadowMap::initJittering | ( | osg::StateSet * | ) | [protected] |
osg::ref_ptr<osg::Camera> osgShadow::SoftShadowMap::_camera [protected] |
osg::ref_ptr<osg::TexGen> osgShadow::SoftShadowMap::_texgen [protected] |
osg::ref_ptr<osg::Texture2D> osgShadow::SoftShadowMap::_texture [protected] |
osg::ref_ptr<osg::StateSet> osgShadow::SoftShadowMap::_stateset [protected] |
unsigned int osgShadow::SoftShadowMap::_textureUnit [protected] |
osg::Vec2 osgShadow::SoftShadowMap::_ambientBias [protected] |
float osgShadow::SoftShadowMap::_softnesswidth [protected] |
float osgShadow::SoftShadowMap::_jitteringscale [protected] |
float osgShadow::SoftShadowMap::_bias [protected] |
osg::Vec2s osgShadow::SoftShadowMap::_textureSize [protected] |