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()は、現在の行列を移動するための関数です(この場合、三角形の行列はカメラビューに移動されます)

glClear()

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

if周りを置くglBegin......最も簡単な方法ですglVertexglEnd

于 2011-03-28T01:18:07.320 に答える