gpt4 book ai didi

c++ - 在 QML 场景中显示内存中的网格

转载 作者:行者123 更新时间:2023-11-28 01:24:04 25 4
gpt4 key购买 nike

在我的应用程序中,我从医学数据集生成 3D 网格。现在我想在 QML 的 Qt 应用程序中显示它。我已经找到了如何从文件中显示网格,但这需要我在每次修改网格时保存网格(例如,通过更改分割参数)

Mesh {
id: mesh
source: "mesh.obj"
}

我想在 3D 查看器中显示网格,而不必先将网格保存到文件中。

我如何在 QML 中执行此操作?

最佳答案

Qt3D 主要包装 OpenGL,这意味着您可以使用顶点/索引数组对象以已知方式继续将网格数据上传到显卡 - 但当然是通过 Qt3D 的类而不是原生的 OpenGL 类。

看看this code Qt3D 示例的例子,他们只在内存中创建一个三角形。您可以很容易地将所有 C++ 指令翻译成 QML 树。您需要做的是将您已有的顶点数据传输到您的属性中。如果您将渲染策略保留在 RenderSettingsAlways 上,那么 Qt3D 应该绘制您的网格。

如果您的网格数据存在于 C++ 中,另一种方法是编写一个自定义 C++ 类,将您的数据映射到示例中的格式,然后使其可用于 QML。

编辑

在 QML 中尝试将顶点数据直接传递给 Qt3D 时似乎存在问题,因为它无法转换为 QByteArray。但这里有一个 example如何使用自定义 C++ 类解决它。

关于c++ - 在 QML 场景中显示内存中的网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54751301/

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