Menu

Ultra Upgrade в Crysis 2 підвищує стандарти DirectX 11

Графічне меню дозволяє користувачам налаштовувати попередні установки якості, виставляти рівень розмиття рухомих об'єктів і включати використання текстур високого дозволу, якщо вони встановлені
Ultra Upgrade в Crysis 2 повышает стандарты DirectX 11
Це каркасне зображення демонструє складність використання додаткової деталізації при появі стороннього об'єкта з включеною тесселяціей.
Ultra Upgrade в Crysis 2 повышает стандарты DirectX 11
Зверніть увагу на тесселяционный сплеск, з'являючий з тесселяционной водної маси після попадання в неї кулі.
Ultra Upgrade в Crysis 2 повышает стандарты DirectX 11
Реальний приклад піни на хвилях у великій водної маси
Ultra Upgrade в Crysis 2 повышает стандарты DirectX 11
Зверніть увагу на акуратні тіні від листя дерева і ефекти затінення на частинках і диму над солдатом.
Ultra Upgrade в Crysis 2 повышает стандарты DirectX 11
Реальний приклад ефекту Bokeh Верхній ряд демонструє відмінність між освітленням з ефектами SSAO, SSDO і SSDO з одним додатковим відскоком світла. Нижній ряд показує ці відмінності більш докладно. При ефекті SSAO всі тіні повністю сірі, у той час як при використанні SSDO видно червоні і сині тіні. Два нижніх зображення праворуч демонструють ефект додаткового непрямого відскоку світла. Зверніть увагу на жовтий « »

Шутер Crysis 2 вперше з'явився на полицях магазинів 22 березня і став першою мультиплатформному грою компанії Crytek, у створенні якої брали участь всі студії розробника з різних частин світу. Через те що перед розробниками спочатку була встановлена висока планка, яка вимагає, щоб всі три версії гри були однаково гарні, компанія Crytek не встигла до запланованої дати виходу гри впровадити в Crysis 2 підтримку переваг DirectX 11. Після офіційного релізу розробники змогли повноцінно зосередитися на ПК-версії гри, в результаті чого, через кілька місяців після офіційного виходу гри, побачила світ найбільш вичерпна і сучасна реалізація стандарту DirectX 11, небачена раніше в жодній іншій відеогрі.

Реалізація DX11 з'явилася у вигляді безкоштовного патча, що складається з трьох частин для поліпшення графіки, який називається Crysis 2 DirectX 11 Ultra Upgrade і важить 2.32GB. Він пропонує все багатство графічних удосконалень як для DirectX 9, так і для DirectX 11, забезпечує тесселяцію DirectX 11 і включає в себе пакет текстур у високому дозволі, який сумісний тільки з графічними картами з не менш ніж 1 ГБ відеопам'яті на борту.

Вищезазначена апаратна тесселяція 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, необхідно включити в меню гри відповідну опцію. Налаштування на зображенні вище з'являються після установки пакета Ultra Upgrade і дозволяють користувачам включати і вимикати наступні ефекти:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Реалістичні тіні зі змінними напівтінями

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

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

Розмиття руху в розширеному динамічному діапазоні

Пакет Ultra Upgrade також привносить в гру згладжування в часі у високому дозволі, під яким зазвичай розуміють розмиття руху. Можливості нової версії DirectX дозволяють створити більш якісне розмиття порівняно з попередніми версіями, в яких під розмиття могли потрапити зайві області, такі як руки і зброю персонажа, що продемонстровано на прикладі нижче.

Часткове розмиття та затінення

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

Ефект розмиття фону на базі спрайтів Bokeh

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

З-за обмежень DirectX 9, розробники Crytek раніше були змушені обмежити число расфокусированных областей у сцені, щоб мінімізувати ефекти недостатньою частоти дискретизації, які виявляються, коли ренедринг виробляється в більш низькій роздільній здатності, а результат «розтягується», щоб заповнити весь екран. В результаті цього сильно страждала якість зображення, яке здавалося незграбним або розпливатися, оскільки інформація, що міститься в одному пікселі, поширювалася на кілька сусідніх пікселів. Виведення зображення з низьким дозволом на великий екран дає такий же ефект.

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

Розсіяне затінення в просторі екрану і контактні тіні

SSAO, або розсіяне затінення в екранному просторі, (Screen Space Ambient Occlusion) було прекрасним доповненням до базової системи освітлення в оригінальному Crysis. Тепер Crytek представляє вдосконалену версію цієї техніки під назвою Screen Space Directional Occlusion (SSDO).

SSAO надає сцен відчуття більшої глибини за рахунок розрахунку затінення на основі глибини зображення та інтенсивності розсіяного освітлення в сцені. Ефект досягається за рахунок того, що піксельний шейдер виробляє вибірку значень глибин для набору точок на екрані навколо поточного пікселя і намагається обчислити ступінь «видимості" поточного пікселя з кожної з вибраних точок. На практиці ефект не завжди працював як очікувалося, так як його алгоритм досить ресурсномісткий для GPU, але там де він дійсно працював сцени знаходили нову глибину за рахунок затінення западин, отворів і поверхонь, що знаходяться поблизу один від одного.

На жаль, метод SSAO абсолютно не враховує спрямованість навколишнього світу. Тому алгоритм був доопрацьований і перетворений в метод затінення на основі спрямованого світла в екранному просторі (Screen Space Directional Occlusion). SSDO вимагає зовсім трохи додаткової обчислювальної потужності, але забезпечує чудовий результат. Він враховує напрямок падаючого світла і дозволяє розрахувати його однократне дифузне відображення для ще більшого реалізму. Ефект роботи методу SSDO продемонстрований на анімованому скріншоті нижче на прикладі акуратних реалістичних тіней, похилої мішками з піском і щебенем. Реалізм і глобальне освітлення закритих сцен, таких як офісні приміщення, також значно покращені, завдяки вдосконаленому самозатенению, крім того алгоритм SSDO дозволяє враховувати колір відбитого освітлення - ефект, який іноді можна спостерігати на відкритих сценах.

Локальні відображення в реальному часі

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

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

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

Текстури з високою роздільною здатністю

Новий набір текстур вагою 1.7GB покращує якість вихідного зображення, але використовує в чотири рази більше пам'яті в процесі гри. Крім того, користувачам знадобиться 64-біт операційна система і відеокарта з 1GB пам'яті, тільки щоб активувати цей набір.

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

Висновок

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

|