Opengl qt+;open Gl=绘制三角形的paintgl函数
我已经把我在上一篇文章中读到的关于一个众所周知的主题的内容进行了编码,但我仍然得到一个没有任何三角形的绿色窗口。 以下是我的绘画功能:Opengl qt+;open Gl=绘制三角形的paintgl函数,opengl,qt4,gl-triangle-strip,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 |
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和opengl4.0
我做错了什么?-\glfrustrum的近距离值和远距离值的范围很小,将其设为1100而不是5,7。可能不是实际的解决方案,但如果它不是您的“近距离”值很小,并且您将三角形平移了非常远的距离,单位为-15f,这意味着您的三角形不是绘制的或作为点。所以你只能看到窗户的颜色 嗯。我把glFrustum(-1,1,-1,1,1100);现在它工作得很好:)但是我不知道如何选择这些值(fot gltranslate和glfrustrus)来确保显示我的整个tesselation。有规则吗?我已经看过了,但还不是很清楚……它就像是我们眼睛的一种表现,我们能看到的物体离我们有多远,离我们有多远。我们看不到近值前面和远值后面的对象。所以,考虑到这些因素,选择你需要多少价值。