我正在尝试从Blender导出Collada格式,并且使用更复杂的对象和纹理,我在索引“p”部分注意到它会列出相同的顶点信息,但使用不同的法线和uv坐标。为什么3D模型具有不同uv坐标的重复顶点位置
我觉得两个主要问题非常重要。
1:为什么?不应该只有1个顶点位置和1个UV坐标的位置?
2(所有最重要的问题):如果这个顶点信息不按顺序放入顶点着色器会发生什么?例如,索引1顶点和索引10顶点共享相同的位置,但具有不同的法线和UV坐标。如果指数10先走,然后指数1?反之亦然,这是否会改变Pixel Shader内部的任何内容?这是如何影响管道的其余部分的?
谢谢!
很好的答案,但问题1呢? – Mike5050
GPU与“交错顶点数据”一起工作,这意味着所有的顶点数据都被打包到由格式和步幅定义的相同块中。如果您想要使用不同的法线,UV,骨骼指数或任何其他每个顶点数据都具有相同的位置(也称为“分割”),则必须重复该位置。 GPU使用“结构数组”,而不是“数组结构”。即使在使用多个顶点缓冲区流时,您也只有每个顶点的所有缓冲区都有一个索引 –
正确。我对问题1的回答是:没有顶点被重复。顶点(x,y,z,u1,v1)和顶点(x,y,z,u2,v2)是不同的顶点,因为它们具有不同的(u,v)s。 – Tommy