一、概述

1、下载地址
osg官网: :http://www.openscenegraph.org/
osg    : http://www.openscenegraph.org/downloads/stable_releases/
osg Github :https://github.com/openscenegraph/OpenSceneGraph
3rdParty  : https://download.osgvisual.org/
osgEarth  : http://www.openscenegraph.org/index.php/download-section/stable-releases
2、学习大神
osgChina站长文集
osgEarth的Rex引擎原理分析
大神编译好的各种版本的库
3、教学视频
塔库咪的osg72和osgEarth35讲
osgEarth 35讲教学视频
OSG的B站小讲堂

二、编译

1、osg编译
osg编译(修改makefile qt)
编译安装OpenSceneGraph(OSG)教程
osgEarth编译配置(含OSG)
osgQOpenGL的编译与使用
osg mingw编译
osg mingw编译带版本号
osg qt mingw编译

osgEarth编译时可参考的配置路径

//修改CMakeLists.txt直接加入配置
#--------------------------------------------------------------------------------------------
SET(LIBZIP_LIBRARY "E:/OSGEarth/3rdForMe/libzip-1.7.3/install/lib/zip.lib")
SET(LIBZIP_CONF_INCLUDE_DIR "E:/OSGEarth/3rdForMe/libzip-1.7.3/install/include")
SET(GLEW_INCLUDE_DIRS "E:/OSGEarth/3rdForMe/glew-2.1.0/install/include")
SET(GLEW_LIBRARIES "E:/OSGEarth/3rdForMe/glew-2.1.0/install/lib/glew32.lib")
SET(GLEW_INCLUDE_DIR "E:/OSGEarth/3rdForMe/glew-2.1.0/install/include")
SET(GLEW_LIBRARY "E:/OSGEarth/3rdForMe/glew-2.1.0/install/lib/glew32.lib")SET(PROTOBUF_INCLUDE_DIR "E:/OSGEarth/3rdForMe/protobuf-3.15.5/install/include")
SET(PROTOBUF_LIBRARY_DEBUG "E:/OSGEarth/3rdForMe/protobuf-3.15.5/install/lib/libprotobufd.lib")
SET(PROTOBUF_LIBRARY_RELEASE "E:/OSGEarth/3rdForMe/protobuf-3.15.5/install/lib/libprotobuf.lib")
SET(PROTOBUF_LITE_LIBRARY "E:/OSGEarth/3rdForMe/protobuf-3.15.5/install/lib/libprotobuf-lite.lib")
SET(PROTOBUF_LITE_LIBRARY_DEBUG "E:/OSGEarth/3rdForMe/protobuf-3.15.5/install/lib/libprotobuf-lited.lib")
set(Protobuf_PROTOC_EXECUTABLE "E:/OSGEarth/3rdForMe/protobuf-3.15.5/install/bin/protoc.exe")
SET(PROTOBUF_PROTOC_LIBRARY_DEBUG "E:/OSGEarth/3rdForMe/protobuf-3.15.5/install/lib/libprotocd.lib")
SET(PROTOBUF_PROTOC_LIBRARY_RELEASE "E:/OSGEarth/3rdForMe/protobuf-3.15.5/install/lib/libprotoc.lib")

2、各种编译问题的解决
(1)ZERO_CHECK错误

  • 问题:在osg编译过程中,没有生成Release版,切换成release,生成INSTALL时报:“ZERO_CHECK 错误:
    未能完成操作。未指定的错误”。
  • 解决:
    ①先把ZERO_CHECK.vcxproj 文件剪切到其他地方
    ②打开OpenSceneGraph.sln, 此时ZERO_CHECK会显示无法加载
    ③把ZERO_CHECK.vcxproj拷贝回原地方 4,右键点击Ilmlmf,----》重新加载(找到路径)或手动加载
    (2)MVT不是osgEarth的成员
    原因:MVT头文件中有条件,没满足所以没定义,主要是cmake时protobuf设置不对
    解决:像图中不用DLL,同时注意是src路径


    最终通过直接set设置路径

