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 之后但第一个 QQuickWindow 或 QQuickView 之前调用 QSurfaceFormat::setDefaultFormat(Q3DS::surfaceFormat())
。如果不可能这样做,例如,因为 QML 内容托管在不知道 Qt Quick 场景 3D 需求的应用程序中,Studio3D 可能仍然可用,但这可能取决于 OpenGL 实现和它提供的上下文版本,因此更为脆弱。
在特定 Qt 许可证下提供。
了解更多信息。