qt + open Gl= paintgl функция для рисования треугольника

Я написал то, что прочитал в предыдущем посте об известной теме, но продолжаю получать зеленое окно без треугольника внутри. Вот моя функция рисования:

void mGLWidget::paintGL()
{

glClearColor( Qt::green );

QSize viewport_size = size();
glViewport(0, 0, viewport_size.width(), viewport_size.height());
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1, 1, -1, 1, 5, 7); // near and far match your triangle Z distance
glMatrixMode(GL_MODELVIEW);


glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
glColor4f( 1.0, 1.0, 1.0, 1.0 );

glTranslatef(-1.5f,0.0f,-15.0f);

glBegin(GL_TRIANGLES);         // Drawing Using Triangles
glVertex3f( 0.0f, 1.0f, 0.0f);      // Top
glVertex3f(-1.0f,-1.0f, 0.0f);      // Bottom Left
glVertex3f( 1.0f,-1.0f, 0.0f);      // Bottom Right
glEnd();
// Finished Drawing The Triangle
// swapBuffers();
}

У меня только зеленое окно без треугольника. Мой QT является qt4.8 и opengl 4.0.

Что я делаю неправильно?-\

2 ответа

Ваше ближнее и дальнее значение для вашего glfrustrum довольно небольшое, поэтому установите его равным 1, 100 вместо 5, 7. Возможно, это не реальное решение, но оно поможет, если его нет.

Ваше ближнее и дальнее значение мало, и вы переводите треугольник очень далеко на -15f, что означает, что ваш треугольник не нарисован и не действует как точка. Таким образом, вы видите только цвет окна.

Другие вопросы по тегам