OpenGL绕组不正确

时间:2015-07-08 11:59:59

标签: c++ opengl

初始化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
};

您可以在以下图片中看到结果:

enter image description here

我期望GL_CCW绘制三角形并且CL_CW没有。但结果恰恰相反。

我的观点和观点矩阵是正确的。什么可能导致这个问题?

1 个答案:

答案 0 :(得分:5)

glCullFace指定哪一方被淘汰,而不是哪一方被抽出。因此,当您按照CCW顺序给出三角形并按照您的方式启用所有内容时,前面(CCW面)将被剔除,并且不会绘制任何内容。