Лучше ли glClear () до рисования в буфер или после? - PullRequest
0 голосов
/ 15 июня 2019

В настоящее время у меня есть код, который выполняет следующее:

  1. до следующего кадра
  2. glClear(GL_COLOR_BUFFER_BIT | GL_DPETH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
  3. выполняет все рисование для кадра
  4. очистить и отобразить рисунок на экране
  5. спать до следующего кадра (снова)

Мой вопрос: следует ли перемещать clear (2) после шага 4?

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

В лучшем случае: этот порядок в порядке, и я параноик, glClear() не задерживает другие команды рисования opengl каким-либо значимым образом.

Сценарий наихудшего случая: glClear() лучше всего вызывать после рендеринга кадра, где есть время простоя для его работы, так как другие команды opengl еще не поставлены в очередь.

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