Рисуем статически в Open GL - PullRequest
0 голосов
/ 23 июня 2011

Я занимаюсь разработкой подобного рисованию приложения с использованием C ++ и Open GL. Но каждый раз, когда я рисую такие объекты, как круг, линии и т. Д., Они ** не остаются ** на странице. Под этим я подразумеваю, что каждый новый объект, который я рисую, помещается на пустую страницу. Как заставить мои нарисованные объекты сохраняться?

Ответы [ 2 ]

3 голосов
/ 23 июня 2011

OpenGL не имеет постоянства геометрии.В основном это карандаши, кисти и краски, которыми вы рисуете на холсте, называемом «рамочный буфер».Поэтому после того, как вы что-то нарисовали и очистили кадровый буфер, он каким-то волшебным образом не появится снова.

Существует два решения:

  • вы ведете список всех операций рисованияи при каждом перерисовке вы перерисовываете все из этого списка.

  • После рисования чего-либо скопируйте изображение в кадровом буфере в текстуру и вместо glClear вы заполняете фон этой текстурой.

Обе техники можно комбинировать.

1 голос
/ 23 июня 2011

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

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