C

系统和应用需求

OpenGL 需求

Qt 3D Studio 需要 OpenGL 或 OpenGL ES。建议的最低版本分别为 3.3 核心配置文件3.0

当运行在纯 OpenGL ES 2.0 实现 上时,OpenGL ES 的部分功能可用。这意味着将失去阴影映射、基于图像的照明和许多其他高级功能,因此不推荐使用。另一方面,这使得在 Raspberry Pi(使用原始专有图形堆栈)或 Beaglebone Black 等板上以及只有 GPU 虚拟化支持 GLES 2.0 的基于虚拟机的虚拟化环境中运行 Qt 3D Studio 场景变得可行,在这些特殊情况下仍然很有价值。

非本地实现,如 ANGLE 或软件实现,如 Mesa 的 llvmpipe 可能可行,但未经测试,可能以意外的方式失败。

应用程序集成说明

C++

一个典型的使用 Qt 3D Studio OpenGL 运行时的 Qt C++ 应用程序应查询并尊重运行时的 理想表面格式。这样,将创建与运行时需求最匹配的 OpenGL 版本和配置文件的所有 OpenGL 上下文。

#include <Q3DSSurfaceViewer> // or <q3dsruntimeglobal.h> if only Q3DS::surfaceFormat() is interesting for main()

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

    QSurfaceFormat::setDefaultFormat(Q3DS::surfaceFormat());

    Q3DSSurfaceViewer w;
    ...
    return app.exec();
}

要使应用程序能够使用 Qt 3D Studio 头文件和库,请在应用程序的 .pro 文件中添加 studio3d 模块。

QT += studio3d

QML/Qt Quick

如果没有使用 C++ 类,可以在 .pro 中省略 studio3d 模块。要使用 QML 中的 Studio3D 元素,只需添加相应的导入语句即可。

import QtStudio3D.OpenGL \QtVer

但强烈建议将默认表面格式设置为上述内容所示。确保在构造 QGuiApplication 之后但第一个 QQuickWindowQQuickView 之前调用 QSurfaceFormat::setDefaultFormat(Q3DS::surfaceFormat())。如果不可能这样做,例如,因为 QML 内容托管在不知道 Qt Quick 场景 3D 需求的应用程序中,Studio3D 可能仍然可用,但这可能取决于 OpenGL 实现和它提供的上下文版本,因此更为脆弱。

在特定 Qt 许可证下提供。
了解更多信息。