osg中实现半透明效果

来源:互联网 发布:网络布线怎么收费 编辑:程序博客网 时间:2024/06/06 07:31

在为球贴图的基础上,实现模拟地球的透明展示。

是先前效果如下:

实现后效果如下:

实现代码如下,主要是在状态集中进行设置:

osg::ref_ptr<osg::BlendFunc>blendFunc = new osg::BlendFunc();

    blendFunc->setSource(osg::BlendFunc::SRC_ALPHA);

    blendFunc->setDestination(osg::BlendFunc::ONE_MINUS_CONSTANT_ALPHA);

    stateSet->setAttributeAndModes(blendFunc);

    stateSet->setMode(GL_DEPTH_TEST,osg::StateAttribute::OFF);//取消深度测试

取消深度测试很关键,可以防止图片转动切换时变花,如下图:

 

osg::BlendFunc混合:把两种颜色混合在一起。


0 0
原创粉丝点击