osg.BlendColor
osg.BlendColor节点表示一个设置混合颜色的状态节点。在OpenSceneGraph中,混合通道是由源颜色和目标颜色(与当前渲染的目标颜色合成)组成的,并且源参数会根据blendFunc中定义的方法进行运算后得到最终的混合颜色值。
继承关系
osg::Object ↳ osg::StateAttribute ↳ osg::BlendColor
头文件
#include <osg/BlendColor>
函数
osg::BlendColor::BlendColor( const osg::Vec4 & color = osg::Vec4(0.0f,0.0f,0.0f,0.0f) )
参数:color 混合四元数(红、绿、蓝、透明度)
函数说明:构造一个新的osg::BlendColor节点,颜色为color。
const char* osg::BlendColor::className() const
返回:osg::BlendColor节点的类名称
函数说明:返回osg::BlendColor节点的类名称。
virtual osg::Object* osg::BlendColor::cloneType() const
返回:具有BlendColor特征的新对象
函数说明:返回一个新的osg::BlendColor节点。
virtual osg::Object* osg::BlendColor::clone() const
返回:具有BlendColor特征的新对象
函数说明:返回一个新的osg::BlendColor节点。
virtual bool osg::BlendColor::isSameKindAs(const osg::Object* obj) const
返回:是否与obj相同
函数说明:判断节点是否和obj同类型。
void osg::BlendColor::setColor( const osg::Vec4 & color )
参数:color 设置混合颜色
函数说明:设置节点的混合颜色。
const osg::Vec4& osg::BlendColor::getColor() const
返回:混合颜色
函数说明:获取节点的混合颜色。
void osg::BlendColor::apply( osg::State& state ) const
参数:state OpenSceneGraph渲染状态
函数说明:应用状态节点的混合颜色到OpenGL中。
示例
//创建BlendColor状态 osg::ref_ptrosg::BlendColor blendColor = new osg::BlendColor(osg::Vec4(1.0f, 1.0f, 1.0f, 1.0f)); //应用BlendColor状态到渲染状态中 state->setAttributeAndModes(blendColor.get(), osg::StateAttribute::ON); //开始渲染场景 viewer.run();
参考文献
https://github.com/openscenegraph/OpenSceneGraph/blob/master/include/osg/BlendColor
https://www.osgchina.org/question/5224
https://www.osget.org/question/46873
https://www.jianshu.com/p/49770d05e9a5