qt + open Gl =绘制三角形的paintgl函数

时间:2013-01-29 08:37:50

标签: opengl qt4 gl-triangle-strip

我已经编写了我之前在帖子中读到的关于一个众所周知的主题的内容,但我继续得到一个没有任何三角形的绿色窗口。 这是我的绘画功能:

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 个答案:

答案 0 :(得分:0)

你的glfrustrum的近和远值是一个相当小的范围,使其为1,100而不是5,7。可能不是实际的解决方案,但如果不是

它会有所帮助

答案 1 :(得分:0)

你的近和远值很小,你将三角形转换为-15f单位,这意味着你的三角形不是绘制或作为一个点。所以你只能看到窗口颜色。