Огляд ефектів directx 11 ultra upgrade в crysis 2, nvidia

Ендрю Бернс (Andrew Burnes)

Вищезазначена апаратна тесселяция DirectX 11 - це головне удосконалення графіки в грі, але, крім неї, Ultra Upgrade забезпечує м'які тіні зі змінними півтінями, покращений рендеринг водних поверхонь, а також просунуте затінення і згладжування рухомих частинок. Спочатку Виключена з движка CryEngine 3 програмна техніка Parallax Occlusion Mapping була повернута в гру, як і ефект розмиття руху з розширеним динамічним діапазоном, роблячи стеження камери за об'єктом більш визначеним і пропрацював. Для кращої продуктивності був також реалізований механізм апаратного відсікання невидимих ​​об'єктів, завдяки якому обчислювальні ресурси витрачаються найбільш оптимально.

Крім того, для Ultra Upgrade були розроблені з нуля три нові технології. Realtime Local Reflections забезпечує високоякісні відображення нового покоління в реальному часі; Screen Space Directional Occlusion покращує освітлення і затінення, сгенерированное Screen Space Ambient Occlusion, програмної технікою глобального освітлення, вперше використаної Crytek в оригінальному Crysis; глибина різкості -на базі спрайтів Bokeh додає кінематографічності ефектів нового шутера Crytek.

Щоб задіяти Ultra Upgrade, необхідно включити в меню гри відповідну опцію:

Огляд ефектів directx 11 ultra upgrade в crysis 2, nvidia

Основне графічне меню дозволяє користувачам включати ефекти DirectX 11 і вибирати попередню установку загальної якості.

Огляд ефектів directx 11 ultra upgrade в crysis 2, nvidia

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

Налаштування на зображенні вище з'являються після установки пакета Ultra Upgrade і дозволяють користувачам включати і вимикати такі ефекти:

  • Об'єкти: рельєфне текстурування і теселляція з використанням карт зсуву
  • Частинки: тіні і розмиття руху
  • Постобработка: розмиття руху з розширеним динамічним діапазоном у високій роздільній здатності і глибина різкості на базі спрайтів Bokeh
  • Освітлення: просунуте освітлення / затінення і локальні відображення в реальному часі
  • Тіні: реалістичні тіні зі змінними півтінями
  • Вода: тесселяция руху океану та інших водних поверхонь на DirectX 11
  • Ступінь розмиття руху: установка рівня розмиття руху або його повне відключення
  • Високоякісні текстури: включення / вимикання використання текстур високої роздільної здатності

Тесселяція і карти зміщення

Тесселяція і накладення рельєфу з використанням карт зсуву - це основні і найбільш візуально помітні нововведення пакета Ultra Upgrade. Стіни тепер складаються з неоднорідних цегли, каміння здаються багаторівневими, і багато інших елементів картинки виглядають більш детально і об'ємно при включенні цих опцій. Важливість використання тесселяції анітрохи не перебільшена, технологія привнесла в кожну деталь, де це було можливо, обсяг і чіткість, помітні неозброєним оком. Ви відразу помітите відсутність цього ефекту, відключивши його в DirectX 11 Ultra Upgrade або скориставшись порівняльними анімованими скриншотами нижче.

Огляд ефектів directx 11 ultra upgrade в crysis 2, nvidia

Натисніть, щоб побачити анімацію порівняння.

Компанія Crytek комплексно підійшла до питання тесселяции в Ultra Upgrade. Вона зробила спочатку всі об'єкти придатними для тесселяції і дозволила розробникам самим вирішувати, які об'єкти на конкретному рівні варто піддати процедурі, а які ні, регулюючи тим самим баланс якості та продуктивності. Завдяки такому підходу дизайнери отримали можливість піддавати тесселяции важливі об'єкти в одному рівні і не піддавати в іншому, де вони будуть вже лише фоновими деталями.

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

Щоб зберегти необхідний рівень продуктивності при найкращій якості тесселяции, компанія Crytek використовувала спеціальні програмні шейдери Hull і Domain. Опускаючи складні технічні подробиці, варто пояснити, що основна функція Hull Shader - це обчислення ступеня розбиття тесселіруемой поверхні, що визначає рівень деталізації відображуваного на екрані об'єкта. Розумне використання цього шейдера дозволяє адаптивно застосовувати ефект тесселяції, регулюючи рівень його деталізації в залежності від відстані до об'єкта. Наприклад, якщо гравець знаходиться в трьохстах метрах від гори, то їй не потрібно тесселяціонная деталізація такого рівня, як якби гравець перебував в метрі від неї.

Огляд ефектів directx 11 ultra upgrade в crysis 2, nvidia

Натисніть, щоб побачити анімацію порівняння.

