前言
一 Geode
-
Geode 继承关系
Node
|–Geode
a.Geode 直接继承与Node 是末段节点
b.没有Group属性,所以不能再添加其他节点
c.主要功能 ①包围盒 ②持有Drawable(Geometry)
d.实际上就是一个壳类型 -
Geode的设置
- Drawable
解释:
1.代码如下
Geode->addDrawable(ShapDrawable* )
new ShapeDrawable(new osg::Box);
二 创建简单box
osg::Geode* CreateGeode()
{
osg::Geode* node = new osg::Geode;
osg::ref_ptr<osg::Box> box = new osg::Box;
osg::ref_ptr<osg::ShapeDrawable> shap = new osg::ShapeDrawable(box.get());
shap->setColor(osg::Vec4f(1.f,0.f,0.f,1.f));
node->addDrawable(shap.get());
return node;
}
1. 颜色
- shapeDrawable 设置颜色
shap->setColor(osg::Vec4f(1.f,0.f,0.f,1.f));
2. 材质
3. 纹理
texture2d 和 image 要配合使用
osg::ref_ptr<osg::Texture2D> texture = new osg::Texture2D;
osg::ref_ptr<osg::Image> image = osgDB::readImageFile("screen_shot_0_0.jpg");
texture->setImage(image.get());
node->getOrCreateStateSet()->setTextureAttributeAndModes(0,texture.get(),osg::StateAttribute::ON);