使用 Qt 3D 创建自定义几何图形时使用两个或多个索引缓冲区?

问题描述

我有两个不同的缓冲区 (QBuffer),一个包含顶点坐标,第二个包含顶点法线。在某些情况下,它们的组织方式相同,因此我可以使用一个索引缓冲区,但是如果数据的组织方式不同,是否可以使用 2 个不同的索引缓冲区?一个用于顶点坐标的索引缓冲区和第二个用于法线的索引缓冲区。甚至可能是 UV 坐标的第三个缓冲区。

原因:平面或三角形具有相同数量的顶点和法线,因此一个索引缓冲区应该可以完成这项工作,但具有 8 个顶点的基本立方体有 24 个法线。每个顶点对于它所属的每个面都有 3 个不同的法线,因此在这种情况下,我需要第二个法线索引缓冲区。

我想做类似的事情

custom_geo.addAttribute(vtx_pos_attribute)          // vertex coordinates
custom_geo.addAttribute(vtx_pos_index_attribute)    // index buffer for vertex coordinates
custom_geo.addAttribute(vtx_normal_attribute)       // normals
custom_geo.addAttribute(vtx_normal_index_attribute) // index buffer for normals

但我认为我的第二个索引属性只是覆盖了前一个。任何人都知道如何解决这个问题?可能这个没办法解决,只支持一个索引缓冲区?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)