Xcode:10.1
Cmake:3.11(https://cmake.org/download/)
OSG:3.6.1(http://www.openscenegraph.org/index.php/download-section/stable-releases)
OSGEarth:2.10(https://github.com/gwaldron/osgearth/tree/2.10)
3rdParty:https://pan.baidu.com/s/1Z9Hx912VOZgo4h8cgSiCRQ 密码:4tsk
新建一个文档,将3rdParty、OSG、OSGEarth文件都放入
打开Cmake,点击Tools--How to install For Command Line Use
开始编译OSG,这里说一下,OSG的文档写得很友好,打开里面的readme.md按照他的CMAKE Command就可以,如果想要用CmakeGUI一条一条设置也可以,但是最好设置一条就Configure一下,解决掉红色提醒后再Generate。
这里仅介绍使用终端以命令行方式去Build:
cd 进你的OpenSceneGraph3.6.1文件夹,THIRDPARTY_PATH的路径就是你的3rdparty文件路径,IPHONE_SDKVER和IPHONE_VERSION_MIN可以按照你的Xcdoe版本自己设置,显示完成后打开OpenSceneGraph.xcodeproj,添加New Scheme,选择All Build,使用Release Build。如果需要跑OSG的DEMO,选择Target--example_osgViewerIPhone--Build Settings--Other Linker Flags--Release 删除oepngGl 以及上面的-framework,Build。
如果你用的是Xcode10以上,可能会在编译Pthread.cpp的时候报错,可以将错误的地方注释掉不影响编译,当然你也可以选择较低的Xcode版本,这样比较稳定
cd 进入osgearth文件夹,在终端输入以下命令:
同样,将文件位置改为你自己的位置即可,打开project文件,选择文件----projectSetting---buildSystem 选择legacy build system,将build模式该为release,选择example目标build,静待完成。
白色是云的颜色,蓝色是海洋的颜色。无论是什么云,包括乌云,上面也是白色的。地球是海洋型行星,海洋面积占地球总面积的71%,所以空气里水分也很多,云也就多。这样太空中看地球,主色调就是蓝色和白色了。楼主既然知道怎么绘制包围盒边框,那绘制包围球不也类似吗。先得到节点的包围球,再得到包围球的中心坐标和半径,再根据取得的中心坐标和半径调用shapeBall函数画出包围球不就行了吗?但是有个问题包围球怎么会有线框呢?你要的是一个透明的包围球吧?
代码如下:
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()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)