Екранне згладжування

(Перенаправлено з Anti-aliasing)

Згла́джування (англ. anti-aliasing) — технологія, що використовується в обробці зображень з метою зробити межі кривих ліній більш гладкими, прибираючи «зубці», що виникають на краях об'єктів. Вперше згладжування було застосовано в 1972 році в Массачусетському технологічному інституті в групі Architecture Machine Group, яка пізніше стала основною частиною MIT Media Lab.

Зображення ліворуч без згладжування, а праворуч з згладжуванням (х4)
Літера а з згладжуванням (ліворуч) і без згладжування (праворуч) на TFT-моніторі
Приклад вибірок у згладжуванні

Основний принцип згладжуванняРедагувати

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

Застосовується два варіанти згладжування:

  • Загальне згладжування відмальовкою надмірно великого незгладженого зображення з подальшим зменшенням роздільної здатності.
  • Спеціалізовані алгоритми згладжування, що працюють на зображеннях певного типу (наприклад, Алгоритм Ву для відмальовки відрізків).

Слід зауважити, що згладжування залежить від гамми монітору. Зокрема, середнє між 0,2 і 0,8 — це не обов'язково 0,5, а  . Особливо це помітно на тонких візерунках і тексті. Тому згладжування найкращої якості виходить лише тоді, коли   відома.

Види згладжуванняРедагувати

