Удаление полигонов с экрана (OpenGL)? - PullRequest
0 голосов
/ 28 марта 2011

Предполагая, что код:

    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 ]

2 голосов
/ 28 марта 2011

Если вы поместите glClear в начале функции рисования (функция рисования обычно находится в цикле), вы можете просто не перерисовывать треугольник, так как рисование не будет ссылаться на ваш треугольник.

Кроме того, glTranslatef () не удалит ваш треугольник, glTranslatef () - это просто функция для перемещения текущей матрицы (в вашем случае матрица с вашим треугольником перемещается в вид с камеры)

glClear ()

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

1 голос
/ 28 марта 2011

Поместить if вокруг glBegin ... glVertex ... glEnd было бы самым простым способом.

1 голос
/ 28 марта 2011

Если вы спрашиваете, как заставить треугольник исчезнуть в последующих кадрах, в этом нет необходимости.Каждый раз за кадр вы отвечаете за перерисовку всего.OpenGL не запомнит ваш треугольник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...