【发布时间】:2014-07-06 14:26:12
【问题描述】:
起初,这似乎很明显......在找到 4 个索引的地方每个面制作 2 个三角形,对吗?
含义,如下:
v 1.000000 1.000000 0.000000
v -1.000000 1.000000 -0.000000
v 1.000000 -1.000000 0.000000
v -1.000000 -1.000000 -0.000000
f -4 -3 -2 -1
... 反过来,需要转换成类似的东西:
v 1.000000 1.000000 0.000000
v -1.000000 1.000000 -0.000000
v 1.000000 -1.000000 0.000000
v -1.000000 -1.000000 -0.000000
f -4 -3 -2
f -2 -3 -1
这个特定的例子当然可以正确渲染。
但是,并非所有情况都像将面分成两个面那样简单(其中第一个面包含原始面的前三个顶点,第二个面包含最后三个顶点,如上例所示)。以下面的立方体为例:
v 0.000000 1.000000 1.000000
v 0.000000 0.000000 1.000000
v 1.000000 0.000000 1.000000
v 1.000000 1.000000 1.000000
v 0.000000 1.000000 0.000000
v 0.000000 0.000000 0.000000
v 1.000000 0.000000 0.000000
v 1.000000 1.000000 0.000000
f 1 2 3 4
f 8 7 6 5
f 4 3 7 8
f 5 1 4 8
f 5 6 2 1
f 2 6 7 3
这些面不能在前面的例子中以同样的方式分割...所以,我需要一些方法来了解如何将一个四边形面分割成两个三角形面,同时使用 正确 索引第二张脸……
如何实现? 请注意,我没有使用固定功能管道,因此,使用 GL_QUADS 不是一个选项。我的渲染引擎几乎只使用 GL_TRIANGLES。
【问题讨论】:
-
我理解这里的困惑,我花了最后两天试图弄清楚这一点。这些不是 QUAD 而是三角形条带,文档在这方面很差。
标签: java opengl graphics lwjgl wavefront