C++ 四面体侧不出现,不缠绕顺序问题

C++ 四面体侧不出现,不缠绕顺序问题,c++,opengl,opengl-compat,C++,Opengl,Opengl Compat,在让绿色的一面出现时遇到问题,最初认为这是一个挑选或缠绕顺序的问题,但可以用一个新的视角来了解我做错了什么 当前的问题是绿边,但始终是首先绘制的三角形 使用的图书馆: Glew和Glfw3 #包括 #定义GLEW_静态 #包括“GL/glew.h” #包括“GLFW/glfw3.h” const char*WINDOW_TITLE=“实践”; 常数闪烁窗口的宽度=600; 常数闪烁窗口的高度=600; 静态无效错误\u回调(int错误,常量字符*说明) { fprintf(标准,“错误:%s\n

在让绿色的一面出现时遇到问题,最初认为这是一个挑选或缠绕顺序的问题,但可以用一个新的视角来了解我做错了什么

当前的问题是绿边,但始终是首先绘制的三角形

使用的图书馆: Glew和Glfw3

#包括
#定义GLEW_静态
#包括“GL/glew.h”
#包括“GLFW/glfw3.h”
const char*WINDOW_TITLE=“实践”;
常数闪烁窗口的宽度=600;
常数闪烁窗口的高度=600;
静态无效错误\u回调(int错误,常量字符*说明)
{
fprintf(标准,“错误:%s\n”,说明);
}
int main()
{
GLFWwindow*窗口;
如果(!glfwInit()){

std::cout
GL\u CULL\u FACE
GL\u DEPTH\u TEST
是枚举常量,不指定位集的位。
GL\u CULL\u FACE
的值为0x0B44,
GL\u DEPTH\u TEST
的值为0x0B71。因此,
glEnable(GL_CULL_FACE | GL_DEPTH_TEST
没有任何意义,将导致GL_INVALID_枚举错误。的参数必须是单个枚举常量。您必须分别启用每个功能:

glEnable(GL_CULL_FACE | GL_DEPTH_TEST);

glEnable(GL_CULL_面);
glEnable(GLU深度试验);

正面的缠绕顺序为顺时针。默认缠绕顺序为逆时针。因此,需要使用以下命令更改正面多边形的方向规格:

glFrontFace(GL_-CW);

你为什么不接受这个答案?你能至少留下一条评论来解释你为什么这么做吗?
        glColor3f(0.0f, 1.0f, 0.0f);
        glVertex3f(r, r, -r);
        glVertex3f(r, -r, r);
        glVertex3f(-r, -r, -r);
        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(r, r, -r);
        glVertex3f(-r, -r, -r);
        glVertex3f(-r, r, r);
        glColor3f(0.0f, 0.0f, 1.0f);
        glVertex3f(-r, r, r);
        glVertex3f(-r, -r, -r);
        glVertex3f(r, -r, r);
        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(r, r, -r);
        glVertex3f(-r, r, r);
        glVertex3f(r, -r, r);

        glEnd();

        /* Swap front and back buffers */
        glfwSwapBuffers(window);

        /* Poll for and process events */
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}