Как удалить / стереть определенный многоугольник в openGL? - PullRequest
1 голос
/ 01 апреля 2012

Предположим, что я нарисовал треугольник, куб, квадрат, используя функции draw_triangle, draw_cube и draw_square соответственно. Как я могу удалить куб, используя функцию нажатия клавиш? .Как удалить конкретный полигон .?

Ответы [ 4 ]

5 голосов
/ 01 апреля 2012

Как удалить определенный многоугольник .?

Не отображать его в следующем кадре.

Как только вы рисуете многоугольник, многоугольника нет, простокуча пикселей в буфере цвета + значения в буфере глубины.Таким образом, вы не можете «удалить» его и не можете восстановить предыдущее состояние буфера цвета / глубины.Такой четкий экран, перерисовать сцену без полигона, который вам не нужен.

1 голос
/ 29 мая 2015

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

0 голосов
/ 02 апреля 2012

может быть что-то в этом роде:

Render()
{
 clear_screen();

 setup_camera_and_other_scene_states();

 if (cube) drawCube();

 if (sphere) drawSphere();

 swap_buffers():
}

keyPress()
{
 if (presses_some_key) cube = !cube;
}
0 голосов
/ 01 апреля 2012

Я думаю, что лучшее решение - это иметь логическую переменную, которая указывает, должен ли ваш объект отображаться или нет. Таким образом, только при нажатии клавиши вы очищаете экран и перерисовываете всю сцену.

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