OSG开发环境快速搭建(VS2022+OSG-3.6.5-release)

目录

前言

 

零、OSG介绍

一、获取OSG库和测试素材

二、VS2022中导入OSG库

三、尾言


前言

        该教程旨指导第一次上手OSG的读者上手第一个程序,如同刚学C/C++时怎么去写一个“hello world.”程序一样。因此不会涉及难度较高的部分,例如编译和源码和原理讲解。就仅仅是将那头牛显示出来而已。

零、OSG介绍

        直接看官网,介绍的比我好多了。

地址:osg(osg中文社区)-osgEarth-osgViewer-基于OpenGL-开源三维渲染引擎-图形引擎-虚拟仿真工具-osg教程-osg仿真 (osgchina.org)

一、获取OSG库和测试素材

        OSG是开源的,向开发者提供了两种方式去接入,一种是直接提供源码,开发者直接去使用CMAKE 编译。我相信如果已经编译出来的同事,基本也已经会怎么开发第一个程序了,所以这里介绍第二种,选择直接使用官方编译好的二进制库,如果只是写一些简单的仿真程序,使用二进制库足够了。下载地址:OpenSceneGraph | Objexx Engineering

注意:这里我们下载release版本,这里涉及到后面VS怎么导入的问题,否则会报段错误:

0xjavascript:void(0);00007FFED6F17BED (osgViewer.dll)处(位于 OSGTest1.exe 中)引发的异常

下载好解压之后有三个文件夹:

 osg也提供测试DEM可能 用到的模型素材,测试素材下载地址:数据资源 (osgchina.org) 

二、VS2022中导入OSG库

        VS中导入osg库,是开发的基础。这里其实和普通的导入方式一致,只不过有几处细节需要知晓。

0. 将上面include和lib拷贝到项目下的osg文件夹(自己创建)下。

1.新建空项目,当然了,创建控制台应用也是一毛一样的。

2. 进入项目界面,随即创建个main文件,这就是程序的入口了。这里要先创建main.cpp,才能在项目属性中找到c/c++的设置配置。同时这里我们要主要下面的配置都需要使用release环境。

3.  右键项目名-->属性-->C/C++-->常规-->附加包含目录:填入:$(ProjectDir)osg\include

加入osg二进制中的include目录,使用宏定位到当前项目路径。

4.  右键项目名-->属性-->链接器-->常规-->附加目录:填入:$(ProjectDir)osg\lib

5.右键项目名-->属性-->链接器-->输入-->附加依赖项:

OpenThreads.lib
osg.lib
osgAnimation.lib
osgDB.lib
osgFX.lib
osgGA.lib
osgManipulator.lib
osgParticle.lib
osgPresentation.lib
osgQOpenGL.lib
osgShadow.lib
osgSim.lib
osgTerrain.lib
osgText.lib
osgUI.lib
osgUtil.lib
osgViewer.lib
osgVolume.lib
osgWidget.lib

 6. 右键项目名-->属性-->C/C++-->预处理器-->预处理定义:这里是因为osg使用了32位的opengl,如果不进行这一操作,将会报错,说找不到opengl。

7. main函数中编写代码,并运行;

#include <iostream>
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
int main()
{
    osgViewer::Viewer viewer;
    viewer.setSceneData(osgDB::readNodeFile("D:\\workspace_vs\\OpenSceneGraph-Data-3.0.0\\OpenSceneGraph-Data-3.0.0\\cow.osg"));
    return viewer.run();

8. 上面运行将会报错 找不到“xxx.dll”库,"could not find plugin to read objects from file xxx.osg",这是正常的,因为osg的运行需要依赖大量动态库。这里提供直接将上面下载的bin文件夹拷贝到项目下的 “你的项目\x64\Release”中,与生成的exe文件放在一块即可。

日后开发的项目可直接将release文件夹发给对方使用。

三、尾言

        至此,程序将能顺利执行。这里还是建议要下载源码,因为源码中包含了大量的示例代码可学习。

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Griza_J

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值