diff --git a/src/osgShadow/ParallelSplitShadowMap.cpp b/src/osgShadow/ParallelSplitShadowMap.cpp index 7df883ff1..57ce2c7e4 100644 --- a/src/osgShadow/ParallelSplitShadowMap.cpp +++ b/src/osgShadow/ParallelSplitShadowMap.cpp @@ -102,28 +102,46 @@ std::string ParallelSplitShadowMap::FragmentShaderGenerator::generateGLSL_Fragme } if (filtered) { - sstr << " float fTexelSize="<< (sqrt(2.0) / textureRes ) <<";" << std::endl; + sstr << " float fTexelSize="<< (1.41 / textureRes ) <<";" << std::endl; + sstr << " float fZOffSet = -0.0015;" << std::endl; + } for (unsigned int i=0;isetInternalFormat(GL_RGBA); #endif - pssmShadowSplitTexture._texture->setFilter(osg::Texture2D::MIN_FILTER,osg::Texture2D::LINEAR); - pssmShadowSplitTexture._texture->setFilter(osg::Texture2D::MAG_FILTER,osg::Texture2D::LINEAR); + pssmShadowSplitTexture._texture->setFilter(osg::Texture2D::MIN_FILTER,osg::Texture2D::NEAREST); + pssmShadowSplitTexture._texture->setFilter(osg::Texture2D::MAG_FILTER,osg::Texture2D::NEAREST); pssmShadowSplitTexture._texture->setBorderColor(osg::Vec4(1.0,1.0,1.0,1.0)); pssmShadowSplitTexture._texture->setWrap(osg::Texture2D::WRAP_S, osg::Texture2D::CLAMP_TO_BORDER); pssmShadowSplitTexture._texture->setWrap(osg::Texture2D::WRAP_T, osg::Texture2D::CLAMP_TO_BORDER);