从屏幕上删除多边形(OpenGL)?

时间:2011-03-28 00:30:54

标签: opengl geometry vertex

假设代码是:

    glLoadIdentity();
    glTranslatef(-1.5f,0.0f,-6.0f);
glBegin(GL_TRIANGLES);
        glVertex3f( 0.0f, 1.0f, 0.0f);
        glVertex3f(-1.0f,-1.0f, 0.0f);
        glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();

    glLoadIdentity();
    //Drawing another object...

如何更改代码以删除对象?我知道注释掉glTranslatef()会删除三角形,但这是正式的方法吗?

3 个答案:

答案 0 :(得分:2)

如果你把glClear放在绘制函数的开头(绘图函数通常是一个循环),你可以简单地选择不重绘三角形,这样的绘图将不会引用你的三角形。

另外,glTranslatef()不会删除你的三角形,glTranslatef()只是一个移动当前矩阵的函数(在你的情况下,你的三角形的矩阵被移动到摄像机视图中)

glClear()

http://www.khronos.org/opengles/documentation/opengles1_0/html/glClear.html

答案 1 :(得分:1)

如果你问如何让三角形在后续帧中消失,则没有必要。每一帧时间你都有责任重新绘制所有内容。 OpenGL不会记住你的三角形。

答案 2 :(得分:1)

if ... glBegin ... glVertex周围放glEnd将是最直接的方法。