我正在尝试发送一对从输入三角形派生的三角形带进行渲染
条带由以下顶点索引定义:
带 1:0 14 16 15 1 23 30 41 8
带 2:31 7 17 18 16 0
14______15______23______41 7 ______18______0 / \ / \ / \ / \ / \ / \ / / \ / \ / \ / \ / \ / \ / 0-----16------1 ------30------8 31------17------16
这些条带源自以下索引三角形(这些三角形又来自任意网格)。我使用正号表示三角形与输入三角形相比在带中具有相同的绕组。
剥离 1 输入三角形
0 14 16 +
14 15 16 -
1 16 15 +
1 15 23 -
1 23 30 +
41 30 23 -
8 30 41 +
剥离 2 个输入三角形
7 17 31 +
7 18 17 -
16 17 18 +
0 16 18 -
如果这些三角形被渲染为三角形,我会得到预期的结果 - 一对三角形条带,三角形的可见面都在同一侧(在这种情况下,可见面指向观察者)。
如果我将条带单独渲染为三角形条带,我会得到预期的结果 - 与通过绘制三角形获得的结果相同。
但是,如果我按照苹果指南连接这些条带(通过复制第一个条带的最后一个顶点和第二个条带的第一个顶点),则条带被正确绘制,条带 2 翻转(即可见侧反转)。
14______15______23______41 7 ______18______0 / \ / \ / \ / \ / \ / \ / / \ / \ / \ / \ / \ / \ / 0-----16------1 ------30------8----8----31----31------17------16
传递给渲染器的条带序列:0 14 16 15 1 23 30 41 8 8 31 31 7 17 18 16 0
最后,颠倒第二个片段并将新序列片段传递给渲染器的简单实验没有任何区别——第二个片段仍然被翻转。
我错过了什么?