说明:之前学的osg代码都是在win32控制台上运行,使用viewer.run()直接显示模型;也在MFC上成功尝试了osgEarth。最近由于项目需要,需要把osgearth的三维地球重新显示到Qt环境中。但是MFC跟QT在显示的模式上感觉还是有很多不同,特别是在QT上显示的时候大多会使用osgQt这个库,但是从github上下载了之后始终无法编译成功,基本上看了网上所有关于osgQt的博客和使用方法,基本都没有走通,所以自己就想了一个死办法,自建了一个类,在不报错的情况下,把osgQt的源码给复制了一遍,终于能够在Qt上显示出cow.osg或者.earth文件了。
前提:已经成功编译osg库(没有osgQt)并能够在win32控制台上运行OSG,并能够显示模型(比如“cow.osg”模型)
上传的优快云下载链接:包括GraphicsWindowQt,QGraphicsViewAdapter 和 QWidgetImage三个类,利用相同方法自建。https://download.youkuaiyun.com/download/yu1069153913/12675994
环境
vs2010 + Qt4.8.6 + OSG3.1.4
新建项目
项目类型:Qt4 Application
项目设置:把OpenGL library打钩,所以这时候打钩的至少有:Core library,GUI library,OpenGL library
生成项目(这里是我生成的类名):Classname填OSGWindow,用于显示osg的主窗口。自动生成的配套的.ui,.h和.cpp文件为osgwindow.ui,osgwindow.h,osgwindow.cpp
环境配置
(1) VC++目录
可执行文件目录(根据自己的情况调整):
- qt的bin目录:C:\Qt\4.8.6\bin
- osg的bin目录:D:\Project\OSG_project\runtime\bin
包含目录(根据自己的情况调整):
-
qt的include目录:C:\Qt\4.8.6\include
-
osg的include目录:D:\Project\OSG_project\runtime\include
库目录(根据自己的情况调整):
-
qt的lib目录:C:\Qt\4.8.6\lib
- osg的include目录:D:\Project\OSG_project\runtime\lib
(2) 链接器
链接器-->输入-->附加依赖项:(Debug版本)下面有些没有osgE