3、自己编译的库放到3rdparty
如把编译后libzip头文件放到G:\OSGCore\Bulid\OpenSceneGraphic\3rdParty\include\libzip下,.lib放到lib文件夹中,.dll文件放到bin文件夹中。
4、cmake下的findpackage对应的cmake文件
FindProtobuf.cmake FindGlew.cmake
5、glew not found
cmake找不到glew的问题
最终直接set设置
5、protobuf编译问题
直接set设置路径,后来又报:

出现:error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配
解决:将osgEarthCore的改成MTD、MT,又报出一大堆错,还是改protobuf的吧,于是重新编译protobuf,将protobuf改成MD、MDd。(工程属性 -》c/c+ -》代码生成 -》运行库 )

error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0
解决:osgearth的release中用了protobufd.lib库导致。“工程属性->链接器->输入->附加依赖项” 中改为protobuf.lib
6、运行osgearth_viewer.exe报 “无法定位序数4540于动态链接库ssleay32.dll”
解决:将ssleay32.dll、libeay32.dll、libeay32.lib、libpng16.dll拷贝到bin目录

三、验证

1、命令行验证

osgviewer cow.osg
osgearth_viewer simple.earth

2、Qt 控制台程序

//osg
int main()
{osgViewer::Viewer viewer;viewer.setSceneData(osgDB::readNodeFile("cow.osg"));return viewer.run();
}
//osgearth
int main()
{osgViewer::Viewer viewer;viewer.setSceneData(osgDB::readNodeFile("simple.earth"));return viewer.run();
}

运行“simple.earth”报错:
Error reading file simple.earth: read error (Could not find plugin to read objects from file “simple.earth”.)
好像就是缺少插件的意思,然后看了前面的.bin文件,然后里面有一个名为osgPlugins-3.4.0的文件夹,猜想会不会是因为缺少这个的原因,然后把这个文件夹直接复制到了我项目的构建目录build-test001-Desktop_Qt_5_7_1_MSVC2015_64bit-Debug(根据自己的设置而定)中。

三、使用

osg嵌入Qt的五种方式
osgEarth嵌入qt的实现方式
osgEarth嵌入Qt之osgQt::GraphicsWindowQt
osgEarth嵌入Qt之QOpenGLWidget、osgViewer
osg3.6之后版本嵌入qt不能用osgQt(好)
osgEarth三维可视化系列文章

问题记录:

//#include <osgEarth/GLUtils>与#include <QOpenGLWidget>冲突,报错如下
D:\Qt\Qt5.12.3\5.12.3\msvc2017\include\QtGui\qopenglext.h:476: error: C2226: 语法错误: 意外的“uintptr_t”类型
//qopenglext.h
#include <stddef.h>
typedef ptrdiff_t GLsizeiptr;
typedef ptrdiff_t GLintptr;临时解决方法:注释掉:#include <osgEarth/GLUtils>

1、osg

2、osgEarth

笔记1: 自制osgEarth球的earth文件
笔记2: 加入Qt