Примітка: згладжування впливає на фреймрейт (кількість кадрів у секунду) залежно від ПЗВ (пропускної здатності відеопам'яті) відеокарти.

SSAAРедагувати

Super-Sampling Anti-Aliasing — надмірна вибірка згладжування, також звана повноцінним або повноекранним згладжуванням, використовується для виправлення аліасингу «зубців» на повноекранних зображеннях. SSAA було доступно на ранніх відеокартах, аж до DirectX 7. У модельному ряді AMD HD6ХХХ вона включена як особливість (тільки для ігор на DirectX 9), також вона була включена до драйверів NVIDIA Fermi для всіх комп'ютерних ігор, починаючи з ігор на DirectX 9 і закінчуючи іграми на DirectX 11 з використанням будь-яких відеокарт NVIDIA, з підтримкою DirectX 10 та вище.

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

Повноекранне згладжування дозволяє усунути характерні «зубці» на межах полігонів. Однак слід враховувати, що повноекранне згладжування сильно навантажує відеокарту, що призводить до падіння частоти кадрів.

Якість згладжування обмежена пропускною здатністю відеопам'яті, тому відеокарта з швидкою пам'яттю зможе прорахувати повноекранне згладжування з меншою шкодою для продуктивності, ніж слабка відеокарта. Згладжування можна включати у різних режимах. Наприклад, згладжування x4 дасть якісніше зображення, ніж згладжування x2, але значно знизить продуктивність. Згладжування SSAAx2 подвоює роздільну здатність, тоді як SSAAx4 його вчетверяє.

MSAAРедагувати

Multi-Sample Anti-Aliasing — алгоритм, що прийшов на зміну SSAA, працюючій тільки з геометрією, завдяки цьому дає схожий ефект згладжування з SSAA, але при меншому навантаженні.

CSAAРедагувати

Coverage Sampling Anti-Aliasing — продовження "еволюції" SSAA➟MSAA➟CSAA. Поліпшення досягнуто за рахунок того, що в буфер кадру передається ще й інформація про вибірку з сусіднього пікселя. Що в результаті допомагає розрахувати точніше згладжування. При рівних рівнях згладжування (x2, x4, x8...) CSAA і MSAA, якість завжди буде вищою у CSAA, а за навантаженням вони рівні.

QCSAAРедагувати

Quality Coverage Sampling Anti-Aliasing — покращена версія CSAA, за рахунок використання вдвічі більшої кількості вибірок для аналізу.

AAAРедагувати

Adaptive Anti-Aliasing — в MSAA є проблема при згладжуванні країв на прозорих об'єктах. Цей алгоритм покликаний усунути цю проблему. Є об'єднанням MSAA та SSAA. Цей вид рекомендується власникам потужних відеокарт. Використовується лише у AMD.

TrAAРедагувати

Transparency Anti-Aliasing — аналог AAA, але від NVIDIA.

CFAAРедагувати

Custom Filter Anti-Aliasing — алгоритм, що включає 4 фільтри: box, narrow-tent, wide-tent та edge-detect. Кожен фільтр це різний підхід до реалізації MSAA. Використовується лише у AMD.

  • box: стандартний MSAA.
  • narrow-tent: аналог CSAA.
  • wide-tent: аналог QCSAA.
  • edge-detect: при проході фільтра по обробленим зображенням, для певних ним пікселів, які визначаються як межі полігонів або різкі колірні переходи, використовується більш якісний метод згладжування з великою кількістю вибірок, а для решти пікселів з меншим.

TXAAРедагувати

Temporal approXimate Anti-Aliasing — аналог ТАА від NVIDIA, який використовує основу MSAA. У формулі розрахунку використовується час, дані з пікселів та попередніх кадрів і дані з сцени, що обробляється. Після чого відбувається усереднення за кольором. Це дозволяє позбутися мерехтіння та посмикування об'єктів у грі. Вдалині дає якісну картинку, проте трохи милить близькі об'єкти і навантаження майже як у MSAA, хоча якість при тих же значеннях краща. За словами розробника: TXAAx2 можна порівняти за якістю з MSAAx8, але за навантаженням можна порівняти з MSAAx2, а TXAAx4 вище за якістю ніж MSAAx8, але за навантаженням можна порівняти з MSAAx4. Відмінно підходить для згладжування динаміки.

TAAРедагувати

Temporal Anti-Aliasing — загальний термін для різних часових алгоритмів згладжування. Не обмежений конкретним виробником. Працює на основі шейдеру, який об'єднує два кадри з використанням векторів руху для визначення місця вибірки попереднього кадру.

TSSAAРедагувати

Temporal Super-Sampling Anti-Aliasing — алгоритм, у якому згладжування застосовується не тільки до поточного кадру, але й до деяких кадрів, які були оброблені раніше, відновлюючи старі положення пікселів та використовуючи їх швидкість. Це створює більш плавні та кінематографічні сцени у грі, лише трохи збільшуючи навантаження на відеокарту.

FXAAРедагувати

Fast approXimate Anti-Aliasing — алгоритм від NVIDIA, є однопрохідним піксельним шейдером, який обраховує результуючий кадр на етапі постобробки. Є більш продуктивним рішенням порівняно з традиційним MSAA, що дається взнак на точності та якості зображення.

MLAAРедагувати

Morphological Anti-Aliasing — аналог FXAA від компанії Intel. Шукає «зубчасті» межі на кожному кадрі, схожі на літери Z, L або U, і змішує кольори сусідніх пікселів, що входять до кожної такої частини. Алгоритм переведено на використання процесора, а не відеокарти. Звідси його можна рекомендувати власникам слабких відеокарт із більш-менш продуктивним процесором. Через складніший алгоритм зображення виходить більш якісним, ніж у FXAA. Є реалізація AMD, але технічно може використовувати і NVIDIA. Має проблему: згладжування не працює на прозорих текстурах. Тому на додачу цієї постобробки потрібно підключати ще й TrAA або AAA для покращення зображення. Час обробки займає 0,9 мс. Також є алгоритми MLAA реалізовані на відеокартах.

DLAAРедагувати

Directionally Localized Anti-Aliasing — аналог MLAA, але з кращою стабільністю за часом кадру. Не від компанії Intel.

MFAAРедагувати

Multiframe Sampled Anti-Aliasing — алгоритм від NVIDIA, ексклюзивний для відеокарт покоління Maxwell. Завдяки чергуванню позицій вибірок, MFAAx4 так само впливає на продуктивність як і MSAAx2, проте забезпечує якість зображення на рівні MSAAx4.

SRAAРедагувати

Subpixel Reconstruction Anti-Aliasing — двопрохідний алгоритм від NVIDIA. Дуже схожий з MLAA, але працює з буферами глибини та картами нормалей, через що краще визначає межі для згладжування та затінені краї. Час виконання загалом дуже низький, основний час у алгоритмі йде на обробку затінювання. На виході можуть бути артефакти. Для порівняння, на згладжування зображення з роздільною здатністю 1280x720 (HDV 720p) методом SSAA йде близько 5-10 мс, а SRAA 1,8 мс.

SMAAРедагувати

Subpixel Morphological Anti-Aliasing — комбінація з MSAA, SSAA та MLAA. Взагалі, це покращений MLAA з додаванням локального контрасту, пошуком патернів та використанням більшої кількості вибірок. Іноді може додаватись ще й тимчасова надлишкова вибірка. Ресурсів споживає більше ніж MLAA, але використовує при цьому відеокарту, а не процесор.

Можна зустріти різновиди:

  • SMAAx1: класичний алгоритм SMAA, що включає точний пошук відстаней, робота з локальним контрастом для визначення країв, геометричних об'єктів та пошук діагональних ліній. Час обробки займає 1,02 мс.
  • SMAATx2: SMAA x1 + алгоритми з TSSAA. Час обробки займає: 1,32 мс.
  • SMAASx2: SMAA x1 + алгоритми з MSAA. Час обробки займає: 2,04 мс.
  • SMAAx4: SMAA x1 + алгоритми з SSAA, MSAA, TSSAA та TMSAA. Час обробки займає: 2,34 мс.

CMAAРедагувати

Conservative Morphological Anti-Aliasing — комбінація з FXAA та SMAAx1. Ідеально підходить для слабких та середніх відеокарт. На відміну від FXAA, відбувається разрахунок обробки ліній та країв довжиною до 64 пікселів. Використовується алгоритм з обробкою лише симетричних розривів кольорів, щоб уникнути непотрібного розмиття. Відмінність від SMAAx1 відбувається за рахунок менш повного згладжування об'єктів, тому що обробляється менше типів фігур і має підвищену тимчасову стабільність, тобто менше мерехтіння об'єктів.

DSRРедагувати

Dynamic Super Resolution — алгоритм від NVIDIA, обробляє зображення у високій роздільній здатності (до формату 4K), після чого зображення масштабується до роздільної здатності дисплея. Це дозволяє підвищити якість зображення, але продуктивність у такому режимі знижується, тому що обробка відбувається у вищій роздільній здатності.

VSRРедагувати

Virtual Super Resolution — аналог DSR, але від AMD.

HSAAРедагувати

Hybrid-Sampling Anti-Aliasing — комбінація з SSAA та MSAA. Від NVIDIA.

FSR 1.0Редагувати

Fidelity Super Resolution — технологія від компанії AMD, що примушує відеокарту виконувати рендеринг в нижчій роздільній здатності, а потім використовує алгоритм підвищення роздільної здатності, щоб забезпечити більший фреймрейт. Компроміс між тим, скільки додаткових кадрів у секунду ви отримаєте та як сильно постраждає якість зображення, залежить від вас, оскільки ви можете вибирати між різними налаштуваннями (Ultra Quality, Quality, Balance та Performance). Режим "Продуктивність" забезпечує максимальний приріст фреймрейту при найбільшому впливі на якість зображення, тоді як "Ультра якість" забезпечує найменший приріст фреймрейту, але при цьому найменьш впливає на якість зображення.

FSR 2.0Редагувати

Покращена версія технології від компанії AMD, що використовує тимчасову складову у вигляді кольору, глибини і векторів руху, які враховуються у алгоритмі рендеринга для поліпшення якості масштабування.

Див. такожРедагувати

ПриміткиРедагувати