Что дает тройная буферизация

Что дает тройная буферизация

Вернемся к нашему примеру с частотой развертки 75 Гц и 100 кадрам в секунду.
При включении вертикальной синхронизации артефакты изображения пропадают.
Когда скорость рендеринга в особо сложных сценах снижается примерно до 60 fps и включена VSync, реальная же скорость расчета кадров падает почти вдвое.

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

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

Работает тройная буферизация следующим образом (при скорости рендеринга 50 кадров в секунду и частоте обновления монитора 75 Гц).
Первый кадр находится в первичном буфере, две трети второго кадра обрабатываются во вторичном буфере.

После обновления экрана первым кадром во вторичный буфер поступает последняя треть второго кадра, а треть третьего кадра начинает «рендериться» в третьем буфере.
После второго обновления экрана первым кадром второй кадр копируется в первичный буфер, а первая треть третьего кадра перемещается во вторичный буфер.

Оставшиеся две трети кадра номер три обрабатываются в третьем буфере, происходит первое обновление экрана вторым кадром, а кадр три полностью переносится во вторичный буфер.
Затем этот процесс повторяется с начала.

Как нетрудно подсчитать, в данном случае два кадра выводятся на экран за три цикла обновления, что составляет две трети от частоты развертки, то есть, 50 кадров в секунду, а это и есть полная потенциальная скорость рендеринга для рассматриваемого примера.
Благодаря схеме тройной буферизации минимизируется время простоя видеокарты, и, как видим, это дает очень хорошие результаты.

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

После прочтения этого материала у некоторых может возникнуть вопрос: так стоит задействовать вертикальную синхронизацию в настройках видеокарты или лучше все-таки ее отключить.
Однозначного ответа на этот вопрос нет.
Очевидно, что если вы просто хотите посмотреть, на что способна ваша видеокарта и «прогнать» какие-то синтетические или игровые тесты, то VSync лучше отключить.

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

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

Читайте также:  Почему компьютер громко шумит

С этим можно бороться только в том случае, если конкретное приложение поддерживается тройную буферизацию, в противном случае придется либо отключить VSync, либо смириться с временно скромной производительностью как с неизбежным фактом.

Посмотрим на примере «Центра управления» для видеокарт ATI (Catalyst Control Center), как включить или отключить вертикальную синхронизацию и тройную буферизацию.
Напомним, что Catalyst Control Center работает только при наличии установленной в системе среды .NET Framework 1.1, которую можно бесплатно скачать с сайта Misrosoft.

Этой утилитой пользоваться необязательно — все видеокарты ATI могут работать и с традиционной «Панелью управления» (Control Panel).

Чтобы получить доступ к настройкам VSync, необходимо в «дереве» слева выбрать пункт 3D и подпункт «All Settings» — раздел «Wait For Vertical Refresh».
По умолчанию установлены следующие настройки: вертикальная синхронизация отключена, но ее может задействовать запущенное приложение.

Это самая разумная настройка, и в подавляющем большинстве случаев ее изменять не стоит.
Если перевести рычажок в крайнее левое положение, то VSync будет принудительно отключена, в крайнее правое — принудительно включена.
Крайнее левое положение обеспечит максимально возможную производительность, а крайнее правое — наивысшее качество.

Здесь же можно включить вертикальную синхронизацию, но если приложение ее не требует, то она использоваться не будет.

Включить тройную буферизацию можно, зайдя в пункт «3D» и подпункт «API Specific».
Здесь сразу становится очевидным, почему эту возможность поддерживают далеко не все игры: тройная буферизация возможна лишь для приложений, работающих с программным интерфейсом (API) OpenGL.
Соответствующая строчка предусмотрена именно в настройках для этого API — второй пункт снизу.
По умолчанию тройная буферизация отключена.

Наконец, еще раз подчеркнем, что все вышеизложенное касается и ЭЛТ-, и ЖК-мониторов.
Несмотря на принципиальные отличия в принципах вывода изображения, для видеокарты (то есть, ее драйвера, операционной системы и конкретного приложения) это однотипные устройства, на которые отправляются сгенерированные кадры с определенной частотой.

Впрочем, владельцам жидкокристаллических дисплеев повезло больше: для этих мониторов типичная частота развертки — всего 60 Гц, а при наличии мощной видеокарты скорость рендеринга будет падать ниже 60 fps в редких случаях.

Надеемся, что эта небольшая статья помогла вам получить ответы на вопросы, которые с завидной регулярностью появляются в форумах по видеокартам.
Как видите, все довольно просто, но и неоднозначно …

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

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

