最近工作上要用 OSG 来做三维场景,还需要通过 QT 进行开发,网上的教程都非常零散,有些还已经过时了,在这里记录一下安装过程。

所使用的环境:Windows 11 21H2

OSG

这里基本按照官网的教程 Compiling with Visual Studio 进行。

首先下载 OSG 的源码,我使用的是安装时的最新版本 3.6.5。

git clone --branch OpenSceneGraph-3.6.5 https://github.com/openscenegraph/OpenSceneGraph.git

为了后续操作方便,在 D 盘或其它盘的根目录创建一个名为 OpenSceneGraph-VERSION 的文件夹,VERSION 替换为所使用的版本号,我这里就命名为 OpenSceneGraph-3.6.5,然后把上面下载的源代码文件夹命名为 OpenSceneGraph 放在该目录下。

我们还需要下载第三方依赖库,在官方的 the Dependencies page 下载 Visual Studio 2017 的依赖包,并命名为 3rdParty 同样放在上一步的目录下。

最后下载 OSG 官方提供的模型文件 Data Resources,命名为 data 放在该目录下。

整个文件结构如下:

OpenSceneGraph-3.6.5
└───OpenSceneGraph
└───3rdParty
└───data

接下来需要使用 CMake 来生成 Visual Studio 的解决方案,如果没有安装 CMake,先下载安装 Download | CMake

打开之后,在 Where is the source code 的位置选择 OpenSceneGraph 也就是源代码文件夹,下面的 Where to build the binaries 我们新建一个 build 文件夹。

image-20220111154709417

之后点击 Configure,选择 Visual Studio 2017 以及 x64 平台,点击 Finish

image-20220111155005158

注意 ACTUAL_3RDPARTY_DIR 的值为我们创建的 3rdparty 目录,并勾选 BUILD_OSG_EXAMPLES 这一项,其它项可以根据自己的需求进行调整,最后点击 Generate 生成解决方案。

image-20220111155409081

生成完成后,使用 VS 2017 打开 build 目录下的 .sln

在 VS 的菜单栏选择 生成 - 批生成,勾选 ALL_BUILDDebugRelease 两项,注意在 解决方案配置 需要选择 x64,如果此处没有 x64,可在配置管理器中新建。

image-20220111160534218

点击生成,此处需要等一段时间,视电脑配置而定,我这里 i7-7700HQ 的笔记本大概半小时。

确定编译完成且没有报错之后,继续打开批生成,取消刚才勾选的两项,选择 INSTALLDebugRelease 两项,点击生成。

image-20220111160925251

最后一步配置环境变量,将 OSG 的安装目录添加进系统变量的 Path 中。

image-20220111161151308

以及最开始下载的官方模型,新建一个 OSG_FILE_PATH 变量,路径就是我们创建的 data

image-20220111161336404

到此 OSG 的安装完成,打开命令提示符,输入 osgversion 可显示 OSG 的版本号,输入 osgviewer cow.osg 会出现这头牛,则证明安装成功。

image-20220111161613748

osgQt

首先下载 osgQt 的源码。

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

我这里使用的 QT 版本为 5.12.6,需要事先将 QT 使用的 MSVC 加入环境变量。

image-20220111164503899

使用 CMake 编译 osgQt,步骤和刚才编译 OSG 基本一致,选择 osgQt 的源码目录,并创建一个 build 目录,点击 Configure,同样选择 Visual Studio 2017x64,如果刚才环境变量配置正确,这里所有的内容都会自动补充完成,如果有变量显示 not found,请回头检查环境变量再重新 Configure,没问题后点击 Generate

之后和编译 OSG 一样,使用 VS 2017 打开解决方案,分别生成 ALL_BUILDINSTALL,之后应该可以在安装路径找到 osgQt 的安装文件。

image-20220111165234419

为了之后使用方便,直接复制该目录下的所有文件,粘贴合并到 OSG 的安装目录下,这样 osgQt 也就安装完成了。

测试

安装完成之后写一个简单的 QT 程序来测试一下。

新建项目,为了调用 osgQt 库,需要在 pro 文件中加入这两行,注意替换为自己安装时的实际路径。

LIBS += -L'C:\Program Files\OpenSceneGraph\lib' -losg -losgDB -losgViewer -losgGA -losgUtil -lOpenThreads -losgQOpenGL
INCLUDEPATH += 'C:\Program Files\OpenSceneGraph\include'

调用 osgviewer 显示默认模型。

#include <QApplication>
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    osgViewer::Viewer viewer;
    viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
    return viewer.run();
}

如果可以正常显示牛的模型,则证明安装成功。

Last modification:January 11th, 2022 at 05:07 pm
If you think my article is useful to you, please feel free to appreciate