本文目录
1 简介
osgQOpenGL是OSG嵌入到QT的一种新的实现方法。OSG使用OpenGL进行三维模型的渲染,恰好Qt5也提供了对OpenGL的支持。因此,OSG提供了osgQOpenGL来实现对Qt的支持。
在以前的版本中,osg嵌入到Qt是使用osgQt插件中的GraphicsWindow或者GraphicsWidget,新版本提供osgQOpenGL插件来实现osg内嵌Qt。
2 环境准备
2.1 OSG
关于OSG的下载和编译,读者可查看笔者的上一篇博客。这里不再赘述。
2.2 osgQOpenGL
由于osgQOpenGL是OSG的一个插件,因此读者需要自行下载该插件的源码并编译。以下提供osgQOpenGL的下载链接,如果嫌弃下载速度慢,也可以使用笔者提供的源码包。
2.2.1 osgQOpenGL下载
下载地址1(Github):下载地址
下载地址2(优快云):下载地址
2.2.2 osgQOpenGL编译
源码包是osgQt,但是编译后只生成两个lib库。如下图:

具体的编译方法和笔者的上一篇博客中介绍的编译方法一样,这里不再赘述,但需要强调一点,就是
需要在osgQt的源码包中的Cmakelists.txt中加入如下几段代码
SET(DESIRED_QT_VERSION "5.14.2" CACHE STRING "")
SET(CMAKE_PREFIX_PATH "C:/Qt/Qt5.14.2/5.14.2/msvc2017_64" CACHE PATH "")
添加位置如下图:

然后修改一下此处的数据(如下图):

然后就是使用cmake进行生成,然后使用VS2017编译,在然后生成lib库。上一篇博客中讲的很详细,不会的读者朋友请移步:osg编译教程。
2.3 Qt
Qt的下载和安装都很简单,下载地址在笔者的上一篇博客中,有需要的朋友可以去看看。
3 osgQOpenGL的简单使用
3.1 osgQOpenGL源码
以下是osgQOpenGL/osgQOpenGLWidget的源码,不是很多,但可以看出一些东西。
#ifndef OSGQOPENGLWIDGET_H
#define OSGQOPENGLWIDGET_H
#ifdef __APPLE__
# define __glext_h_
# include <QtGui/qopengl.h>
# undef __glext_h_
# include <QtGui/qopenglext.h>
#endif
#include <osgQOpenGL/Export>
#include <OpenThreads/ReadWriteMutex>
#ifdef WIN32
//#define __gl_h_
#include <osg/GL>
#endif
#include <osg/ArgumentParser>
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
#include <QReadWriteLock>
class OSGRenderer;
namespace osgViewer
{
class Viewer;
}
class OSGQOPENGL_EXPORT osgQOpenGLWidget : public QOpenGLWidget,
protected QOpenGLFunctions
{
Q_OBJECT
protected:
OSGRenderer* m_renderer {

最低0.47元/天 解锁文章
3977





