OpenSceneGraph环境搭建

OpenSceneGraph 开发环境搭建

环境说明

  • windows 10
  • visual studio 2019
  • qt 5.15

预编译库与资源

这是最省事的方式, 本人懒得走cmake编译那套, 而且有现成的为何不用, 省点时间研究OSG不香吗?

  1. 下载预编译库,点此进入, 可看到如下页面,点击Stable Releases
    osg download page

    Stable Releases页面如下:

    osg_stable_releases

    进入到下载页面, 选择所需的VS版本,当然QT版本也要对应(通常版本向下兼容)。点击下载即可, 笔者选择了3.6.5。

    osg_windows_binaries_page

  2. 下载资源(OpenSceneGraph-Data), 点此进入, 可看到如下页面,点击Data Resources
    osg download page
    Data Resource页面如下, 点击所需的版本, 笔者选择了3.4:

    osg_data_resource_page

  3. 将预编译库与OpenSceneGraph-Data放置在一起即可

其他资源

其他资源可从osgchina获取, 比如笔者需要gltf加载插件,即是从该网站获取。

开发环境配置

  1. 在项目中包含依赖头文件目录(OpenSceneGraph\include)
  2. 配置必要依赖库(OpenThreads.libosg.libosgViewer.libosgDB.libosgGA.libosgWidget.libosgQOpenGL.libosgUtil.lib)等

代码示例

初始化osgQOpenGLWidget

MainWindow::MainWindow(QWidget* parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    osg_widget_ptr_ = new osgQOpenGLWidget(this);
    ui->horizontalLayout->insertWidget(0, osg_widget_ptr_,3);
    connect(osg_widget_ptr_, SIGNAL(initialized()), this, SLOT(initOsgWindow()));
}

初始化OsgWindow

void MainWindow::initOsgWindow()
{
    osgviewer_ = osg_widget_ptr_->getOsgViewer();

    osgviewer_->getCamera()->setClearMask(GL_DEPTH_BUFFER_BIT);
    osgviewer_->setCameraManipulator(new osgGA::TrackballManipulator);

    osg::ref_ptr<osg::Group> group = new osg::Group;

    //创建一个节点用于读取osg模型
    osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("cessnafire.osg");

    //添加到场景
    group->addChild(node.get());

    osgviewer_->setSceneData(group);
}

注意

如果new osgQOpenGLWidget(this)出现异常大概率是因为Debug的版本依赖了Release的OSG

posted @ 2024-02-23 10:59  汗牛充栋  阅读(224)  评论(0编辑  收藏  举报