Лин не отображается с glFrustum()?
Я пытался нарисовать линию на окне, но оно не отображается с glFrustum()
, Я использовал тот же код с glOrtho()
он отображает строку. Есть ли что-то еще, что мне нужно настроить, чтобы моя строка отображалась в окне настроек?
void init() {
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum( -2.0,2.0,-2.0,2.0, 1.0, 20.0 );
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void display() {
glBegin(GL_LINES);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex3f(0.0f, 0.0f, 2.0f);
glVertex3f(1.0f, 1.0f, 5.0f);
glEnd();
}
1 ответ
В OpenGL камера смотрит вдоль отрицательной оси Z. Таким образом, ваша линия находится за камерой, и поэтому она обрезается.
Вместо этого нарисуйте его спереди:
glVertex3f(0.0f, 0.0f, -2.0f);
glVertex3f(1.0f, 1.0f, -5.0f);