使用OSG中自定义的基本几何体,并设置其透明的效果和网格模型,以圆锥为例。
首先创建圆锥:
osg::ref_ptr<osg::Geode> geode=new osg::Geode;
//生成圆锥
m_pCone=new osg::Cone;
m_pCone->setHeight(30);
m_pCone->setRadius(30);
osg::ref_ptr<osg::ShapeDrawable> shap=new osg::ShapeDrawable(m_pCone);
//第四个参数0.25表示不透明度,0表示完全透明,1表示完全不透明
shap->setColor(osg::Vec4(0.4,0.8,0.4,0.25));
geode->addDrawable(shap);
接下来设置透明效果和网格模型:
//设置几何体透明效果
osg::ref_ptr<osg::StateSet> stateset=geode->getOrCreateStateSet();
stateset->setMode(GL_BLEND,osg::StateAttribute::ON);