Читайте также:  Как в ворде сделать текст без фона

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

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

Буфер (информатика) — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия

Буфер (вычислительная техника) — В информатике буфер (англ. buffer) это область памяти, используемая для временного хранения данных при вводе или выводе. Обмен данными (ввод и вывод) может происходить как с внешними устройствами, так и с процессами в пределах компьютера. Буферы… … Википедия

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

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

Одним из решений подобной проблемы, является двойная и тройная буферизация. Что это такое и зачем нужно, а так же как связано с вертикальной синхронизацией V-Sync, рассмотрим далее.

Тройная и двойная буферизация

Двойная буферизация

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

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

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

Тройная буферизация

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

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

Зачем это нужно? Дело в том, что в момент копирования данных видеокарта простаивает. Соответственно, дополнительный вторичный буфер решает эту проблему, так как в момент копирования данных, может формироваться следующее изображение. Это позволяет повысить fps.

Читайте также:  Каких списков нет в текстовом редакторе ответ

Однако, обе этих технологии обычно связывают с V-Sync и не просто так. Далее рассмотрим почему.

Двойная и тройная буферизация с вертикальной синхронизацией

Вертикальная синхронизация V-Sync применяется совместно с двойной или тройной буферизацией и позволяет решать проблему разрывов изображений. Отличием от обычного применения является лишь то, что копирование данных синхронизировано с частотой монитора. Простыми словами, в моменты, когда монитор считывает и отображает данные, смены картинки не происходит.

Примечание: Читателям стоит знать, что V-Sync повышает Input Lag.

В чем плюсы и минусы двойной буферизации с V-Sync?

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

Минусы. Суть в том, что, кроме проблемы простоя видеокарты при копировании данных, добавляется задержка ожидания отрисовки монитором. Это означает, что может очень сильно снижаться fps, если видеокарта генерирует меньшее число кадров, чем частота монитора. Например, 40-45 fps могут снизиться до 30 реальных fps, так как часть кадров будет отображаться за 1 такт монитора, а часть кадров за 2 такта монитора. Если же fps меньше 30, то снижение может быть вплоть до 15 кадров.

Второй существенный минус, что если реальный fps видеокарты в игре скачет, то это может быть ощутимым и дополнительно вызывать излишнюю усталость глаз. Например, если в одних сценах 40-50 fps, а в других 20-30 fps, то это означает, что fps будет чередоваться в стиле "30 — 15 — 30 — 15 — 15 — 30 — 30".

В чем плюсы и минусы тройной буферизации с V-Sync?

Плюсы. Те же, что и у двойной, но с некоторым отличием. Дело в том, что тройная буферизация позволяет избавиться от проблемы простоя, так как в моменты ожидания монитора или копирования данных, видеокарта формирует следующее изображение, что особенно полезно, если видеокарта формирует изображения то быстро, то медленно (однако, возможен минус в виде периодических пропусков изображений из-за V-Sync).

Минусы. Первый минус в том, что тройная буферизация требует больше вычислительных ресурсов. Второй минус в том, что если видеокарта всегда генерирует картинки быстро с учетом всех задержек, то толк от тройной буферизации теряется. Третий. Если компьютер "слабый", то включение этого метода может снизить реальный fps. Происходит это из-за первого минуса, так как требуется больше вычислительных ресурсов. В этом случае, лучше отключить не только тройную буферизацию, но и V-Sync.

Примечание: Третий минус редко встречается, так как нынешние "слабые" компьютеры достаточно мощные для этого метода.

Теперь, вы знаете что такое тройная буферизация, зачем она нужна и некоторые ее особенности.

Ссылка на основную публикацию
Хрипит динамик на телефоне при прослушивании
Одной из самых распространенных поломок мобильных аппаратов является выход из строя динамика. Любой пользователь мобильных телефонов знает, что сейчас производители...
Установить программу для сканирования документов бесплатно
Загрузите бесплатно пробную полнофункциональную версию программы для сканирования Scanitto Pro. Данная версия работает без каких-либо ограничений в течение 30 дней....
Установить протокол mtp media transfer protocol
Описание Компания Microsoft содержит под своим крылом множество драйверов, среди этой коллекции находится и Media Transfer Protocol, тот самый драйвер,...
Хэнкок из какой вселенной комиксов
Хэнкок Общая информацияЖанр Научная фантастика Драма Комедия Страна производстваСШАКиностудия Columbia Pictures РежиссёрПитер БергАвтор сценария Винс Джиллиган Винсент Нго Когда вышел2008...
Adblock detector