- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
发动机: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/
发动机:LWJGL 所以,我想知道,如何绘制三角形的背面?我知道发生了一些事情 glTexCoord(); 方法,但我不明白我需要用什么方式来做到这一点。 最佳答案 三角形的面与纹理坐标无关。它仅由窗
初始化 OpenGL 时,我设置如下: glEnable(GL_CULL_FACE); glFrontFace(GL_CCW); glCullFace(GL_FRONT); 然后,我在屏幕上画了一个三
我是一名优秀的程序员,十分优秀!