一、文件下载
1.下载osg二进制文件(debug和release都需要)
https://objexx.com/OpenSceneGraph.html
2.下载osg的data文件
https://www.openscenegraph.com/index.php/download-section/data
3.下载osg的第三方依赖库,一般都是下载full
Dependencies (openscenegraph.com)
二、环境配置
完成下载操作后得到的文件如下图
随后打开环境变量
进入到用户环境变量设置中
先新建一个用户变量OSG_FILE_PATH,路径填自己的
然后点击Path->编辑->新建 将debug和release的bin目录都添加进去
现在环境变量就配置完成了。
测试一下,打开cmd,输入命令osgversion,配置成功就会显示版本号
然后输入命令 osgviewer cow.osg 就会出现牛的模型
三、VS2022设置
新建一个C++空项目
在解决方案的源文件下新建一个cpp文件
右键点击项目,打开属性
首先配置Debug
转到 VC++目录 如下图修改 “可执行文件目录”、“包含目录”、“库目录”,填入你的osgdebug文件下的相应目录
然后如下图
由于是Debug模式,所以.lib文件结尾都加d;
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgUtild.lib
osgGAd.lib
osgViewerd.lib
osgTextd.lib
现在配置完成,release模式同理,需要先修改模式
其他同上,将osgDebug变为osgRelease,附加依赖项改为
OpenThreads.lib
osg.lib
osgDB.lib
osgUtil.lib
osgGA.lib
osgViewer.lib
osgText.lib
四、运行
以Debug配置为例
#include<osgViewer/Viewer>
#include<osg/Node>
#include<osg/Geode>
#include<osg/Group>
#include<osgDB/ReadFile>
#include<osgDB/WriteFile>
#include<osgUtil/Optimizer>
int main()
{
//创建Viewer对象,场景浏览器
osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
//创建场景根节点
osg::ref_ptr<osg::Group> root = new osg::Group();
//创建一个节点,读取模型文件
osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("cow.osg");
//添加到场景
root->addChild(node.get());
//优化场景
osgUtil::Optimizer optimizer;
optimizer.optimize(root.get());
//设置场景数据
viewer->setSceneData(root.get());
//初始化并创建窗口
viewer->realize();
//开始渲染
viewer->run();
return 0;
}
运行后出现牛的模型
over!