СВІТ NVIDIA
У всякого роду еволюції є якась своя кінцева мета. Мета еволюції 3D-акселераторів - фотореалістична графіка в реальному часі, яка дозволила б нам з вами бачити на екранах моніторів (або ... хто знає, на чому ми бачитимемо в майбутньому J) живе, реалістичне зображення, але зроблене штучно, за допомогою програмних засобів а також рук і фантазії людини. На сьогодні, на жаль, обчислювальної потужності сучасних комп'ютерів не вистачає для досягнення бажаної мети, якась (але дуже непогана!) подоба фотореалістичної графіки доступна лише в статичних картинках та пререндерованих анімаційних фільмах.
У цій статті ми спробуємо розповісти вам про один із методів, які дозволяють на досить відчутну частку наблизитися до цієї мети – «повноекранне згладжування» (FSAA) за допомогою суперсемплінгу (super-sampling).
FSAA – Full Scene Anti-Aliasing (повноцінний антиаліасинг).
Щоб зрозуміти, що таке анти-аліасинг, необхідно розібратися, що таке саме поняття «аліасинг» (або, як його називають, “сходовий” ефект). Спочатку розберемося, із чого складається зображення? На це питання є дві відповіді:
По-перше, зображення на екрані складається з безлічі дрібних точок - пікселів, які, як маленькі цеглини, формують майже будь-яке зображення.
По-друге, зображення тривимірної картинки складається з безлічі плоских трикутників - полігонів, з'єднуючи які, можна отримати об'єкти практично будь-якої форми.
Чому саме трикутники? Справа в тому, що це найпростіші площини, комбінуючи які, найлегше будувати будь-які тривимірні геометричні об'єкти.
І те, й інше, є наближенням до тієї самої фотореалістичної графіки, а просто кажучи до того, що ми бачимонашими очима у реальному житті. Власне, чим більше полігонів та пікселів використовується при побудові тривимірного зображення, тим реалістичніше виглядає отримана картинка. Реально підвищити кількість полігонів на екрані в найближчому майбутньому дозволить апаратний блок T&L, який зараз активно просувається такими фірмами як NVIDIA та ATI.
Підвищувати кількість пікселів, що відображаються на екрані, складніше – у більшості моніторів (15-17 дюймів), максимальна комфортна роздільна здатність – лише 1024х768. Але навіть на такому дозволі на краях тривимірних об'єктів можна розрізнити так звану "драбинку". Що це таке, найпростіше показати:

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

Крапки стали набагато дрібнішими, і аліасинг практично не помітний. Людське око сприймає ніби розмазану "драбинку" і виходить ілюзія абсолютно гладкої та рівної лінії. Більш висока роздільна здатність дає більш якісну картинку, на якій "драбинки" вже мало помітні. Що робити, коли підвищити його до ідеального рівня неможливо? Тут і працює так званий антиаліасинг. Він імітує вже зазначену вище властивість зору людини і завдяки згладжуванню (зверніть увагу: згладжуванню, а не розмазуванню), домагається ілюзії набагато більшого дозволу, ніж реально встановлено. Таким чином, все вище сказане, дає визначення двом поняттям:
Аліасинг- власне, сам «ефект сходів»

Спочатку зображення розраховується як картинка високої роздільної здатності. Для наочності використовувалася проста похила лінія. Як бачите, лінія майже близька до ідеалу (Малюнок 1).

Потім, для маленьких квадратиків площею 2х2 пікселів (які фізично є пікселями екрану), знаходиться загальний колір, який отримують, змішуючи кольори пікселів, що знаходяться на цій площі. В результаті, на малюнку 2, роздільна здатність хоч і зменшена в 4 рази (у 2 рази по горизонталі і в 2 рази по вертикалі), лінія виглядає майже гладко. Зрозуміло, лінія малюнку 1 виглядає краще. Але якщо порівнювати в одному дозволі, то подивіться, як виглядає лінія без антиаліасингу:

