osgQOpenGL的简单使用——在一个窗口中显示三维模型

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 {
   
   
评论 28
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

geocat

球球大佬们赏赐点吃喝!

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

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

打赏作者

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

抵扣说明:

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

余额充值