mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-03-28 20:36:42 +00:00
Correct behaviour of use front face culling setting to not use back face culling either when disabled.
This commit is contained in:
parent
cfe921fb82
commit
15547750ba
1 changed files with 9 additions and 5 deletions
|
@ -849,7 +849,7 @@ void SceneUtil::MWShadowTechnique::disableFrontFaceCulling()
|
||||||
_useFrontFaceCulling = false;
|
_useFrontFaceCulling = false;
|
||||||
|
|
||||||
if (_shadowCastingStateSet)
|
if (_shadowCastingStateSet)
|
||||||
_shadowCastingStateSet->removeAttribute(osg::StateAttribute::CULLFACE);
|
_shadowCastingStateSet->setMode(GL_CULL_FACE, osg::StateAttribute::OFF | osg::StateAttribute::OVERRIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SceneUtil::MWShadowTechnique::setupCastingShader(Shader::ShaderManager & shaderManager)
|
void SceneUtil::MWShadowTechnique::setupCastingShader(Shader::ShaderManager & shaderManager)
|
||||||
|
@ -1462,12 +1462,16 @@ void MWShadowTechnique::createShaders()
|
||||||
// In this case we will draw them in their entirety.
|
// In this case we will draw them in their entirety.
|
||||||
|
|
||||||
if (_useFrontFaceCulling)
|
if (_useFrontFaceCulling)
|
||||||
|
{
|
||||||
_shadowCastingStateSet->setAttribute(new osg::CullFace(osg::CullFace::FRONT), osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
|
_shadowCastingStateSet->setAttribute(new osg::CullFace(osg::CullFace::FRONT), osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
|
||||||
|
|
||||||
// make sure GL_CULL_FACE is off by default
|
// make sure GL_CULL_FACE is off by default
|
||||||
// we assume that if object has cull face attribute set to back
|
// we assume that if object has cull face attribute set to back
|
||||||
// it will also set cull face mode ON so no need for override
|
// it will also set cull face mode ON so no need for override
|
||||||
_shadowCastingStateSet->setMode( GL_CULL_FACE, osg::StateAttribute::OFF );
|
_shadowCastingStateSet->setMode(GL_CULL_FACE, osg::StateAttribute::OFF);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_shadowCastingStateSet->setMode(GL_CULL_FACE, osg::StateAttribute::OFF | osg::StateAttribute::OVERRIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
_polygonOffset = new osg::PolygonOffset(_polygonOffsetFactor, _polygonOffsetUnits);
|
_polygonOffset = new osg::PolygonOffset(_polygonOffsetFactor, _polygonOffsetUnits);
|
||||||
|
|
Loading…
Reference in a new issue