Обробляючи таким чином зображення, можна позбутися такого неприємного нам "сходового" ефекту (або досить зменшити його) і, відповідно, помітно підвищити якість картинки. Але на жаль, швидкість від включення анти-аліасингу падає в режимі 2х2 в 4 рази, а в режимі 4х4 - в 16 разів (!), так що в багатьох іграх його включення призводить просто до катастрофічно низької швидкості, недостатньої для повноцінної комфортної гри . Доводиться або знижувати дозвіл, що підвищує аліасинг, а значить підвищення якості від цього ефекту значною мірою компенсуватиметься низьким дозволом, або відмовлятися від антиаліасингу (що і відбувається найчастіше). Зрозуміло, це значить, що FSAA марний. Є безліч ігор, не вимогливих до прискорювача, які можуть працювати в максимальному дозволі з включеним анти-аліасингом. Та й потужність прискорювачів на сьогодні зростає в кілька разів швидше за всіх інших компонентів PC (як і вимог ігор до самих прискорювачів J), тому дуже скоро цей ефект буде застосовуватися повсюдно вже без будь-яких компромісів.
У драйверах від NVIDIA (Detonator), для прискорювачів на базі чіпів GeForce, можна вибирати різні режими анти-аліасингу, підбираючи оптимальнеспіввідношення якості та швидкості. А в іграх, як правило, можна змінювати дозволи, тому для того, щоб досягти максимальної якості зображення, зберігаючи прийнятну швидкість, потрібно трохи поекспериментувати.
У налаштуваннях Detonator є кілька режимів FSAA. Від 1х2 до 4х4. При цьому вони поділяються на звичайні, з низькою деталізацією (low detail) та один спеціальний (2x2 special). Встановлювати режими low detail немає сенсу, т.к. буде лише втрата якості, а виграшу у швидкості – жодного. Режим 2х2 special має більш високу якість на рівні звичайного 3х3, проте при цьому швидкість збережеться на рівні звичайного 2х2! Але при цьому є суттєвий мінус – цей режим викликає найбільше проблем сумісності з іграми.
Наприклад, розповімо вам про те, як підбирався оптимальний режим FSAA для деяких ігор. Приклади ці непоодинокі. Це, так би мовити, представники ігор різних класів – невимогливих до прискорювача, середніх та вимогливих. Деякі ігри не дозволяють підвищувати роздільну здатність, деякі – не можуть працювати з FSAA. Таких ігор, особливо старих, трапляється дуже багато.
Ця гра дуже невибаглива до потужності прискорювача. Наприклад, було встановлено режим FSAA 4х4, у режимі 1024х768х16 і суб'єктивно швидкість не знизилася. Правда, в 1024х768х32 вже не вистачало пам'яті для FSAA, тому якщо необхідний 32-бітовий колір, то доведеться грати в роздільній здатності 800х600. Обидва ці режими мають відмінну швидкість, і вибір залежить від переваг гравця.
Ця гра вже сильніше завантажує прискорювач. Тим не менш, режим 1024х768х16 FSAA 2x2 special є для неї цілком грабельним. Як і в минулому випадку, для отримання 32-бітового кольору, доведеться знижувати роздільну здатність до 800x600.
Dungeon Keeper
Це приклад гри,нездатною працювати у режимі FSAA. При його включенні на екрані видно лише окремі об'єкти, а більша частина екрана пофарбована в чорний колір. Не виключено, що в майбутніх драйверах це буде виправлено і частину проблем сумісності примусового антиаліасингу буде знято.
Carmageddon 2
Ця гра - одна з небагатьох, які "знають" про анти-аліасинг, а отже, з нею гарантовано не буде жодних проблем. На жаль, у ній не можна самостійно підбирати режими, вона сама встановлює оптимальний для обраного дозволу режим FSAA. Робить вона це цілком вдало, оскільки у всіх дозволах забезпечується дуже висока якість та швидкість. Все це можна виразно побачити на наведених нижче скріншотах, зроблених в режимі 640х480х32 (т.к. нормально грати, з прийнятною швидкістю, в багатьох іграх, так само як і в цю, можна лише з таким дозволом):