Qt 3D
Qt 3D 提供了为近实时仿真系统提供功能,支持在 Qt C++ 和 Qt Quick 应用中执行 2D 和 3D 渲染。
Qt 3D 中的功能分为以下 C++ 模块
Qt 3D 模块包含支持近实时仿真系统所需的功能。 | |
Qt 3D 输入模块为使用 Qt3D 的应用程序提供处理用户输入的类。 | |
Qt 3D 逻辑模块使帧与 Qt 3D 后端同步。 | |
Qt 3D 渲染模块包含使用 Qt 3D 支持 2D 和 3D 渲染的功能。 |
以下 C++ 模块仍在开发中,但作为技术预览可用
Qt 3D 动画模块提供一系列预构建元素,帮助你开始使用 Qt 3D。 | |
Qt 3D 扩展模块提供一组预构建元素,帮助你开始使用 Qt 3D。 | |
Qt 3D Scene2D 模块提供了一种将 Quick2 qml 内容渲染到 Qt 3D 纹理的方法。 |
对于 Qt Quick 应用,Qt 3D 提供以下 QML 模块
提供核心 Qt 3D QML 类型。 | |
提供 Qt 3D 用户输入的 QML 类型。 | |
提供用于与 3D 后端同步帧的 QML 类型。 | |
提供 Qt 3D 渲染的 QML 类型。 |
以下 QML 模块仍在开发中,但作为技术预览可用
提供 Qt 3D 扩展模块的 QML 类型。 | |
提供 Qt 3D 动画模块的 QML 类型。 | |
提供 Qt 3D scene2d 模块的 QML 类型。 | |
提供 Qt 3D Scene3D 模块的 QML 类型。 |
使用模块
对于执行 2D 或 3D 渲染、碰撞检测和处理用户输入的 C++ 应用程序,请包含以下模块类的指令
#include <Qt3DCore> #include <Qt3DRender> #include <Qt3DInput> #include <Qt3DLogic> #include <Qt3DExtras> #include <Qt3DAnimation>
要将 QML 类型导入您的应用程序,请在您的 .qml 文件中使用以下导入语句
import Qt3D.Core import Qt3D.Render import Qt3D.Input import Qt3D.Logic import Qt3D.Extras import Qt3D.Animation import QtQuick.Scene2D import QtQuick.Scene3D
使用 Qt 模块的 C++ API 需要链接到模块库,无论是直接链接还是通过其他依赖项。包括 CMake 和 qmake 在内,多个构建工具都对此提供了专用支持。
使用 CMake 构建
使用 find_package()
命令在 Qt6
包中定位所需的模块组件。
find_package(Qt6 REQUIRED COMPONENTS 3DCore 3DRender 3DInput 3DLogic 3DExtras 3DAnimation ) target_link_libraries(mytarget PRIVATE Qt6::3DCore Qt6::3DRender Qt6::3DLogic Qt6::3DExtras Qt6::3DAnimation )
使用 qmake 构建
要配置模块以使用 qmake 构建,请将模块添加到项目的 .pro 文件中的 QT
变量中
QT += 3dcore 3drender 3dinput 3dlogic 3dextras 3danimation
Qt Quick 应用程序需要额外的依赖项
QT += 3dcore 3drender 3dinput 3dlogic 3dextras 3danimation qml quick 3dquick
概览
Qt 3D 的高层次设计及其动机在Qt 3D 概览中描述。Qt 3D Render 提供了对数据驱动配置的支持,如Qt 3D Render Framegraph中所述。
参考
Qt 3D 平台支持
Qt 3D 支持以下平台
- Microsoft Windows (win32) - 支持
- Linux X11 - 支持
- macOS - 支持,尽管可能存在一些视网膜缩放问题
- Android - 支持
- 嵌入式 Linux - 支持
- iOS - 自 Qt 5.7 开始支持
- WinRT - 尚不支持
模块演变
Qt3D 的变更列出了为 Qt 6 系列Qt所进行的,对模块 API 和功能的重要更改。
许可证和归属
Qt 3D 可在Qt 公司的商业许可证下获得。此外,它还可在GNU Lesser General Public License,版本 3或GNU General Public License,版本 2下获得。有关更多详细信息,请参阅Qt 许可。
此外,Qt 3D 包含第三方模块,这些模块下的许可如下
MIT License | |
MIT License 或公共领域 | |
MIT License |
© 2024 The Qt Company Ltd. 本文档中的贡献归各自所有者所有。本文档符合由自由软件基金会发布并在GNU Free Documentation License 版本 1.3下的条款。Qt 和相应徽标是芬兰的 The Qt Company Ltd. 及/或其他国家和地区注册的商标。所有其他商标均为其各自所有者的财产。