Public Member Functions | |
SoftShadowMap () | |
SoftShadowMap (const SoftShadowMap &es, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
META_Object (osgShadow, SoftShadowMap) | |
void | setSoftnessWidth (const float softnessWidth) |
float | getSoftnessWidth () const |
void | setJitteringScale (const float jitteringScale) |
float | getJitteringScale () const |
void | setJitterTextureUnit (unsigned int jitterTextureUnit) |
unsigned int | getJitterTextureUnit () const |
void | setBias (float bias) |
float | getBias () const |
Protected Member Functions | |
virtual | ~SoftShadowMap (void) |
void | createUniforms () |
void | createShaders () |
void | initJittering (osg::StateSet *ss) |
Protected Attributes | |
osg::ref_ptr< osg::Uniform > | _softnessWidthUniform |
osg::ref_ptr< osg::Uniform > | _jitteringScaleUniform |
float | _softnessWidth |
float | _jitteringScale |
unsigned int | _jitterTextureUnit |
osgShadow::SoftShadowMap::SoftShadowMap | ( | ) |
osgShadow::SoftShadowMap::SoftShadowMap | ( | const SoftShadowMap & | es, | |
const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY | |||
) |
virtual osgShadow::SoftShadowMap::~SoftShadowMap | ( | void | ) | [inline, protected, virtual] |
osgShadow::SoftShadowMap::META_Object | ( | osgShadow | , | |
SoftShadowMap | ||||
) |
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.
float osgShadow::SoftShadowMap::getSoftnessWidth | ( | ) | const [inline] |
Get the value used for width of the soft penumbra in the shader.
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.
float osgShadow::SoftShadowMap::getJitteringScale | ( | ) | const [inline] |
Get the value used for jittering scale in the shader.
void osgShadow::SoftShadowMap::setJitterTextureUnit | ( | unsigned int | jitterTextureUnit | ) |
Set the texture unit that the jitter texture will be applied on.
unsigned int osgShadow::SoftShadowMap::getJitterTextureUnit | ( | ) | const [inline] |
Get the texture unit that the jitter texture will be applied on.
void osgShadow::SoftShadowMap::setBias | ( | float | bias | ) | [inline] |
Add a small bias to the z-value, this can reduce shadow acne problem. This is the same as calling setPolygonOffset(osg::Vec2(bias,0)); Suitable values are 0-0.005 Default is 0.
float osgShadow::SoftShadowMap::getBias | ( | ) | const [inline] |
Return the bias value
void osgShadow::SoftShadowMap::createUniforms | ( | ) | [protected, virtual] |
Create the managed Uniforms
Reimplemented from osgShadow::ShadowMap.
void osgShadow::SoftShadowMap::createShaders | ( | ) | [protected, virtual] |
Reimplemented from osgShadow::ShadowMap.
void osgShadow::SoftShadowMap::initJittering | ( | osg::StateSet * | ss | ) | [protected] |
float osgShadow::SoftShadowMap::_softnessWidth [protected] |
float osgShadow::SoftShadowMap::_jitteringScale [protected] |
unsigned int osgShadow::SoftShadowMap::_jitterTextureUnit [protected] |