osgShadow.ShadowTexture
是一个OSG阴影贴图节点的基本等效节点。
在阴影技术中,通常使用纹理映射技术来创建场景中不同对象的阴影效果。osgShadow.ShadowTexture
提供了纹理映射技术中必须使用的一些参数,如纹理尺寸、格式、MIP贴图、过滤模式等。
osgShadow.ShadowTexture
的使用方法很简单,只需将其作为一个子节点添加到场景图中即可。在自定义场景图中,可以将需要产生阴影的几何体添加到osgShadow.ShadowTexture
节点的子节点中。为了产生阴影效果,还需要设置相应的灯光参数。
osgShadow.ShadowTexture
的主要参数如下:
Width
:贴图的宽度,默认为1024Height
:贴图的高度,默认为1024Format
:贴图的格式,默认为GL_DEPTH_COMPONENT16InternalFormat
:贴图的内部格式,默认为GL_DEPTH_COMPONENTShadowComparison
:阴影比较的方法,默认为osgShadow.ShadowTexture.COMPARE_R_TO_TEXTURE
BorderColor
:纹理边框颜色,默认为0.0Filter
:纹理过滤模式,默认为osg.Texture.LINEAR
下面是一个简单的示例代码:
osg::ref_ptr<osgShadow::ShadowTexture> shadowTexture = new osgShadow::ShadowTexture;
shadowTexture->setTextureSize(1024, 1024);
shadowTexture->setAmbientBias(osg::Vec2(0.8, 0.2));
osg::ref_ptr<osgShadow::ShadowedScene> shadowedScene = new osgShadow::ShadowedScene;
shadowedScene->setShadowTechnique(new osgShadow::ParallelSplitShadowMap);
shadowedScene->addChild(shadowTexture);