Чи потрібна потрійна буферизація в іграх. Що таке? Режим анізотропної фільтрації

; метод виведення зображення, що дозволяє уникнути чи зменшити кількість артефактів.

Потрійна буферизація дозволяє збільшити швидкість виведення зображення порівняно з подвійною буферизацією. У реальних програмах це часто пов'язано зі спробою абстрагувати операції формування графіки від синхронізації з частотою оновлення монітора. Як правило, кадри малюються з частотою нижче або вище за частоту оновлення екрана (зі змінною частотою кадрів) без звичайних ефектів, які це могло викликати (а саме: мерехтіння, зрушення, розриви). Оскільки програмі не потрібно опитувати обладнання для отримання подій поновлення екрана, алгоритм може вільно виконуватися максимально швидко. Це не єдиний доступний метод потрійної буферизації, але переважаючий на архітектурі ПК, де швидкість машини може відрізнятися.

Інший метод потрійний буферизації включає синхронізацію з частотою оновлення екрана, використовуючи третій буфер просто як спосіб надати вільний простір для запитів на зміни в загальному обсязі графіки, що виводиться. Тут буфер використовують у справжньому сенсі, що він діє як сховище. Такий метод пред'являє підвищені мінімальні вимоги до апаратного забезпечення, але забезпечує узгоджену (порівняно зі змінною) частоту кадрів.

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

Недоліки подвійної буферизації

Якщо в системі є два буфери, А і Б, вона може відображати буфер Б, одночасно формуючи нове зображення в буфері А. Коли зображення в буфері А готове, системі доведеться чекати зворотного ходу променя монітора, щоб змінити буфери. Цей період очікування може становити кілька мілісекунд, протягом яких жоден буфер не зачіпається. У момент завершення вертикальної розгортки можна або обміняти буфери А і Б, щоб потім почати побудову зображення в буфері Б (перемикання сторінок), або скопіювати буфер А буфер Б і малювати в буфері А.

Переваги потрійної буферизації

Якщо в системі є три буфери: А, Б і В, їй не потрібно чекати зміни буферів. Вона може відображати буфер Б, формуючи зображення в буфері А. Коли зображення в буфері А готове, вона негайно починає побудову зображення в буфері В. При настанні паузи у вертикальній розгортці відображається буфер А, а буфер Б звільняється для повторного використання.

Обмеження потрійної буферизації

Якщо система завжди заповнює буфери за менший час, ніж потрібно для відображення буфера на екрані, комп'ютер завжди чекатиме сигналу монітора незалежно від кількості буферів. У цьому випадку потрійна буферизація не має переваг перед подвійною буферизацією.

Потрійна буферизація дозволяє збільшити швидкість виведення зображення порівняно з подвійною буферизацією. У реальних програмах це часто пов'язано зі спробою абстрагувати операції формування графіки від синхронізації з частотою оновлення монітора. Як правило, кадри малюються з частотою нижче або вище за частоту оновлення екрана (зі змінною частотою кадрів) без звичайних ефектів, які це могло викликати (а саме: мерехтіння, зрушення, розриви). Оскільки програмі не потрібно опитувати обладнання для отримання подій поновлення екрана, алгоритм може вільно виконуватися максимально швидко. Це не єдиний доступний метод потрійної буферизації, але переважаючий на архітектурі ПК, де швидкість машини може відрізнятися.

Інший метод потрійний буферизації включає синхронізацію з частотою оновлення екрана, використовуючи третій буфер просто як спосіб надати вільний простір для запитів на зміни в загальному обсязі графіки, що виводиться. Тут буфер використовують у справжньому сенсі, що він діє як сховище. Такий метод пред'являє підвищені мінімальні вимоги до апаратного забезпечення, але забезпечує узгоджену (порівняно зі змінною) частоту кадрів.

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

Недоліки подвійної буферизації

Якщо в системі є два буфери: А і Б, вона може відображати буфер Б, одночасно формуючи нове зображення в буфері А. Коли зображення в буфері А готове, системі доведеться чекати зворотного ходу променя монітора, щоб змінити буфери. Цей період очікування може становити кілька мілісекунд, протягом яких жоден буфер не зачіпається. У момент завершення вертикальної розгортки можна або обміняти буфери А і Б, щоб потім почати побудову зображення в буфері Б (перемикання сторінок), або скопіювати буфер А буфер Б і малювати в буфері А.

Переваги потрійної буферизації

Якщо в системі є три буфери: А, Б і В, їй не потрібно чекати зміни буферів. Вона може відображати буфер Б, формуючи зображення в буфері А. Коли зображення в буфері А готове, вона негайно починає побудову зображення в буфері В. При настанні паузи у вертикальній розгортці відображається буфер А, а буфер Б звільняється для повторного використання.

Обмеження потрійної буферизації

Якщо система завжди заповнює буфери за менший час, ніж потрібно для відображення буфера на екрані, комп'ютер завжди чекатиме сигналу монітора незалежно від кількості буферів. У цьому випадку потрійна буферизація не має переваг перед подвійною буферизацією.


Wikimedia Foundation. 2010 .

Дивитися що таке "Потрійна буферизація" в інших словниках:

    Буферизація (від англ. buffer) - метод організації обміну, зокрема, введення та виведення даних у комп'ютерах та інших обчислювальних пристроях, який передбачає використання буфера для тимчасового зберігання даних. При введенні даних одні…

    - (Від англ. buffer) метод організації обміну, зокрема, введення та виведення даних у комп'ютерах та інших обчислювальних пристроях, який передбачає використання буфера для тимчасового зберігання даних. При введенні даних одні пристрої або... Вікіпедія

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

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

    У цій статті не вистачає посилань на джерела інформації. Інформація має бути перевіряється, інакше вона може бути поставлена ​​під сумнів та видалена. Ви можете … Вікіпедія

    В інформатиці буфер (англ. buffer) це область пам'яті, що використовується для тимчасового зберігання даних під час введення або виведення. Обмін даними (введення та виведення) може відбуватися як із зовнішніми пристроями, так і з процесами в межах комп'ютера. ... Вікіпедія

