作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
初始化 OpenGL 时,我设置如下:
glEnable(GL_CULL_FACE);
glFrontFace(GL_CCW);
glCullFace(GL_FRONT);
然后,我在屏幕上画了一个三角形。这就是我所做的,真的。但是 OpenGL 总是使用与我使用 glFrontFace
指定的相反的缠绕类型。
三角形的顶点定义如下:
static GLfloat TRIANGLE[] = {
0.0f, 0.5f, 0.0f, // Point 1 on image
-0.5f, -0.5f, 0.0f, // Point 2
0.5f, -0.5f, 0.0f, // Point 3
};
您可以在下图中看到结果:
我期望的是 GL_CCW 绘制三角形而 CL_CW 不绘制。但情况恰恰相反。
我的透视图和 View 矩阵是正确的。是什么导致了这个问题?
最佳答案
glCullFace
指定哪一侧被剔除,而不是绘制哪一侧。因此,当您的三角形以 CCW 顺序给出并且您按照您的方式启用所有内容时,正面(CCW 面)将被剔除并且不会绘制任何内容。
关于c++ - 不正确的 OpenGL 缠绕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31292026/
发动机:LWJGL 所以,我想知道,如何绘制三角形的背面?我知道发生了一些事情 glTexCoord(); 方法,但我不明白我需要用什么方式来做到这一点。 最佳答案 三角形的面与纹理坐标无关。它仅由窗
初始化 OpenGL 时,我设置如下: glEnable(GL_CULL_FACE); glFrontFace(GL_CCW); glCullFace(GL_FRONT); 然后,我在屏幕上画了一个三
我是一名优秀的程序员,十分优秀!