如上图所示,一个顶点需要映射到两个不同的uv坐标。我知道我可以通过将它绑定到GL_ELEMENT_ARRAY_BUFFER来使用另一个缓冲区来索引verities,但是这会将uv绑定在同一个索引中。我找不到任何文件或文章显示如何索引紫外线。我认为有一种方法可以做到这一点,因为它似乎是人们会觉得有用的东西。我该怎么做?
答案 0 :(得分:2)
简单地说,无法索引顶点的各个属性。元素/索引缓冲区的使用适用于共享属性的置换,例如位置,紫外线由于其中一个属性无法共享,因此其他属性也无法共享。解决该问题的一个简单方法是复制构造新的permuation所需的信息(使用不同的uv坐标)。
有效地需要支持的是多元素/索引缓冲区,每个属性一个:普通属性的元素/索引缓冲区,uv属性的元素/索引缓冲区,位置属性的元素/索引缓冲区。但是在当前几代OpenGL(3或4)或DirectX(11)(可能在硬件级别本身),这只是不存在。