为什么3D模型具有不同的uv坐标的重复顶点位置

时间:2017-10-21 14:35:49

标签: 3d blender directx-11 vertex-shader collada

我正在尝试从Blender导出Collada格式,并且使用更复杂的对象和纹理,我注意到在索引“p”部分,它将列出相同的顶点信息,但使用不同的法线和uv coords。 / p>

我认为两个主要问题非常重要。

1:为什么?它不应该只有1个顶点位置和1个UV坐标?

2(最重要的问题):如果此顶点信息无序地放入顶点着色器会发生什么?例如,索引1顶点和索引10顶点共享相同的位置,但具有不同的法线和UV坐标。如果指数10先行,然后指数1,该怎么办?反之亦然,这是否会改变Pixel Shader内部的任何内容?这对管道的其余部分有何影响?

谢谢!

1 个答案:

答案 0 :(得分:1)

顶点由定义它的所有信息的组合定义。所以你的顶点是五维的:(x,y,z,u,v)。对于任何两个顶点,如果u1!= u2或v1!= v2,它们不是相同的顶点。固定管道GPU不支持额外的间接级别,如果你想说“顶点是位置A加上纹理位置B加上正常的C加......”,那么添加该级别仍然不是标准的与可编程GPU间接,因为它通常相当于在内存带宽上花费更多而不是节省。你可以,但人们通常不这样做。

顶点着色器没有关于它处理的顶点在排序中落在何处的概念;只要几何管道保持跟踪,就不会出现任何问题。