Unreal Engine 5 вирішує найбільшу проблему графіки ПК

відповідно до представленого зображення 2
Ця історія є частиною серії ReSpec Джейкоба Роуча, яка охоплює світ комп’ютерних ігор та апаратного забезпечення.

Під час свого Стан нереальної адреси на GDC 2023 Epic анонсувала широкий набір функцій для Unreal Engine 5.2. Але, мабуть, найбільше важлива функція оновленого двигуна не стосується освітлення, геометрії чи променів калькування. Вся справа в продуктивності.

Зміст

  • Згадайте заїкання
  • Все для Fortnite
  • Ще є чим порадувати

Рекомендовані відео

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

Згадайте заїкання

Час кадрів у Gotham Knights на ПК.
Ці скачки кадрового часу проявляються як сильні заїкання в Gotham Knights.

За останні кілька років Unreal Engine став синонімом заїкання. Ми бачили це знову і знову, з 

Зоряні війни Джедаї: Занепалий орден до Бродячий до Лицарі Готема, і всі вони мають ту саму спільну проблему. Це заїкання компіляції.

Ви зазвичай чуєте про затримки компіляції шейдерів, але останні джерела збоїв не пов’язані з окремими шейдерами. В останніх графіках API, такі як Vulkan і DirectX 12, пакети, відомі як Pipeline State Objects (PSO), використовуються, щоб повідомляти грі про стан вашого GPU. PSO покликані зробити візуалізацію більш ефективною, дозволяючи десяткам параметрів, включаючи шейдери, взаємодіяти між API і GPU в одному пакеті.

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

Для боротьби з цим у Unreal Engine доступне кешування PSO. Це створює кеш можливих PSO, тому не потрібно генерувати нові, поки ви граєте в гру, але вони не ідеальні. Як пояснює Epic, попереднє кешування PSO може «бути обтяжливим для великих проектів і залишати прогалини в кеші, що призводить до збоїв». Ось чому навіть в іграх, які попередньо компілюють шейдери на графічному процесорі, ви все одно час від часу спостерігатимете затримки (навіть якщо їх небагато й далеко). між).

Epic намагається автоматизувати цей процес, збираючи PSO, а не залишаючи розробникам рахувати кожен можливий параметр GPU. Це на Публічна дорожня карта Epic, але зараз доступна лише експериментальна версія. У Unreal Engine 5.2 метою є покращення кешування PSO, щоб ще більше зменшити затримки.

Все для Fortnite

Сцена роботи Fortnite в Unreal Engine 5.

У Unreal Engine 5 є багато чого, що цікавить (я зупинюся на цьому далі), але ми ще не маємо чіткого уявлення про те, як працює двигун. Поки що він використовувався лише в технічних демонстраціях і Fortnite серед основних випусків. Навіть такі ігри Редфол які обіцяли використовувати Unreal Engine 5, перейшли на Unreal Engine 4.

Щоб було зрозуміло, інструменти, доступні в Unreal Engine 4, дозволяють розробникам оптимізувати свої ігри, щоб уникнути заїкань. Атомне серцеє одним із багатьох прикладів цього. Але складний стан PSO залишає двері відкритими для збоїв під час гри, і автоматизований збір PSO Epic був представлений лише в Unreal Engine 5.1.

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

Це особливо стосується ігор, які включають трасування променів, оскільки Unreal Engine 5 не підтримує кешування PSO для трасування променів PSO. як Nvidia пояснює, можна розподілити роботу зі створення трасування променів PSO на кілька потоків, але це не обов’язково означає, що розробники використовуватимуть цей процес.

Ще є чим порадувати

Освітлення в Unreal Engine 5.

Нам ще потрібно побачити автоматичний збір PSO в Unreal Engine 5, але насправді в движку є багато чого, чим можна порадувати. Перш за все, Lumen. Освітлення надзвичайно важливе для графічної точності, і дорогі методи, як-от освітлення з трасуванням шляху, демонструються в Портал RTXжорсткі щодо обладнання. Люмен розділяє різницю.

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

Результати вже очевидні. Fortnite працює на консолях із Lumen зі швидкістю 60 кадрів на секунду (fps), і виглядає приголомшливо на ПК, навіть у Fortnite'світ мультфільмів.

Вітрина Nanite в Unreal Engine 5.

Nanite працює в парі з Lumen. Це віртуалізована геометрична система, яка містить дуже деталізовані, сильно стислі сітки, які можна коригувати під час гри. По суті, це складний рівень деталізації (LOD) для сіток, який автоматично перемикається між детальними та розпливчастими сітками залежно від того, куди дивиться камера.

Що ще важливіше, Nanite працює на власному проході візуалізації, тому він не втягується в традиційний конвеєр GPU. Це означає, що ваш ігровий процес залишається плавним, навіть коли Nanite змінює складність сітки. Крім Nanite і Lumen, у вас є дві візуально вражаючі, обчислювально ефективні функції, які піднімають планку графічної точності.

Однак Epic поділився більше під час виступу State of Unreal. Субстрат — це нова система матеріалів у Unreal 5.2, яка включає більш детальне керування шейдерами. Epic продемонструвала це з опаловим поверхневим матеріалом, демонструючи кілька шарів і точне заломлення світла в них.

Опаловий матеріал в Unreal Engine 5.

Новий Procedural Content Generation Framework (PCG) також є захоплюючим, навіть якщо він безпосередньо не стосується візуальної точності. З обмеженим введенням PCG може генерувати нові об’єкти, щоб дозволити розробникам швидко будувати світи з високим рівнем деталізації. Це захоплююче для більш просторих світів, які не потребують дотику художника на кожному розі.

Є багато іншого, від прогресу в MetaHuman до повного трасування шляху в Unreal Engine. Це захоплююче, але проблеми з заїканням, які зазвичай пов’язані з випусками Unreal Engine, залишаються. Сподіваємось, досягнення Epic у кешуванні PSO зможуть обійти цю проблему, але у нас ще не так багато ігор на Unreal Engine 5, щоб побачити, як ця система працює.

Ця стаття є частиною ReSpec – безперервна колонка, що виходить раз на два тижні та містить обговорення, поради та детальні звіти про технології, що стоять за комп’ютерними іграми.

Рекомендації редакції

  • Я спробував знову пережити забуту спадщину Halo як франшизу Mac — і це була катастрофа
  • Завдяки ексклюзивному партнерству з ПК програють усі
  • Найгірші порти ПК усіх часів — і чому вони були такими поганими
  • Як генеративний штучний інтелект створить ігри з «ширшими, більшими та глибшими світами»
  • Star Wars Jedi: Survivor критикують Steam як «цілковитий лайно» для ПК