如果指定颜色,而不是背景色,则需要用const_
目标是指定颜色,源是要加的模型(比如点云)。
float backColorAlpha = 0.6;
osg::BlendColor* backColor = new osg::BlendColor(osg::Vec4(1.0, 1.0, 1.0, backColorAlpha));
stateset->setAttributeAndModes(backColor, osg::StateAttribute::ON);
osg::BlendFunc*bf = new osg::BlendFunc();
stateset->setAttributeAndModes(bf, osg::StateAttribute::ON);
bf->setSourceAlpha(osg::BlendFunc::ONE_MINUS_CONSTANT_ALPHA); //点云的alpha,由1-backColorAlpha决定
bf->setDestinationAlpha(osg::BlendFunc::CONSTANT_ALPHA);//背景颜色的alpha,由backColorAlpha决定
bf->setDestinationRGB(osg::BlendFunc::CONSTANT_COLOR);