osgShadow.StandardShadowMap是OpenSceneGraph的一个阴影映射技术实现。阴影映射(Shadow Mapping)是计算机图形学中常用的实时生成阴影的一种方法。osgShadow.StandardShadowMap需要应用于阴影投射者(如光源)和接收者(被渲染物体)之间的相对位置和姿态信息,以生成阴影贴图。可以使用GLSL编写阴影贴图的显示和计算细节。
osg::ref_ptr<osgShadow::StandardShadowMap> shadowTechnique = new osgShadow::StandardShadowMap;
shadowTechnique->setTextureSize(osg::Vec2s(1024,1024)); //设置阴影贴图大小
shadowTechnique->setAmbientBias(osg::Vec2(0.8,0.2)); //设置环境遮挡值
shadowTechnique->setBaseShadowTextureUnit(0); //设置阴影开始的纹理单元
shadowTechnique->setShadowTextureUnit(1); //设置阴影使用的纹理单元
shadowTechnique->setLight(0, light0); //设置光源
shadowTechnique->setPolygonOffset(osg::Vec2(1.0f,1.0f)); //设置多边形偏移
root->setShadowTechnique(shadowTechnique);