OSG、OSGEarth使用相关推荐

  1. osg(osgearth)倾斜模型单体化

    倾斜模型在智慧城市中的应用越来越多,在其中有个非常关键的就是单体化技术. 网页上webGis的cesium单体化技术已经有各种应用场景了.但是pc端,尤其是性能非常好的C++ 制作的比较少,特别是分层 ...

  2. OSG/osgEarth相关功能函数汇总

    1.字符串转double.float double osg::asciiToFloat(const char* str);//位于\src\osg\Math.h double osg::asciiTo ...

  3. OSG/OSGEarth一万一千字学习实践完整总结(强烈推荐!!!)

    目录 01 前言 02 编译和配置 编译OSG和OSGEarth 下载路径 配置OSG和OsgEarth的release版本程序

  4. Osg/OsgEarth—— 无法打开文件osgGA/MatrixManipulator错误

    在看视频学习时遇到无法打开文件osgGA/MatrixManipulator错误, 无法打开包括文件:"osgGA/MatrixManipulator":No such file ...

  5. QT+OSG/osgEarth编译之四十三:jasper+Qt编译(一套代码、一套框架,跨平台编译,版本:basisjasper-2.0.12)

    目录 1.jasper介绍 2.文件下载 3.文件分析 4.pro文件 5.编译实践 1.jasper介绍        jasp

  6. QT+OSG/osgEarth编译之三十八:Snappy+Qt编译(一套代码、一套框架,跨平台编译,版本:Snappy-1.1.9)

    目录 1.Snappy介绍 2.文件下载 3.文件分析 4.pro文件 5.编译实践 1.Snappy介绍        Snap

  7. QT+OSG/osgEarth编译之四:libpng+Qt编译(一套代码、一套框架,跨平台编译,版本:libpng-1.6.38)

    目录 1.libpng介绍 2.文件下载 3.文件分析 4.pro文件 5.编译实践 1.libpng介绍         PNG

  8. QT+OSG/osgEarth编译之八:webp+Qt编译(一套代码、一套框架,跨平台编译,版本:libwebp-1.2.2)

    目录 1.WebP介绍 2.文件下载 3.文件分析 4.pro文件 5.编译实践 1.WebP介绍

  9. QT+OSG/osgEarth编译之五:libjpeg+Qt编译(一套代码、一套框架,跨平台编译,版本:libjpeg-9e)

    目录 1.libjpeg介绍 2.文件下载 3.文件分析 4.pro文件 5.编译实践 1.libjpeg介绍        libjpeg</

  10. osgearth+vs2010安装

    OSGEARTH + VS2010 安装 *VS 平台不重要,本教程也适用于VS2008等.假设我的OSG目录为:D:/OSG *本教程参考网上osgearth+vs2008安装. 一.准备工作 下载 ...

最新文章

  1. OKR和KPI有什么区别?
  2. subprocess模块
  3. python复数_python复数比较
  4. eclipse中代码没错但项目名称有个小红X
  5. JZOJ 5574. 【NOI2018模拟3.10】占领
  6. 浅谈关于nil和 null区别及相关问题
  7. 常用jdk的命令行工具:_jhsdb:JDK 9的新工具
  8. python 线性回归 统计检验 p值_PAST:最简便易用的统计学分析软件教程(一)软件基本信息介绍...
  9. 处理 git 合并冲突
  10. 如何为Docker项目创建持续集成持续部署 (CI-CD)解决方案
  11. 【模糊滑模】基于模糊切换增益调节的滑模控制
  12. django 自定义标签
  13. 生态系统类型空间分布数据/土地利用数据/植被类型数据/NPP数据/土壤侵蚀数据/土壤质地分类/降雨量栅格数据
  14. adb无线连接Android手机
  15. meshlab模型简化
  16. linux的网易云音乐界面不显示,linux mint19.1解决网易云音乐安装后打不开的问题...
  17. ubuntu16.04中运行orb-slam2_with_semantic_labelling-master
  18. ACM—数论—费马大定理 (数学史上著名的定理)
  19. 京东管培生 群面记录
  20. 【37】警告gyroscope bias initial calibration -nan -nan -nan

热门文章

  1. 大数据存储问题的三大技术难题解析
  2. Windows7常见问题和知识汇总
  3. 从输入url到页面展示出来经历了哪些过程
  4. 左氨氯地平不是一种国产原研药吗为什么还要通过仿制药一致性评价
  5. 深度强化学习——连续动作控制DDPG、NAF
  6. Linux文件系统:minix文件系统二进制分析1(格式化)
  7. 上周技术关注:流氓软件及反流氓软件的技术分析
  8. 如此奇葩,非圆满毕业典礼!个个都是人才
  9. swig 使用案例
  10. 简单订单表模拟批量写入