Я просто хочу создать перспективу, где глаз камеры будет, скажем, (2, 2, -2) смотреть прямо на начало координат. Я пытаюсь использовать комбинацию gluLookAt()
и glFrustum()
, но по какой-то причине, хотя это рендеринг, мои объекты выглядят очень искаженными:
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glFrustum (-1.0, 1.0, -1.0, 1.0, 1.0, 500.0);
...
gluLookAt (-2.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0);
Что я делаю не так?
РЕДАКТИРОВАТЬ : Вот скриншот. Левая сторона определяет кривую профиля, которая будет развернута вокруг оси Y. Это должен быть цилиндр в перспективе, но он ... искривлен.
РЕДАКТИРОВАТЬ 2 : Кроме того, эти оси на виде в перспективе настроены следующим образом, что, я знаю, не правильно:
// draw the axis
glBegin(GL_LINES);
// x
glVertex3f(500.0, 0.0, 0.0);
glVertex3f(-500.0, 0.0, 0.0);
// y
glVertex3f(0.0, -500.0, 0.0);
glVertex3f(0.0, 500.0, 0.0);
// z
glVertex3f(0.0, 0.0, -500.0);
glVertex3f(0.0, 0.0, 500.0);
glEnd();
РЕДАКТИРОВАТЬ 3 : Кроме того, ни одна из вершин этой формы не имеет значения x, y или z, превышающие 1,0 ..