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

Java-描述正确的面(缠绕),java,opengl,geometry,lwjgl,Java,Opengl,Geometry,Lwjgl,发动机:LWJGL 所以,我想知道,如何画一个三角形的背面?我知道这件事有点不对劲 glTexCoord(); 方法,但我无法理解我需要以何种方式进行此操作。三角形的面与纹理坐标无关。它仅由窗口空间中顶点的缠绕来定义 默认情况下,GL使用的规则是,如果在最终图片中以逆时针顺序看到三个顶点(按照绘制时指定的顺序),则将其视为正面。此面向规则可通过更改。此外,可以通过glEnable(GL\u CULL\u face)告诉GL不要绘制特定的面。要剔除的面由控制。通常,背面消隐用于闭合对象(不带透明

发动机:LWJGL

所以,我想知道,如何画一个三角形的背面?我知道这件事有点不对劲

glTexCoord();

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

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

默认情况下,GL使用的规则是,如果在最终图片中以逆时针顺序看到三个顶点(按照绘制时指定的顺序),则将其视为正面。此面向规则可通过更改。此外,可以通过
glEnable(GL\u CULL\u face)
告诉GL不要绘制特定的面。要剔除的面由控制。通常,背面消隐用于闭合对象(不带透明度),因为在这种情况下,不会看到背面三角形,也不需要进行处理

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


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

因此,为了获得更好的性能,保留默认值。默认情况下是否启用消隐面?另外,我不明白的事实是OGL如何确定它是否为CW/CCW。默认情况下禁用面剔除。对于缠绕:一种方法是计算窗口空间顶点的长度(投影到2D,因此忽略z分量)。该标志将显示缠绕顺序。这通常在三角形设置阶段,即光栅化完成之前进行计算。