Після того, як за допомогою Hull Shader визначена до необхідна ступінь теселляція, Domain Shader може модифікувати поверхню, створивши необхідну деталізацію, або виконати інші складні функції. У пакеті Ultra Upgrade Domain Shader використовується для додавання додаткової геометричній деталізації в процесі рендеринга, в таких ситуаціях, як, наприклад, нерівна поверхня у гравця під ногами. Використовувані при цьому так звані «карти зміщення» є попередньо створеними текстурами, які зберігають інформацію про висоту кожної точки поверхні і її деталях. Накладення такої карти на поверхню створює ілюзію більш детально відпрацьованої структури і дозволяє створити дуже рельєфну і детальну поверхню з практично плоскою заготовки. Використання карт зсуву дозволило студії Crytek насичувати величезні площі новими деталями без істотного збільшення використовуваної пам'яті.

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

Огляд ефектів directx 11 ultra upgrade в crysis 2, nvidia

Це каркасне зображення демонструє складність використання додаткової деталізації при появі стороннього об'єкта з увімкненою тесселяції.

Метод параллаксного зміщення для створення рельєфу (Parallax Occlusion Mapping)

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

На зображенні нижче показано сцена зі слідами шин на землі. Дивлячись на цей анімований скріншот, може здатися, що порівнюються два різних рівня тесселяции, але для досягнення такої деталізації рельєфу методом тесселяции довелося б істотно пожертвувати продуктивністю. Простіше кажучи, чим дрібніше і докладніше деталі, тим більшою продуктивністю доводиться платити за їх тесселяцию, так як трикутники, на які розбиваються об'єкти, при цьому методі, повинні бути порівнянні за розміром з пікселями. Для областей, схильних до POM рендерингу, в реальному часі створюється ілюзія самозатінення геометрії, яку в нашому прикладі чітко видно зліва на обох сліди шин і праворуч на лівому сліді. Це помітно покращує об'ємність ландшафту і сприяє кращій інтеграції персонажа в ігрову реальність.

Огляд ефектів directx 11 ultra upgrade в crysis 2, nvidia

Натисніть, щоб побачити анімацію порівняння.

Тесселяція управляє базової геометрією сцени, в той час як параллаксного зміщення виробляє зміни на піксельному рівні відповідно до перспективою глядача. При використанні тесселяции, канава була б утворена реальної геометрією, а з методом POM вона буде оптичною ілюзією. Таким чином, в прикладі, наведеному вище, деталізація, створена методом POM, не зможе перекривати ноги персонажа, що стоїть безпосередньо за слідами від шин. Замість цього буде створюватися враження, що персонаж знаходиться на плоскій поверхні, як ніби рендеринг відбувається в версії гри під DirectX 9. З одного боку це може здатися недоліком, але з іншого неможливо собі уявити глобальну тесселяцию всієї сцени паралельно із зайнятістю GPU і CPU рендерингом всіх інших елементів гри. Тому метод параллаксного зміщення повинен використовуватися замість кращої техніки для досягнення компромісної, але злагодженої візуалізації з іншими можливостями, які пропонує Ultra Upgrade.

Об'ємність води і поліпшення візуалізації океану

Тесселяція була також використана в Crysis 2 для поліпшення якості візуалізації океану і ізольованих водних мас. Сітка, яка визначає зовнішній вигляд і рух води, тепер схильна до динамічної тесселяции, заснованої на відстані до точки її огляду. Це дозволило добитися неймовірної деталізації і повної відсутності спотворень при русі камери, характерних для використовуваної раніше статичної сітки. Крім того, за допомогою Швидких Перетворень Фур'є (БПФ) вдалося досягти реалістичною динаміки руху хвиль. БПФ - це високошвидкісний математичний метод для обробки цифрових даних, який дозволяє згенерувати реалістичні хвилі з правильною реакцією взаємодії з об'єктами оточення і ландшафтом.

Огляд ефектів directx 11 ultra upgrade в crysis 2, nvidia

Натисніть, щоб побачити анімацію порівняння.

В області рендеринга води компанія Crytek реалізувала ще кілька поліпшень. Головним серед них є підповерхневе розсіювання (Sub-Surface Scattering), яке моделює внутрішнє світіння води при розсіюванні світла всередині неї. Цей ефект досить тонкий, але він відкриває широкі горизонти для використання даної техніки на персонажах і інших ігрових об'єктах, що буде наступним великим кроком вперед при створенні освітлення в іграх.

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

Огляд ефектів directx 11 ultra upgrade в crysis 2, nvidia

Зверніть увагу на тесселяціонний сплеск, що з'являється з тесселяціонной водної маси після потрапляння в неї кулі.

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

Огляд ефектів directx 11 ultra upgrade в crysis 2, nvidia

Реальний приклад піни на хвилях у великій водній масі - джерело зображення