OpenGL绕组不正确

qwe*_*qwe 1 c++ opengl

初始化OpenGL时,我设置了以下内容:

glEnable(GL_CULL_FACE);
glFrontFace(GL_CCW);
glCullFace(GL_FRONT);
Run Code Online (Sandbox Code Playgroud)

然后,我在屏幕上画一个三角形.这就是我所做的一切,真的.但是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
};
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

我期望的是GL_CCW绘制三角形而CL_CW没有.但结果恰恰相反.

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

BDL*_*BDL 5

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