У меня возникла проблема с настройкой проекции просмотра. Я рисую куб с вершинами (0, 0, 0) (0, 0, 1) (0, 1, 1) (0, 1, 0) (1, 0, 0) (1, 1, 0) (1, 1, 1) и (1, 0, 1). Вот как я инициализирую представление:
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();
}
По какой-то причине куб заполняет весь экран. Я пытался изменить значения методов усеченной пирамиды и взгляда, но либо куб вообще не виден, либо заполняет всю область просмотра. В glLookAt я предполагаю, что «глаз» расположен в точке (10, 10, 10) и смотрит в точку (0,5, 0,5, 0), которая находится на поверхности куба. Я думал, что это даст достаточное расстояние, чтобы весь куб был виден. Я думаю об этом неправильно? Я также попытался переместить куб в направлении z так, чтобы он лежал от z = 10 до z = 11, а также в плоскости отсечения, но это дает аналогичные результаты.