- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
任何尝试过 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 应用程序等。
是的,当 QML 出现并不断成熟时,布里斯类的 Qt3D 贡献者认为最好在现有 Qt3D C++ API 之上放置一个 QML API 以便于在 QML 应用程序中使用。这就是我们使用 QtQuick3D 的方式。
当诺基亚决定关闭布里斯类办事处时,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/
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我试图用这种形式简单地获取数字 28 integer+space+integer+integer+space+integer我试过这个正则表达式 \\s\\d\\d\\s 但我得到了两个数字11 和
最近一直在学习D语言。我一直对运行时感到困惑。 从我能收集到的关于它的信息中,(这不是很多)我知道它是一种有助于 D 的一些特性的运行时。像垃圾收集一样,它与您自己的程序一起运行。但是既然 D 是编译
想问一下这两个正则表达式有区别吗? \d\d\d 与 \d{3} 我已经在我的本地机器上使用 Java 和 Windows 操作系统对此进行了测试,两者都工作正常并且结果相同。但是,当在 linux
我正在学习 Go,而且我坚持使用 Go 之旅(exercise-stringer.go:https://tour.golang.org/methods/7)。 这是一些代码: type IPAddr
我在Java正则表达式中发现了一段令我困惑的代码: Pattern.compile( "J.*\\d[0-35-9]-\\d\\d-\\d\\d" ); 要编译的字符串是: String string
我在 ruby 代码上偶然发现了这个。我知道\d{4})\/(\d\d)\/(\d\d)\/(.*)/是什么意思,但是\1-\2-\3-\4 是什么意思? 最佳答案 \1-\2-\3-\4 是 b
我一直在努力解决这个问题,这让我很恼火。我了解 D 运行时库。它是什么,它做什么。我也明白你可以在没有它的情况下编译 D 应用程序。就像 XoMB 所做的那样。好吧,XoMB 定义了自己的运行时,但是
我有两个列表列表,子列表代表路径。我想找到所有路径。 List> pathList1 List> pathList2 当然是天真的解决方案: List> result = new ArrayList>
我需要使用 Regex 格式化一个字符串,该字符串包含数字、字母 a-z 和 A-Z,同时还包含破折号和空格。 从用户输入我有02-219 8 53 24 输出应该是022 198 53 24 我正在
目标是达到与this C++ example相同的效果: 避免创建临时文件。我曾尝试将 C++ 示例翻译为 D,但没有成功。我也尝试过不同的方法。 import std.datetime : benc
tl;dr:你好吗perfect forwarding在 D? 该链接有一个很好的解释,但例如,假设我有这个方法: void foo(T)(in int a, out int b, ref int c
有什么方法可以在 D 中使用abstract auto 函数吗? 如果我声明一个类如下: class MyClass { abstract auto foo(); } 我收到以下错误: mai
有没有人为内存中重叠的数组切片实现交集?算法在没有重叠时返回 []。 当 pretty-print (使用重叠缩进)内存中重叠的数组切片时,我想要这个。 最佳答案 如果您确定它们是数组,那么只需取 p
我已经开始学习 D,但我在使用 Andrei Alexandrescu 所著的 The D Programming Language 一书中提供的示例时遇到了一些麻烦。由于 int 和 ulong 类
如何创建一个不可变的类? 我的目标是创建一个实例始终不可变的类。现在我只是用不可变的方法和构造函数创建了一个“可变”类。我将其称为 mData,m 表示可变。然后我创建一个别名 alias immut
不久前我买了《The D Programming Language》。好书,很有教育意义。但是,我在尝试编译书中列出的语言功能时遇到了麻烦:扩展函数。 在这本书中,Andrei 写了任何可以像这样调用
我在 D http://www.digitalmars.com/d/2.0/lazy-evaluation.html 中找到了函数参数的惰性求值示例 我想知道如何在 D 中实现可能的无限数据结构,就像
这个问题在这里已经有了答案: 12 年前关闭。 Possible Duplicate: Could anyone explain these undefined behaviors (i = i++
当前是否可以跨模块扫描/查询/迭代具有某些属性的所有函数(或类)? 例如: source/packageA/something.d: @sillyWalk(10) void doSomething()
我是一名优秀的程序员,十分优秀!