大体步骤如同上面所说的,这里重点记录一些细节:
工具:
1.OSG的源码,
用的3.2.1 rc版本的,之前用的3.2.0编译了4个小时发现都没生成那些exe文件
2.OSG的第三方依赖,用的3rdParty_VS2013_v120_x86_x64_V9_small版本的,这个没啥问题,
就是后面要用VS2013编译运行实例代码的时候需要在环境变量path中加入 .....\3rdParty\bin的路径 ,才能正常运行。
3.数据包,用的 OpenSceneGraph-Data-3.0.0 里面有许多实例文件,可以参照。
4.cmake ,用来编译OSG的源代码,生成一个sln文件,用VS2013打开。
步骤:
为了编译的顺利进行,将下载的文件组织如下:
在E盘建立一个OSG的文件夹,然后其他文件如下放置:
E:\OSG\OpenSceneGraph:源码解压后放于此
E:\OSG\3rdParty:第三方依赖库解压后放于此
就用X86里面的就行了。
下面这个是数据文件夹
源码文件夹
在源码文件夹里面建 build , bin, lib 文件夹,方便后面识别
然后就是用CMAKE来编译 源码
像最上面那篇文章说的配置CMAKE,
在最开始configure的时候,我电脑报错了,说585行qt的mingw这个和cmake冲突,解决方法:屏蔽掉那几行报错的if 和endif
多configure几次,才可以看到BUILD_MFC_EXAMPLE这个,最后“生成”
生成好了,就在
OpenSceneGraph
/
build里面找到VS2013的sln
编译时间有点长,大概4个小时。
编译好了转移数据,然后就可以跑示例
代码了。
不过我运行的牛是有点问题
上面这个实例的cow.osg模型显示不全的原因,大概是因为全屏吧,后面修改代码
#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
#include<osgViewer/ViewerEventHandlers>
#include<osgGA/StateSetManipulator>
#include<osgViewer/Viewer>
#include<osg/Node>
int main(int argc, char **argv)
{
<span style="white-space:pre"> </span>osgViewer::Viewer viewer;
<span style="white-space:pre"> </span>//viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
<span style="white-space:pre"> </span>osg::Group * root = new osg::Group();
<span style="white-space:pre"> </span>root->addChild(osgDB::readNodeFile("robot.osg"));
<span style="white-space:pre"> </span>root->addChild(osgDB::readNodeFile("glider.osg"));
<span style="white-space:pre"> </span>viewer.setSceneData(root);
<span style="white-space:pre"> </span>//添加状态事件
<span style="white-space:pre"> </span>viewer.addEventHandler(new osgGA::StateSetManipulator(viewer.getCamera()->getOrCreateStateSet()));
<span style="white-space:pre"> </span>//窗口大小变化事件
<span style="white-space:pre"> </span>viewer.addEventHandler(new osgViewer::WindowSizeHandler);
<span style="white-space:pre"> </span>//添加一些常用状态设置
<span style="white-space:pre"> </span>viewer.addEventHandler(new osgViewer::StatsHandler);
<span style="white-space:pre"> </span>viewer.realize();
<span style="white-space:pre"> </span>return viewer.run();
}
显示效果就比较正常了:
快捷键:
W :网格显示等切换
F:全屏
S:显示详细资料
T:改变材质