OpenGL как правильно очистить задний буфер

#opengl #rendering

Вопрос:

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

Затем отрисовайте один и тот же квадрат, чтобы он стал черным, и отрисовывайте только более тонкий квадрат в центре введите описание изображения здесь

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

введите описание изображения здесь

Поэтому в области, которая не была отображена в этом цикле, я получаю старое изображение на экране, насколько я понимаю, я получаю его из заднего буфера . Но в этом случае glclearcolor должен решить проблему , и все же я попытался

 glFinish()
glFlush()
glClearColor(0.0, 0.0, 0.0 , 1.0)
 

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

Спасибо за помощь !

Комментарии:

1. Что насчет glClear(GL_COLOR_BUFFER_BIT) (до того, как нарисовать сцену)?

2. Вся эта визуализация нескольких переходов в одну цель требует использования объектов буфера кадров.