Java - 描述正确的面(绕组)

时间:2013-12-26 15:18:44

标签: java opengl geometry lwjgl

引擎:LWJGL

所以,我想知道,我如何绘制一个三角形的背面?

我知道有一些事情发生了
glTexCoord();

方法,但我无法理解我需要以哪种方式执行此操作。

1 个答案:

答案 0 :(得分:1)

三角形的面对没有与纹理坐标有关。它仅由窗口空间中顶点的缠绕定义。

默认情况下,GL使用以下规则:如果在最终图片中以逆时针顺序看到三个顶点(按照绘图时指定的顺序),则将其视为正面。可以通过glFrontFace()更改此面临的规则。此外,可以告诉GL不要通过glEnable(GL_CULL_FACE)绘制特定的面部。剔除哪些面孔由glCullFace()控制。通常,背面剔除用于封闭对象(不透明),因为在这种情况下,背面三角形从未被看到,也不需要处理。

因此,为了控制三角形的面,指定顶点的顺序很重要。此外,您使用的转换定义了您实际看到的那一侧。

绕组尤其应该在对象之间和对象之间一致。如果以相互相反的顺序指定共享边,则共享边的两个三角形(如三角形A,B,C和B,C,D)具有合适的绕组。也就是说,如果以A,B,C的顺序指定第一个三角形顶点,则必须以使用C,B的方式指定后三角形的顶点,如C,B,D或D,C,B ,或B,D,C。