Потрійна буферизація OpenGl AMD (Triple Buffering, tripleBuffering) — буферизація із трьох рівнів (буферів), у кожному формуються дані, які потім використовуються програмою без очікування. В інтернеті багато інформації на цю тему, і я маю визнати, навіть мені було складно зрозуміти з першого разу.

Суть проста – підготовка графічних даних заздалегідь. Увімкнути під час використання VSync.

VSync — вертикальна синхронізація кадрової частоти у грі з частою розгорткою монітора. Результат – максимальний ФПС дорівнює частоті монітора.

Принцип роботи

Загалом приблизно так:

  1. Процесор повідомляє відеокарту дані створення картинки.
  2. Відеокарта підготувала картинку та відобразила на моніторі.
  3. Монітор відображає цю картинку 60 разів на секунду – стандартна частота для РК-моніторів.
  4. Далі процесор посилає знову відеокарті дані для зображення - відеокарта готує зображення. Але показ поточного зображення на моніторі ще не завершено.
  5. Процесор, відеокарта – очікують завершення показу.
  6. При увімкненій буферизації очікування не буде - процесор посилатиме команди, відеокарта створюватиме зображення.
  7. Поки йде показ, наступні зображення розміщуватимуться у спеціальну область (буфер).
  8. При завершенні показу наступна картинка буде вилучатися без очікування з буфера. Таких буферів за замовчуванням існує два і вони завжди працюють процес називається подвійною буферизацією. Потрійна буферизація прискорює процес, тому що використовується третій буфер, система працює за аналогією до подвійної буферизації.

Найголовніше, що варто розуміти – 1 секунда для нас ця мить. Для процесора/відеокарти – значний час. Саме тому у програмуванні якщо потрібно поставити паузи, то використовую як одиницю не секунди, а мілісекунди.

Опція у програмі AMD Radeon Settings:


Приклад #2:


Включати чи ні?

Увімкнути необхідно у разі використання VSync в іграх. При використанні VSync якість зображення підвищується за рахунок видалення так званого розриву зображення, через це може просідати ФПС. Результат – дозволяє знизити до мінімуму затримки у підготовці даних відеокартою. Особливо стосується топових процесорів/відеокарт.

Потрійна буферизація доступна тільки OpenGL, для активації в Direct3D іграх можна скористатися програмою RivaTuner.

RivaTuner призначена для тонкого настроювання відеокарт NVIDIA. Є недокументовані функції драйверів Detonator всіх версій, низькорівневий розгін GPU, виправлення рефрешу, модуль діагностики.

У нормальних умовах потрійна буферизація дає підвищення продуктивності, зменшення кількості микрофризов.

Якщо цей тип буферизації погано впливає на гру, можливо справа в драйверах.Можна спробувати поставити інші попередні драйвери. Порада — перед встановленням зробіть точку відновлення. Якщо ви нещодавно встановлювали драйвера, тоді зробіть навпаки - спробуйте відновити стан ПК до встановлення нової версії.

Потрійна буферизація та WorldOfTanks

Інформація була актуальна на 2014 рік для WoT 9.0.

Ця інформація не претендує на корисну, однак, у деяких глюках/лагах, можливо, стане корисною.

Для кращої продуктивності в WorldOfTanks також необхідно задати параметру triplebuffering значення false (тобто відключити). Особливо це стосується не дуже продуктивних ПК.

За буферизацію відповідає параметр tripleBuffering у конфігураційному файлі:

  1. При увімкненій вертикальній синхронізації – потрійну буферизацію необхідно увімкнути. Задати в tripleBuffering = true.
  2. При вимкненій – вимкнути. tripleBuffering = false.

Міні-інструкція:


Додатково

Деякі інші опції графіки
Назва Опис
Flip Queue Size Кількість кадрів, що заздалегідь готуються. Увімкнення може знизити/виключити провали ФПС. Рекомендоване значення – 2. За наявності багатоядерного процесора значення 0 може знизити продуктивність.
Anisotropic/Trilinear Filtering Optimizations Оптимізація анізотропної та трилінійної фільтрації. Увімкнення підвищить швидкість, зниження якості картинки ви навряд чи помітите. Актуально для топових моделей відеокарт.
Адаптивне згладжування Згладжування об'єкта (anti-aliasing) відбувається в повному обсязі, лише по краях. Ефект досягається використанням сильних сторін мультисемплінгу (MSAA) та суперсемплінгу (SSAA).
Підтримка стиснення DXT Стиснення текстур без втрат з метою економії пропускної спроможності. Рекомендується вмикати.

Висновок

  1. Суть – підготовка даних для майбутнього зображення під час показу поточного.
  2. Потрійна буферизація OpenGl від AMD необхідно використовувати при увімкненій VSync.
  3. Продуктивність гри має зрости. Особливо на топових ПК.

В рамках цього огляду, я розповім вам що таке потрійна буферизація, а також про пов'язані з цим особливості.

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

Одним із рішень подібної проблеми є подвійна та потрійна буферизація. Що це таке і навіщо потрібно, а як пов'язано з вертикальною синхронізацією 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.

gastroguru 2017