1

我正在使用 OptiX 开发热工具。我从使用 syoyo 的tinygltf loader的“meshviewer”示例开始。基本上我想导入一个文件,获取基元的数量,然后将交叉点相加。

现在我导入了一个包含两个立方体的文件,每个立方体应该包含 12 个三角形,所以总共 24 个。当我启动我的程序时,加载器只能识别 12 个三角形,但它会渲染 2 个单独的立方体。两个多维数据集的原始 ID 似乎相同。

从搅拌机导出时有解决方法吗?如果我直接理解文档,则单独的立方体被视为同一网格的两个“相同”实例,因此共享原始 ID。我正在使用带有 gltf 导出器的 Blender v2.81。

我是否正确理解了问题?有没有简单的解决方法?如果不是,我将不得不修改 tinygltf 加载器。

提前感谢您的帮助!

4

1 回答 1

0

这两个立方体可能共享相同的网格。在下面的屏幕截图中,有两个 Blender “对象”,Left-CubeRight-Cube. 两个对象都使用相同的 Blender 网格,称为Shared-Cube-Mesh.

glTF 导出器识别此模式并将其镜像到 glTF 文件中。将有两个 glTF 节点,对应于使用网格的两个 Blender 对象。但是只有一个 glTF 网格,只有一个立方体。

您可以单击“用户数量”按钮,如下所示,带有一个指向它的白色箭头,以使第二个对象使用其自己的独特网格。但请注意,在这个简单的示例中,这会使导出到 glTF 的网格数据量翻倍。将在 Blender 和 glTF 二进制有效负载中制作网格的完整副本。

搅拌机截图

于 2020-01-27T18:16:27.630 回答