但是有个问题包围球怎么会有线框呢?你要的是一个透明的包围球吧?
代码如下:
osg::ref_ptr<osg::Geode>createBoudingShpere(osg::Node * node)
{
osg::ref_ptr<osg::Geode>geode = new osg::Geode()
const osg::BoundingSphere bs = node->getBound()
float radius =bs.radius()
osg::ref_ptr<osg::TessellationHints>hints = new osg::TessellationHints
hints->setDetailRatio(0.5f)
osg::Vec3 v = bs._center
osg::ShapeDrawable *shapeBall=new osg::ShapeDrawable(new osg::Sphere(v,radius),hints.get())
shapeBall->setColor(osg::Vec4(1.0f,1.0f,0.5f,0.3f))
geode->addDrawable(shapeBall)
osg::ref_ptr<osg::StateSet>stateset = geode->getOrCreateStateSet()
stateset->setMode(GL_LIGHTING,osg::StateAttribute::OFF)
stateset->setMode(GL_BLEND, osg::StateAttribute::ON | osg::StateAttribute::PROTECTED)
stateset->setRenderingHint(osg::StateSet::TRANSPARENT_BIN)
return geode.release()
}
首先,在NASA下载地表图片ftp://veftp.gsfc.nasa.gov/bluemarble/land_shallow_topo_east.tif
和
ftp://veftp.gsfc.nasa.gov/bluemarble/land_shallow_topo_west.tif
很大啊,慢慢下
然后在图片所在目录执行以下命令
osgdem --bluemarble-west -t land_shallow_topo_west.tif \
--bluemarble-east -t land_shallow_topo_east.tif \
--geocentric \
-l 12 \
-o earth.ive \
-a earth.osga
然后就等着,这个 *** 作最好晚上上床之前执行,第二天早上就好了,如果你等不及,就把-l 12的数值减小,这个是层次数目。
在osgviewer里面就可以看这个模型了,非常漂亮哦。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)