osg中针对复杂模型,大场景,shadowTexture效果不好,需要用ParallelSplitShadowMap
用的时候,如果效果不好的话,尝试调下纹理大小 ,如:pssm->setTextureResolution(4096);
int mapcount = 4;
osg::ref_ptr<osgShadow::ParallelSplitShadowMap> pssm = new osgShadow::ParallelSplitShadowMap(NULL, mapcount);
double polyoffsetfactor = pssm->getPolygonOffset().x();
double polyoffsetunit = pssm->getPolygonOffset().y();
pssm->setPolygonOffset(osg::Vec2(polyoffsetfactor, polyoffsetunit));
pssm->setTextureResolution(4096);
pssm->setFragmentShaderGenerator(new MyFragmentShaderGenerator);
osg::ref_ptr<osgShadow::ShadowedScene> shadowedScene = new osgShadow::ShadowedScene;
osgShadow::ShadowSettings* settings = shadowedScene->getShadowSettings();
settings->setReceivesShadowTraversalMask(ReceivesShadowTraversalMask);
settings->setCastsShadowTraversalMask(CastsShadowTraversalMask);
shadowedScene->setShadowTechnique(pssm.get());
针对OSG中复杂模型及大场景阴影效果不佳的问题,本文介绍如何使用ParallelSplitShadowMap(PSSM)进行优化。通过调整纹理分辨率、偏移因子和单位,以及设置阴影接收和投射遍历掩码,提升阴影质量。
336

被折叠的 条评论
为什么被折叠?



