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

标签 java opengl geometry lwjgl

发动机:LWJGL

所以,我想知道,如何绘制三角形的背面?我知道发生了一些事情

glTexCoord();

方法,但我不明白我需要用什么方式来做到这一点。

最佳答案

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

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

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

物体之间和物体之间的缠绕尤其应该一致。如果以相互相反的顺序指定共享边,则共享一条边的两个三角形(如三角形 A、B、C 和 B、C、D)具有一致的绕线。也就是说,如果您按照 A,B,C 的顺序指定第一个三角形顶点,则必须以使用 C,B 的方式指定后一个三角形的顶点,例如 C,B,D 或 D,C,B 或 B,D,C。

关于Java - 描述正确的面(缠绕),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20787075/

相关文章:

c++ - 将 glRotate 和 glTranslate 与碰撞检测结合使用

c++ - 我需要为 OpenGL 3.3 Core 使用着色器吗?

iphone - 如何在没有 .nib 文件的情况下创建 opengl iPhone 应用程序?

c# - 如何获得圆并集圆周的一系列点

node.js - 在 nodejs 中使用谷歌地图几何库

java - 在 Spring MVC 中调度任务

java - JSch:在一个命令中设置的 var 对下一个命令不可见(同一 session )

java - 在 Java 中混合使用 String 和 int

java - 使用 if 与单选按钮和文本一起归档?

java - 计算两个任意形状之间的最小距离