조회 투영을 설정하는 데 문제가 있습니다. 나는 꼭지점 (0, 0, 0) (0, 0, 1) (0, 1, 1) (0, 1, 0) (1, 0, 0) (1, 1, 0) (1, 1, 1) 및 (1, 0, 1)로 구성된다. 이것은 뷰를 초기화하는 방법입니다.OpenGL 전망 투상을 설정하십시오.
void initGL(int x,int y, int w, int h)
{
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowPosition(x, y);
glutInitWindowSize(w, h);
glutCreateWindow("CSE328 Project 1");
glutDisplayFunc(draw);
glFrontFace(GL_FRONT_AND_BACK);
glMatrixMode(GL_PROJECTION);
glFrustum(-10.0, 10.0, -10.0, 10.0, 2.0, 40.0);
glMatrixMode(GL_MODELVIEW);
gluLookAt(10, 10, 10, 0.5, 0.5, 0, 0, 1.0, 0);
glutMainLoop();
}
어떤 이유로 든 큐브가 전체 화면을 채 웁니다. frustum 및 lookAt 메서드의 값을 변경하려고 시도했으며 큐브가 전혀 표시되지 않거나 전체 뷰포트를 채 웁니다. glLookAt에서 나는 '눈'이 (10, 10, 10)에 위치하고 큐브의 표면에있는 점 (0.5, 0.5, 0)을보고 있다고 가정합니다. 큐브 전체가 보일 수 있도록 충분한 거리가 있다고 생각했습니다. 내가 잘못 생각한거야? 나는 또한 z = 10에서 z = 11에 놓 이도록 큐브를 z 방향으로 움직이려고 시도 했으므로 클리핑 면도 마찬가지지만 비슷한 결과를 제공합니다.
OpenGL에서는 초기화하지 않습니다. 너는 국가를 세웠다. initGL에서 여러분이하는 대부분은 실제로 드로잉 코드에 속해 있습니다. 행렬 설정 (ID BTW 재설정이 누락되었습니다). – datenwolf
감사합니다. 내 문제는 신분을 재설정하지 않아서 발생했습니다. – Kris