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