Я пытаюсь посмотреть на конус в 3D, для которого я использовал gluLookAt.Я рисую конус в середине экрана в позиции (250, 250, 0), а затем смотрю на него камерой над источником, смотрящей в середину.На выходе получается круг, в отличие от конуса, который я ожидал увидеть.Кажется, что камера вместо этого также находится в точке (250,250,0), но она указана в gluLook, при этом она должна быть выше начала координат.Что я здесь пропускаю?
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(250, 250, 0);
glutSolidCone(30, 10, 20, 20);
glTranslatef(-250, -250, 0);
gluLookAt(0, 0, 100, 250, 250, 0, 0, 0, 1);
glFlush();
glutSwapBuffers();
}
int main(int argc, char **argv)
{
float x, y;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutCreateWindow("Cone");
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMotionFunc(drag);
glutMouseFunc(click);
glutSpecialFunc(catchKey);
glEnable(GL_DEPTH_TEST);
glutMainLoop(); //calls do_one_simulation_step, keyboard, display, drag, reshape
return 0;
}