주요 기능 :멀리 객체
int _tmain(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitWindowSize (500, 500);
glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glutInitWindowPosition (700, 100);
glutCreateWindow("Result");
glutDisplayFunc(display2);
glutReshapeFunc(reshape2);
glutMouseFunc(main_mouse);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}
Display2 기능 :
void display2()
{
glClearColor(1.0,1.0,1.0,1.0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//Green square
glColor3f(0.0,1.0,0.0);
glBegin(GL_POLYGON);
glVertex3f(0.5,0.5,-1.0);
glVertex3f(0.5,1.5,-1.0);
glVertex3f(1.5,1.5,-1.0);
glVertex3f(1.5,0.5,-1.0);
glEnd();
//Red square
glColor3f(1.0,0.0,0.0);
glBegin(GL_POLYGON);
glVertex3f(0.0,0.0,-2.0);
glVertex3f(0.0,1.0,-2.0);
glVertex3f(1.0,1.0,-2.0);
glVertex3f(1.0,0.0,-2.0);
glEnd();
glutSwapBuffers();
}
reshape2 기능
void reshape2(int width, int height)
{
glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glOrtho(-3.0,3.0,-3.0,3.0,0.01,3.0);
}
I OpenGL과 깊이 버퍼가 문제가 있다면 . 나는 2 개의 정사각형을 그린 것을 시도한다. 빨간색은 녹색 뒤에 위치합니다. 붉은 색 사각형은 z 값이 -2 녹색 사각형은 z 값이 -1입니다. 그러나 붉은 색 사각형은 녹색 사각형 앞에 표시됩니다. 깊이 테스트를 활성화했지만 여전히 작동하지 않습니다. 내 프로그램에 어떤 문제가 있습니까?
글쓰기 글쓰기를 잘 사용하지는 못했지만 ... GL 상태를 설정하기 전에 창을 만들어야합니다. 창 생성은 일반적으로 컨텍스트가 생성되거나 활성 상태가되는 지점입니다 ... 따라서이 작업을 수행 할 렌더 컨텍스트가 있기도 전에 "GL_DEPTH_TEST"를 활성화했습니다. –