gpt4 book ai didi

c++ - Qt QML 和 3d : are these two frameworks the same?

转载 作者:太空狗 更新时间:2023-10-29 20:25:37 25 4
gpt4 key购买 nike

任何尝试过 Qt QML 和 3D OpenGL 的人,我都对我读过的 2 个框架感兴趣,但我不清楚它们是否是同一个框架。 Krzysztof Krzewniak 在 Qt Developer Days 2013 视频演示中概述了两者中最有趣的一个:

http://www.youtube.com/watch?v=29wCpA0DBZI

虽然非常有趣,但遗憾的是我无法在网上其他任何地方找到这方面的一些源代码,甚至找不到所讨论框架的名称。

有QtQuick3d:

http://doc.qt.digia.com/qt-quick3d-snapshot/

但是,我无法判断这实际上是在描述 Dev Days 中的相同框架,还是它们是独立的(显然有些相似)框架?与视频相比,我对 API 的初步观察表明它们是不同的,这对于 Qt 社区中有 2 个重要项目试图做同样的事情来说似乎是多余的。

任何对 QML 这个领域有一定了解的人都可以在这里提供一些指导吗?

最佳答案

是的,让我们从背后的一些历史开始......

Qt 最初是一个 2D 框架,用于为简单的桌面应用程序呈现计算机图形 UI。

Qt3D 的开发早于 qml 作为 QtGui 模块甚至 QtOpenGL 提供的 2D 世界的扩展而成熟。

这是一个用于在屏幕上呈现 3D 内容的 3D Qt api。它有不同的方面来处理 3D 对象、构建它们、将它们放在屏幕上、计算交集等等。

我们的想法是将易于创建应用程序的概念带入 Qt,而不是总是通过 QtOpenGL 或较低级别的 API 来创建游戏、模拟器、cad 应用程序等。

enter image description here

是的,当 QML 出现并不断成熟时,布里斯类的 Qt3D 贡献者认为最好在现有 Qt3D C++ API 之上放置一个 QML API 以便于在 QML 应用程序中使用。这就是我们使用 QtQuick3D 的方式。

enter image description here

当诺基亚决定关闭布里斯类办事处时,Qt3D 模块几乎变得无人维护和放弃,只是偶尔从社区获得一些错误修复。

KDAB 正在进行一些重新架构和重新设计模块的工作,但还不成熟,可以在单独的分支中找到。

您所指的视频不是在处理未维护的 Qt3D 模块。相反,它尝试基于 Qt 中引入的新场景图来构建 3D。因为,没有 Qt3D 模块可以很好地与 Qt 5 中的新 SG 一起工作,人们变得务实并继续前进。这就是您在视频中看到的。

现在,正如您所看到的,这并不是完全重复,但是......在未来,新的 Qt3D 架构可能会在新的场景图上表现得更好。事实上,KDAB在bringing the OpenGL support into QtGui上付出了很多努力。直到现实世界。

这是 Qt3D 模块的基础, future (希望)基于 Qt 编写的 3D 应用程序可能会使用该模块,但与此同时......该视频展示了如何基于什么构建硬件加速 3D UI我们有今天。

关于c++ - Qt QML 和 3d : are these two frameworks the same?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23310155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com