Как делает glClear (), улучшают производительность?

Технические Вопросы и ответы Apple при обращении к мерцанию (QA1650) включают следующий параграф. (Шахта Emphasis.)

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

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

Как может, вызов к glClear () улучшает производительность?

10
задан genpfault 23 June 2014 в 17:27
поделиться

1 ответ

Скорее всего, это связано с плиточным рендерингом, который делит весь видовой экран на плитки (небольшие окна, обычно размером 32x32), и эти плитки хранятся в более быстрой памяти. Операции копирования между этой меньшей памятью и реальным фреймбуфером могут занимать некоторое время (операции с памятью намного медленнее, чем арифметические операции). Выдавая команду glClear, вы сообщаете аппаратному обеспечению, что вам не нужно предыдущее содержимое буфера, поэтому ему не нужно копировать цвет/глубину/что угодно из кадрового буфера в меньшую память тайлов.

16
ответ дан 3 December 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: