一、资料准备
1.OSG源码下载地址
2.数据包下载地址
3.第三方库下载地址
第三方库文件需要和vs版本对应
4.CMAKE下载地址
最好选择.msi文件下载,可以直接安装,cmake高版本容易出现问题,我用的是3.8.0版本
5.vs需要安装MFC组件
6.已编译文件
如果不想自己编译,可以在这里下载已编译过的文件
链接:https://pan.baidu.com/s/101IXFgvKQhQOEbfLa-ztZg
提取码:osgb
然后根据这篇文章安装https://blog.csdn.net/qq_42232522/article/details/119250550?utm_source=app&app_version=5.3.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
二、编译准备
在D盘创建一个osg文件夹
D:\osg\OpenSceneGraph存放osg源码,文件夹下再建一个build文件
D:\osg\3rdParty存放第三方库
D:\osg\Data存放数据资源
三、安装源码
1.安装cmake,打开cmake
2.填写源码路径和结果路径
3.点击Configure,选择virtual studio对应版本,注意操作系统32还是64位,点击finish
4.在红色区域找到
ACTUAL_3RDPARTY-DIR将值设为D:\OSG\3rdParty,注意大小写
BUILD_OSG_EXAMPLES打勾
CMAKE_INSTALL_PREFIX设为第一步中结果路径即D:\OSG\OpenSceneGraph\build
点击Configure,此时红色区域减少,将 BUILD_MFC_EXAMPLES打勾
再次点击Configure,此时红色区域消失,点击Generate,构建完成后,在结果路径中会生成OpenSceneGraph.sln文件。
四、编译
1.打开Examples osgviewerMFC里面的stdafx.h文件,将WINVER和_WIN32_WINNt的值改成0x0A00。
2.管理员权限打开vs,用vs打开OpenSceneGraph.sln文件,选择生成->批生成,选择ALL_BUILD的Debug和Release两个版本生成,这一步需要很长时间,3-5个小时,生成过程中会有警告,不用管
3.继续批生成,选择INSTALL的Debug和Release版本生成,这一步很快。
五、设置环境变量
1.添加系统变量OSG_FILE_PATH,变量值为数据包地址即D:\OSG\Data
2.在Path中添加结果目录中的bin目录即D:\OSG\OpenSceneGraph\build\bin
3.在命令行中输入osgversion或osgviewer cow.osg进行测试。
六、添加依赖项
1.使用vs新建C++控制台程序,在项目->属性->VC++目录,在包含目录添加结果路径中的include目录即D:\OSG\OpenSceneGraph\build\include和D:\OSG\OpenSceneGraph\include,在库目录添加结果目录中的lib目录,即D:\OSG\OpenSceneGraph\build\lib.
2.点击链接器,选择输入,在附加依赖项添加
OpenThreadsd.lib
osgAnimationd.lib
osgd.lib
osgDBd.lib
osgFXd.lib
osgGAd.lib
osgManipulatord.lib
osgParticled.lib
osgPresentationd.lib
osgShadowd.lib
osgSimd.lib
osgTerraind.lib
osgTextd.lib
osgUId.lib
osgUtild.lib
osgViewerd.lib
osgVolumed.lib
osgWidgetd.lib
3.在cpp文件中输入代码
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
int main( int argc, char **argv )
{
osgViewer::Viewer viewer;
viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
return viewer.run();
}
运行,成功运行证明编译完成,如果gl.h报错,需要在gl.h文件里面加入#include<Windows.h>