0

假设代码是:

    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() 会删除三角形,但这是正式的方式吗?

4

3 回答 3

2

如果您将 glClear 放在绘图函数的开头(绘图函数通常在循环中),您可以简单地选择不重绘三角形,这样的绘图不会留下对您的三角形的引用。

此外, glTranslatef() 不会删除您的三角形, glTranslatef() 只是移动当前矩阵的函数(在您的情况下,带有三角形的矩阵正在移动到相机视图中)

清除()

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

于 2011-03-28T01:16:24.137 回答
1

如果您要问如何使三角形在随后的帧中消失,则没有必要。每一帧时间你都负责重绘一切。OpenGL 不会记住你的三角形。

于 2011-03-28T00:57:34.973 回答
1

放一个... ...将是最直接的方法ifglBeginglVertexglEnd

于 2011-03-28T01:18:07.320 回答