Лин не отображается с 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);
Другие вопросы по тегам