Екранне згладжування![]() ![]() ![]() Згла́джування (англ. anti-aliasing) — технологія, що використовується в обробці зображень з метою зробити межі кривих ліній більш гладкими, прибираючи «зубці», що виникають на краях об'єктів. Вперше згладжування було застосовано в 1972 році в Массачусетському технологічному інституті в групі Architecture Machine Group, яка пізніше стала основною частиною MIT Media Lab. Основний принцип згладжуванняОсновний принцип згладжування — використання можливостей пристрою виведення для показу відтінків кольору, яким намальована крива. У цьому випадку пікселі, сусідні з граничним пікселями зображення, беруть проміжне значення між кольором зображення і кольором фону, створюючи градієнт і розмиваючи межі. Застосовується два варіанти згладжування:
Слід зауважити, що згладжування залежить від гамми монітору. Зокрема, середнє між 0,2 і 0,8 — це не обов'язково 0,5, а . Особливо це помітно на тонких візерунках і тексті. Тому згладжування найкращої якості виходить лише тоді, коли відома. Види згладжування
Super-Sampling Anti-Aliasing – це метод згладжування зображень, що рендерить сцену у вищій роздільній здатності з подальшим масштабуванням до вихідного розміру, усуваючи «зубці» на межах полігонів. Технологія доступна ще з епохи DirectX 7 і підтримувалася на ранніх відеокартах. Наприклад, у серії AMD HD6xxx SSAA реалізовано як додаткову функцію для DirectX 9, а драйвери NVIDIA для архітектури Fermi додали її підтримку для ігор від DirectX 9 до DirectX 11 (за умови наявності апаратної підтримки DirectX 10 і вище). Застосування SSAA забезпечує м’яке, реалістичне згладжування, але при простому алгоритмі суперсемплінгу з усередненням може виникати розмиття, особливо для чітких ліній. Для збереження точності зображення іноді використовують додаткові алгоритми, такі як хінтинг. Важливо враховувати, що повноекранне згладжування значно навантажує відеокарту, що може призводити до падіння частоти кадрів. Якість SSAA залежить від пропускної здатності відеопам’яті (ПЗВ): сучасні карти зі швидкою пам’яттю краще справляються з цією задачею. Режими SSAA відрізняються коефіцієнтами: наприклад, 4xSSAA рендерить зображення у вдвічі вищій роздільній здатності по кожному виміру (тобто, у 4 рази більше пікселів), що дає кращий ефект, але потребує більших ресурсів, ніж 2xSSAA (у 1,414 рази більше пікселів). MSAAMulti-Sample Anti-Aliasing — прийшов на зміну SSAA. На відміну від SSAA, що працює із заданою геометрією через виконання повного суперсемплінгу, MSAA переважно оптимізує обробку країв об’єктів, де згладжування є критично важливим, при цьому не задіюючи внутрішні ділянки, де деталі не потребують супер-детального опрацювання. Такий підхід дозволяє досягти схожого ефекту згладжування із меншою обчислювальною складністю, що забезпечує більшу продуктивність. CSAACoverage Sampling Anti-Aliasing — продовження «еволюції» SSAA➞MSAA➞CSAA. Поліпшення досягнуто внаслідок того, що в буфер кадру передається ще й інформація про вибірку з сусіднього пікселя. Що в результаті допомагає розрахувати точніше згладжування. При однакових рівнях згладжування (2x, 4x, 8x...) CSAA і MSAA, якість завжди буде вищою у CSAA, а за навантаженням вони однакові. QCSAAQuality Coverage Sampling Anti-Aliasing — покращена версія CSAA, внаслідок використання вдвічі більшої кількості вибірок для аналізу. AAAAdaptive Anti-Aliasing — в MSAA є проблема при згладжуванні країв на прозорих об'єктах. Цей алгоритм покликаний усунути цю проблему. Є об'єднанням MSAA та SSAA. Цей вид рекомендується власникам потужних відеокарт. Використовується лише в AMD. TrAATransparency Anti-Aliasing — аналог AAA, від NVIDIA. CFAACustom Filter Anti-Aliasing — включає 4 фільтри: box, narrow-tent, wide-tent та edge-detect. Кожен фільтр це різний підхід до реалізації MSAA. Використовується лише в AMD.
TXAATemporal approXimate Anti-Aliasing — аналог ТАА від NVIDIA, який використовує основу MSAA. У формулі розрахунку використовується час, дані пікселів, попередніх кадрів та дані сцени, що обробляється. Після чого відбувається усереднення за кольором. Це дозволяє позбутися мерехтіння та посмикування країв об'єктів у грі. Вдалині дає якісну картинку, проте трохи милить близькі об'єкти та навантаження майже як у MSAA, хоча якість при тих же значеннях краща. За словами розробника: 2xTXAA можна порівняти за якістю з 8xMSAA, але за навантаженням можна порівняти з 2xMSAA, а 4xTXAA вище за якістю ніж 8xMSAA, але за навантаженням можна порівняти з 4xMSAA. Відмінно підходить для згладжування динаміки. TAATemporal Anti-Aliasing — загальний термін для різних тимчасових алгоритмів згладжування. Не обмежений конкретним виробником. Працює на основі шейдеру, який об'єднує два кадри з використанням векторів руху для визначення місця вибірки попереднього кадру. TSSAATemporal Super-Sampling Anti-Aliasing — тимчасово-надмірна вибірка згладжування. Використовується для зменшення артефактів, як-от мерехтіння, «зубців» та «тремтіння» країв об'єктів, що виникають під час швидкого руху або зміни об'єктів на екрані.
У цьому кроці кожен кадр розбивається на пікселі, і для кожного пікселя визначається його оточення. Це оточення складається з сусідніх пікселів, які будуть використані для обчислення їхнього внеску в підсумкове значення кольору поточного пікселя. Зазвичай використовуються методи згладжування, як-от надмірна вибірка або множинна вибірка, щоб врахувати внесок кожного пікселя в оточенні.
У цьому кроці відбувається збір інформації про попередні кадри. Для кожного пікселя зберігаються значення кольору, обчислені на попередніх кадрах, а також їхні часові ваги. Цю інформацію використовують для врахування історії руху пікселя і запобігання появи артефактів.
На цьому кроці відбувається перерахунок кольорів пікселів з урахуванням просторового згладжування і часової історії. Кожен піксель обробляється з урахуванням його оточення і тимчасової «ваги», щоб отримати підсумкове значення кольору. У результаті відбувається згладжування країв об'єктів, зменшення «тремтіння» та «зубців».
Цей крок включає застосування фільтрації для додаткового згладжування й усунення артефактів, що залишилися. Фільтрація може включати різні методи, як-от фільтр Гауса або білінійна інтерполяція, щоб отримати більш «плавні» результати.
У деяких варіантах алгоритму застосовується інтерполяція руху. Це дає змогу точніше передбачати положення пікселів у наступних кадрах і додатково згладжувати рухомі об'єкти.
Після завершення всіх попередніх кроків підсумкове згладжене зображення виводиться на екран для спостереження користувачем. Зверніть увагу, що описаний алгоритм є узагальненим підходом до TSSAA, існують різні варіації та модифікації цього алгоритму, які можуть використовуватися в конкретних реалізаціях і додатках комп'ютерної графіки. FXAAFast approXimate Anti-Aliasing — алгоритм від NVIDIA, є однопрохідним піксельним шейдером, який обраховує результуючий кадр на етапі постобробки. Є більш продуктивним рішенням порівняно з традиційним MSAA, що дається взнак на точності та якості зображення. MLAAMorphological Anti-Aliasing — аналог FXAA від Intel. Шукає «зубчасті» межі на кожному кадрі, схожі на літери Z, L або U, та змішує кольори сусідніх пікселів, що входять до кожної такої частини. Алгоритм переведено на використання процесора, а не відеокарти. Звідси його можна рекомендувати власникам слабких відеокарт із більш-менш продуктивним процесором. Через складніший алгоритм зображення виходить більш якісним, ніж у FXAA. Є реалізація AMD, але технічно може використовувати і NVIDIA. Має проблему: згладжування не працює на прозорих текстурах. Тому на додачу цієї постобробки потрібно підключати ще й TrAA або AAA для покращення зображення. Час обробки займає 0,9 мс. Також є алгоритми MLAA реалізовані на відеокартах. DLAADirectionally Localized Anti-Aliasing — аналог MLAA, але з кращою стабільністю за часом кадру. Не від Intel. MFAAMultiframe Sampled Anti-Aliasing — алгоритм від NVIDIA, ексклюзивний для відеокарт покоління Maxwell. Завдяки чергуванню позицій вибірок, 4xMFAA так само впливає на продуктивність як і 2xMSAA, проте забезпечує якість зображення на рівні 4xMSAA. SRAASubpixel Reconstruction Anti-Aliasing — двопрохідний алгоритм від NVIDIA. Дуже схожий з MLAA, але працює з буферами глибини та мапами нормалей, через що краще визначає межі згладжування та затінені краї. Час виконання загалом дуже низький, основний час в алгоритмі йде на обробку затінювання. На виході можуть бути артефакти. Для порівняння, на згладжування зображення з роздільною здатністю 1280x720 (HDV 720p) методом SSAA йде близько 5-10 мс, а SRAA ~1,8 мс. SMAASubpixel Morphological Anti-Aliasing — комбінація з MSAA, SSAA та MLAA. Взагалі, це покращений MLAA з додаванням локального контрасту, пошуком патернів та використанням більшої кількості вибірок. Іноді може додаватись ще й тимчасова надлишкова вибірка. Ресурсів споживає більше ніж MLAA, але використовує при цьому відеокарту, а не процесор. Можна зустріти різновиди:
CMAAConservative Morphological Anti-Aliasing — комбінація з FXAA та SMAAx1. Ідеально підходить для слабких та середніх відеокарт. На відміну від FXAA, відбувається розрахунок обробки ліній та країв довжиною до 64 пікселів. Використовується алгоритм з обробкою лише симетричних розривів кольорів, щоб уникнути непотрібного розмиття. Відмінність від 1xSMAA відбувається за рахунок менш повного згладжування об'єктів, тому що обробляється менше типів фігур і має підвищену тимчасову стабільність, тобто менше мерехтіння об'єктів. DSRDynamic Super Resolution — алгоритм від NVIDIA, обробляє зображення у високій роздільній здатності (до формату 4K), після чого зображення масштабується до роздільної здатності дисплея. Це дозволяє підвищити якість зображення, але продуктивність у такому режимі знижується, тому що обробка відбувається у вищій роздільній здатності. VSRVirtual Super Resolution — аналог DSR від AMD. HSAAHybrid-Sampling Anti-Aliasing — комбінація з SSAA та MSAA, від NVIDIA. FSR 1.0FidelityFX Super Resolution — це технологія масштабування від компанії AMD, яка призначена для підвищення продуктивності в комп'ютерних іграх. Вона працює за допомогою рендерингу зображення в нижчій роздільній здатності, після чого використовується спеціальний алгоритм для збільшення роздільної здатності, зберігаючи при цьому відносно високу якість зображення. Завдяки цьому досягає більшої частоти кадрів у відеоіграх без суттєвого навантаження на графічний процесор. FSR пропонує користувачам кілька режимів налаштування, які дозволяють балансувати між продуктивністю та якістю зображення: Ultra Quality (Ультра якість), Quality (Якість), Balance (Баланс) та Performance (Продуктивність).
На відміну від конкурентної технології від NVIDIA — DLSS (Deep Learning Super Sampling), яка використовує машинне навчання для покращення якості масштабованого зображення, FSR працює без потреби у спеціалізованому обладнанні, що робить її доступнішою для ширшого кола користувачів та різноманітного апаратного забезпечення. FSR 2.0Наступна покращена версія технології FidelityFX Super Resolution від AMD, що використовує тимчасову складову у вигляді кольору, глибини і векторів руху, які враховуються у алгоритмі рендеринга для поліпшення якості масштабування. Порівняння згладжування TAA з іншими видами згладжування![]() TAA у порівнянні з MSAAДо розробки TAA, MSAA була найпоширенішою технікою згладжування. MSAA робить вибірку кожного пікселю кілька разів у різних місцях кадру й усереднює їх для отримання остаточного значення пікселя. На противагу цьому, TAA робить вибірку кожного пікселя лише один раз за кадр, але робить вибірку пікселів у різних місцях, у різних кадрах. Це робить TAA швидшим за MSAA. У частинах зображення без руху TAA ефективніше обчислює ніж MSAA на декількох кадрах і досягає тієї ж якості, що і MSAA, але з меншими обчислювальними витратами. TAA у порівнянні з FXAATAA і FXAA роблять вибірку кожного пікселя лише один раз за кадр, але FXAA не враховує пікселі, обрані в попередніх кадрах, тому FXAA є простішим і швидшим, але не може досягти такої ж якості зображення, як TAA або MSAA. Див. такожПримітки
|
Portal di Ensiklopedia Dunia