程序笔记   发布时间:2022-07-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了OSGQt编译安装大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

OSGQt编译安装


效果演示

OSGQt编译安装

 

1、准备工作

  • 最新版的osg中不附带osgQt源码,所以需要单独下载编译

  • 在编译osgQt前需要先编译osg源码,osg编译安装看这里

  • 编译osgQt的环境与之前编译osg源码一样

 

2、osgQt下载

  • github

  • 可使用git下载:

    git clone git@github.com:openscenegraph/osgQt.git
    

      

 

3、配置环境变量

  • osg:编译好后按OSG编译安装-MSVC中方式配置环境变量

  • @H_861_82@msvc2017_64:由于这里使用msvc64编译,所以需要添加相应的环境变量

    • 打开环境变量窗口

    • 加入如下路径(需要修改为自己的Qt安装路径)

      D:Qt5.14.2@H_626_122@msvc2017_64bin
      D:Qt5.14.2@H_219_2@msvc2017_64lib

       

      OSGQt编译安装

  • 环境变量配置后重启电脑使环境变量生效

 

4、CMake编译

  • 具体步骤和编译osg差不多

  • 将CMakelists.txt拖入CMake中,设置好编译后的路径build

OSGQt编译安装

 

  • 点击Configure,这里的选择必须与osg编译一样(如果没配置环境变量,则这一步会报错,显示找不到Qt5Config.cmake等文件)

OSGQt编译安装

 

  • 修改CMAKE_INSTall_PREFIX

OSGQt编译安装

 

  • 点击Configure -> Generate -> Open Project

 

5、Visual studio编译

  • 后续步骤就和编译osg一样,编译好osgQt后,有如下4个文件夹,将文件夹中内容复制到osg安装路径下对应文件夹下即可(编译后会有两个lib)

OSGQt编译安装

OSGQt编译安装

 

6、Qt Demo

  • pro文件添加

INCLUDEPATH += D:/OSG/install/include
DEPENDPATH += D:/OSG/install/include
​
win32:CONFIG(release, debug|releasE): LIBS += -LD:/OSG/install/lib/ -losgQOpenGL
else:win32:CONFIG(debug, debug|releasE): LIBS += -LD:/OSG/install/lib/ -losgQOpenGLd
​
win32:CONFIG(release, debug|releasE): LIBS += -LD:/OSG/install/lib/ -losgViewer
else:win32:CONFIG(debug, debug|releasE): LIBS += -LD:/OSG/install/lib/ -losgViewerd
​
win32:CONFIG(release, debug|releasE): LIBS += -LD:/OSG/install/lib/ -losgGA
else:win32:CONFIG(debug, debug|releasE): LIBS += -LD:/OSG/install/lib/ -losgGAd
​
​
win32:CONFIG(release, debug|releasE): LIBS += -LD:/OSG/install/lib/ -losgDB
else:win32:CONFIG(debug, debug|releasE): LIBS += -LD:/OSG/install/lib/ -losgDBd
​
win32:CONFIG(release, debug|releasE): LIBS += -LD:/OSG/install/lib/ -losg
else:win32:CONFIG(debug, debug|releasE): LIBS += -LD:/OSG/install/lib/ -losgd

 

 

  • ui文件添加一个button,一个widget

OSGQt编译安装

  • widget.h

#ifndef WIDGET_H
#define WIDGET_H
​
#include <QWidget>
#include <osgQOpenGL/osgQOpenGLWidget>
​
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
​
class Widget : public QWidget
{
    Q_OBjeCT
​
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();protected slots:
    void initOSG();private slots:
    void on_pushButton_clicked();private:
    Ui::Widget *ui;
​
    osgQOpenGLWidget* osgWidget;
    QString m_filename;
};
#endif // WIDGET_H

 

 

  • widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <osgViewer/Viewer>
#include <osg/Node>
#include <osgDB/ReadFile>
#include <osgGA/TrackballManipulator>
​
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
​
    osgWidget = new osgQOpenGLWidget(ui->widget);          // 指定osg窗口显示位置
    osgWidget->setGeometry(ui->widget->geometry());        // 指定osg窗口显示大小
    m_filename = "D:/OSG/OpenSceneGraph-Data/avatar.osg";  // 显示模型路径
​
    connect(osgWidget, SIGNAL(initialized()), this, SLOT(initOSG()));
}
​
Widget::~Widget()
{
    delete ui;
    if(osgWidget != NULL)
    {
        delete osgWidget;
    }
}
​
void Widget::initOSG()
{
    osgViewer::Viewer* pViewer = osgWidget->getOsgViewer();
    pViewer->setCameraManipulator(new osgGA::TrackballManipulator);
    osg::Node* node = osgDB::readNodeFile(m_filename.toStdString());
    pViewer->setSceneData(nodE);
}
​
void Widget::on_pushButton_clicked()
{
    m_filename = "D:/OSG/OpenSceneGraph-Data/bignathan.osg";
    initOSG();
}

 

7、编译好的库

链接:https://pan.baidu.com/s/1UfNbJ0fUAzKfe3XrWNVTDA提取码:66tf

 

大佬总结

以上是大佬教程为你收集整理的OSGQt编译安装全部内容,希望文章能够帮你解决OSGQt编译安装所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。