Z-буферизация
- 1 year ago
- 0
- 0
Тройная буферизация в компьютерной графике — разновидность двойной буферизации ; метод вывода изображения, позволяющий избежать или уменьшить количество артефактов .
Тройная буферизация позволяет увеличить скорость вывода изображения по сравнению с двойной буферизацией . В реальных приложениях это часто связано с попыткой абстрагировать операции формирования графики от синхронизации с частотой обновления монитора . Как правило, кадры рисуются с частотой ниже или выше частоты обновления экрана (с переменной частотой кадров) без обычных эффектов, которые это могло вызвать (а именно: мерцание, сдвиги, разрывы). Так как программе не требуется опрашивать оборудование для получения событий обновления экрана, алгоритм может свободно выполняться максимально быстро. Это не единственный доступный метод буферизации, но преобладающий на архитектуре ПК , где скорость машины может сильно различаться.
Другой метод тройной буферизации включает в себя синхронизацию с частотой обновления экрана, используя третий буфер просто как способ предоставить свободное пространство для запросов на изменения в общем объёме выводимой графики. Здесь буфер используется в истинном смысле, когда он действует как хранилище. Такой метод предъявляет повышенные минимальные требования к аппаратному обеспечению , но обеспечивает согласованную (по сравнению с переменной) частоту кадров.
Тройная буферизация предполагает использование трёх буферов, но метод может быть расширен на любое нужное приложению количество буферов. Обычно использование четырёх и более буферов не даёт каких-либо преимуществ.
Если в системе есть два буфера, А и Б, она может отображать буфер Б, одновременно формируя новое изображение в буфере А. Когда изображение в буфере А готово, системе приходится ждать обратного хода луча монитора, чтобы сменить буфера. Этот период ожидания может составить несколько миллисекунд, в течение которых ни один из буферов не затрагивается. В момент завершения вертикальной развёртки можно либо обменять буфера А и Б, чтобы затем начать построение изображения в буфере Б (переключение страниц), или скопировать буфер А в буфер Б и рисовать в буфере А.
Если в системе есть три буфера: А, Б и В, ей не нужно ждать смены буферов. Она может отображать буфер Б, формируя изображение в буфере А. Когда изображение в буфере А готово, она немедленно начинает построение изображения в буфере В. При наступлении паузы в вертикальной развёртке отображается буфер А, а буфер Б освобождается для повторного использования.
Если система всегда заполняет буфера за меньшее время, чем требуется для отображения буфера на экране, единственным преимуществом тройной буферизации над двойной становится меньшая средняя задержка вывода.
|
В статье
не хватает
ссылок на источники
(см.
рекомендации по поиску
).
|