Unreal Engine 5 се справя с най-големия проблем в компютърната графика

respect dt показано изображение 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, докато всъщност играете.

За да се бори с това, PSO кеширането е налично в Unreal Engine. Това създава кеш от възможни 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 кеширане за проследяване на лъчи ЗОУ. Като 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. Substrate е нова материална система в Unreal 5.2, която включва по-подробен контрол на шейдъра. Epic демонстрира това с опалов повърхностен материал, демонстриращ множество слоеве и точно пречупване на светлината в тях.

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

Новата рамка за генериране на процедурно съдържание (PCG) също е вълнуваща, дори и да не е пряко свързана с визуалната прецизност. С ограничен вход, PCG може да генерира нови обекти, за да позволи на разработчиците бързо да изграждат светове с високо ниво на детайлност. Това е вълнуващо за по-обширни светове, които не се нуждаят от докосването на художник на всеки ъгъл.

Има много повече, от напредъка в MetaHuman до пълното проследяване на пътя в Unreal Engine. Вълнуващо е, но проблемите със заекването, обикновено свързани с изданията на Unreal Engine, остават. Надяваме се, че напредъкът на Epic в PSO кеширането може да заобиколи този проблем, но все още нямаме много игри на Unreal Engine 5, за да видим как работи тази система.

Тази статия е част от ReSpec – текуща двуседмична колона, която включва дискусии, съвети и задълбочени доклади за технологиите зад компютърните игри.

Препоръки на редакторите

  • Опитах се да преживея отново забравеното наследство на Halo като франчайз за Mac — и беше катастрофа
  • С ексклузивни PC партньорства всеки губи
  • Най-лошите компютърни портове на всички времена – и защо бяха толкова лоши
  • Как генеративният AI ще създава игри с „по-широки, по-големи и по-дълбоки светове“
  • Star Wars Jedi: Survivor е бомбардиран с рецензии в Steam като „пълни глупости“ за компютърен порт