Qt 3D

Qt 3D 提供在 Qt C++ 和 Qt Quick 应用程序中,支持 2D 和 3D 渲染的近实时模拟系统的功能。

Qt 3D 功能被划分成下列 C++ 模块:

Qt 3D Core C++ 类 Qt 3D 模块包含支持近实时仿真系统的功能。
Qt 3D Input C++ 类 Qt 3D Input 模块提供用于在使用 Qt3D 的应用程序中处理用户输入的类。
Qt 3D Logic C++ 类 Qt 3D Logic 模块使帧能够与 Qt 3D 后端同步。
Qt 3D Render C++ 类 Qt 3D Render 模块包含使用 Qt 3D 支持 2D 和 3D 渲染的功能。

下列 C++ 模块仍在开发,但可用作技术预览:

Qt 3D Animation C++ 类 Qt 3D Animation 模块提供一套预构建元素,以帮助您入门 Qt 3D。
Qt 3D Extras C++ 类 Qt 3D Extras 模块提供一套预构建元素,以帮助您入门 Qt 3D。
Qt 3D Scene2D C++ 类 Qt 3D Scene2D 模块提供把 Quick2 QML 内容渲染成 Qt 3D 纹理的办法。

对于 Qt Quick 应用程序,Qt 3D 提供下列 QML 模块:

Qt 3D Core QML 类型 提供核心 Qt 3D QML 类型。
Qt 3D Input QML 类型 为 Qt 3D 用户输入提供 QML 类型。
Qt 3D Logic QML 类型 提供同步帧与 3D 后端的 QML 类型。
Qt 3D Render QML 类型 为渲染提供 Qt 3D QML 类型。

下列 QML 模块仍在开发,但可用作技术预览:

Qt 3D Extras QML 类型 为 Extras 模块提供 Qt 3D QML 类型。
Qt 3D Qt3DAnimation QML 类型 为动画模块提供 Qt 3D QML 类型。
Qt 3D Scene2D QML 类型 为 Scene2D 模块提供 Qt 3D QML 类型。
Qt 3D Scene3D QML 类型 为 Scene3D 模块提供 Qt 3D QML 类型。

快速入门

对于履行 2D 或 3D 渲染,碰撞检测及处理用户输入的 C++ 应用程序而言,把下列行添加到其 qmake .pro 文件:

QT += 3dcore 3drender 3dinput 3dlogic 3dextras 3danimation
					

要包括模块类定义,使用以下指令:

#include <Qt3DCore>
#include <Qt3DRender>
#include <Qt3DInput>
#include <Qt3DLogic>
#include <Qt3DExtras>
#include <Qt3DAnimation>
					

Qt Quick 应用程序还需额外依赖:

QT += 3dcore 3drender 3dinput 3dlogic 3dextras qml quick 3dquick 3danimation
					

概述

Qt 3D 高级设计、动机的描述在 Qt 3D 概述 。Qt 3D 渲染方面提供对数据驱动配置的支持,作为描述在 Qt 3D 渲染 FrameGraph .

参考

Qt 3D 平台支持

Qt 3D 支持下列平台:

  • 微软 Windows (win32) - 支持
  • Linux X11 - 支持
  • macOS - 支持 (尽管可能有一些视网膜比例缩放问题)
  • Android - 支持
  • 嵌入式 Linux - 支持
  • iOS - 从 Qt5.7 起支持
  • WinRT - 尚不支持

模块演变

Qt3D 的变化 列出了 Qt 的 Qt 6 系列在模块 API 和功能上所做出的重要改变。

许可和归属

Qt 3D 在商业许可下是可用的来自 Qt 公司 。此外,它是可用的根据 GNU LGPL (次一般公共许可) 第 3 版 ,或 GNU GPL (一般公共许可) 第 2 版 。见 Qt 许可 进一步了解细节。

此外,Qt 3D 包含的第 3 方模块遵循下列准许许可:

Dear ImGui - ProggyClean.ttf MIT 许可
Dear ImGui - stb MIT 许可或公共领域
Dear ImGui,第 v1.66b 版 MIT 许可