Unreal Engine 5 rješava najveći problem u PC grafici

respekt dt prikazana slika 2
Ova je priča dio serije ReSpec Jacoba Roacha koja pokriva svijet PC igara i hardvera.

Tijekom svog Stanje nestvarne adrese na GDC 2023, Epic je najavio široki paket značajki za Unreal Engine 5.2. Ali možda najviše važna značajka koja dolazi u ažuriranom motoru ne odnosi se na osvjetljenje, detalje geometrije ili zraku traganje. Sve je u izvedbi.

Sadržaj

  • Sjeti se mucanja
  • Sve za Fortnite
  • Još uvijek ima puno razloga za uzbuđenje

Preporučeni videozapisi

Unreal Engine igre su se, s pravom ili ne, povezivale s mucanjem i trzajima u posljednjih nekoliko godina. S novim izdanjem, Epic se konačno uhvatio u koštac s problemom, pa sam mislio da je krajnje vrijeme da razjasnim zašto su Unreal igre tako obično pokazuju zastajkivanje, što Epic radi da riješi problem i kada možemo očekivati ​​da će se ti napori pojaviti u novim izdanjima.

Sjeti se mucanja

Vrijeme okvira u Gotham Knights na računalu.
Ovi skokovi u vremenu kadra manifestiraju se kao ozbiljno zastajkivanje u Gotham Knights.

Tijekom proteklih nekoliko godina, Unreal Engine je postao sinonim za mucanje. Vidjeli smo to uvijek iznova, od 

Star Wars Jedi: Fallen Order do Zalutao do Gotham Knights, i svima im je zajednički problem. To je kompilacijsko mucanje.

Obično ćete čuti o zastajkivanju kompilacije shadera, ali nedavni izvori problema nisu posljedica pojedinačnih shadera. U novijoj grafici API-ji poput Vulkana i DirectX 12, paketi poznati kao Pipeline State Objects (PSO) koriste se kako bi igri rekli o stanju vašeg GPU-a. PSO-ovi imaju za cilj učiniti renderiranje učinkovitijim, dopuštajući desecima parametara, uključujući shadere, povezivanje između API-ja i GPU-a u jednom paketu.

Međutim, oni uvode drugačiji problem. Budući da PSO sadrže toliko informacija, generiranje novog u hodu traje dugo (prema u Unrealovu dokumentaciju, 100 ili više milisekundi). Ova izvedba PSO-a je izvor zastajkivanja, gdje motor mora generirati novi PSO dok vi zapravo igrate.

Za borbu protiv toga, PSO caching je dostupan u Unreal Engineu. Ovo stvara predmemoriju mogućih PSO-ova tako da se novi ne moraju generirati dok igrate igru, ali oni nisu savršeni. Kao što Epic objašnjava, PSO precaching može "biti težak za velike projekte, a još uvijek ostavlja praznine u predmemoriji što dovodi do zastoja." Zbog toga ćete, čak i u igrama koje prethodno kompajliraju shadere na GPU-u, još uvijek povremeno vidjeti zastajkivanje (čak i ako ih je malo i daleko između).

Epic pokušava automatizirati ovaj proces prikupljanjem PSO-ova umjesto da prepusti programerima da uzmu u obzir svaki mogući GPU parametar. Uključeno je Epicova javna karta puta, ali sada je dostupna samo eksperimentalna verzija. U Unreal Engineu 5.2, cilj je poboljšati PSO predmemoriranje kako bi se dodatno smanjili problemi.

Sve za Fortnite

Scena pokretanja Fortnitea u Unreal Engineu 5.

Puno je razloga za uzbuđenje u Unreal Engine 5 (doći ću do nekih od toga sljedeći put), ali još nemamo jasan pogled na to kako motor radi. Do sada je korišten samo u tehničkim demonstracijama i Fortnite među glavnim izdanjima. Čak i igre poput Redfall koji su obećali iskoristiti Unreal Engine 5 vratili su se na Unreal Engine 4.

Da budemo jasni, alati dostupni u Unreal Engineu 4 omogućuju programerima da optimiziraju svoje igre kako bi izbjegli zastajkivanje. Atomsko srceje jedan od mnogih primjera toga. Ali složeno stanje PSO-ova ostavilo je otvorena vrata za zastoje tijekom igranja, a Epicovo automatizirano PSO prikupljanje uvedeno je tek u Unreal Engineu 5.1.

Iako sam sretan što vidim da Epic izravno rješava problem, još nismo vidjeli automatsku PSO predmemoriju u procesu. Kako kompliciranija, raznolikija izdanja izlaze iz manjih timova, potražnja za PSO generiranjem raste, a mogućnost zastoja i zastajkivanja postaje sve prisutnija.

Ovo je posebno zabrinjavajuće za igre koje uključuju praćenje zraka, budući da Unreal Engine 5 ne podržava PSO predmemoriranje za praćenje zraka PSO-ovi. Kao Nvidia objašnjava, moguće je distribuirati posao stvaranja PSO praćenja zraka na više niti, ali to ne znači nužno da će programeri koristiti ovaj proces.

Još uvijek ima puno razloga za uzbuđenje

Osvjetljenje u Unreal Engineu 5.

Još uvijek trebamo vidjeti automatizirano prikupljanje PSO-a u Unreal Engineu 5, ali zapravo postoji tona razloga za uzbuđenje u engineu. Prije svega, Lumen. Rasvjeta je iznimno važna za grafičku vjernost, a skupe tehnike poput osvjetljenja s tragom puta prikazane u Portal RTXteški su za hardver. Lumen dijeli razliku.

Lumen koristi praćenje zraka, ali to je vrlo optimiziran oblik praćenje zraka. Umjesto mukotrpnog izračunavanja beskonačnih odbijanja detaljnih objekata, Lumen koristi apstrakcije za izračunavanje osvjetljenja za veći dio scene, samo prema zadanim postavkama detaljne rasvjete najbliže fotoaparat. Ova optimizacija omogućuje Lumenu rad sa softverom praćenje zraka, odbacujući potrebu za posvećenošću praćenje zraka akceleratore na vašem grafička kartica.

Rezultati su već jasni. Fortnite radi na konzolama s Lumenom pri 60 sličica u sekundi (fps) i izgleda zapanjujuće na računalu, čak i u Fortnite's crtani svijet.

Prikaz Nanitea u Unreal Engineu 5.

Nanite radi u tandemu s Lumenom. To je virtualizirani geometrijski sustav koji sadrži vrlo detaljne, visoko komprimirane mreže koje se mogu prilagoditi tijekom igranja. To je u osnovi složena razina detalja (LOD) za mreže koja se automatski mijenja između detaljnih i nejasnih mreža ovisno o tome kamo kamera gleda.

Što je još važnije, Nanite radi na vlastitom prolazu za renderiranje, tako da nije uhvaćen u tradicionalni GPU cjevovod. To znači da vaše igranje ostaje glatko čak i kada Nanite mijenja kompleksnost mreže. Između Nanitea i Lumena, imate dvije vizualno impresivne, računalno učinkovite značajke koje podižu ljestvicu grafičke vjernosti.

Epic je ipak podijelio više tijekom svog obraćanja State of Unreal. Substrate je novi sustav materijala u Unreal 5.2 koji uključuje detaljniju kontrolu shadera. Epic je to demonstrirao pomoću opalnog površinskog materijala, prikazujući više slojeva i točan lom svjetlosti kroz njih.

Opalni materijal u Unreal Engineu 5.

Novi Procedural Content Generation Framework (PCG) također je uzbudljiv, čak i ako se izravno ne odnosi na vizualnu vjernost. S ograničenim unosom, PCG može generirati nove objekte kako bi programerima omogućio brzu izgradnju svjetova s ​​visokom razinom detalja. To je uzbudljivo za prostranije svjetove koji ne trebaju dodir umjetnika na svakom uglu.

Postoji tona više, od napredovanja u MetaHumanu do potpunog praćenja putanje unutar Unreal Enginea. Uzbudljivo je, ali problemi sa zastajkivanjem koji se obično povezuju s izdanjima Unreal Enginea ostaju. Nadajmo se da Epicov napredak u PSO predmemoriranju može zaobići taj problem, ali još nemamo puno Unreal Engine 5 igara da vidimo kako taj sustav radi.

Ovaj je članak dio ReSpec – dvotjedna kolumna u tijeku koja uključuje rasprave, savjete i detaljna izvješća o tehnologiji koja stoji iza PC igara.

Preporuke urednika

  • Pokušao sam ponovno proživjeti zaboravljenu ostavštinu Haloa kao franšize za Mac - i to je bila katastrofa
  • Uz ekskluzivna PC partnerstva, svi gube
  • Najgori PC priključci svih vremena — i zašto su bili tako loši
  • Kako će generativna umjetna inteligencija stvoriti igre sa 'širim, većim i dubljim svjetovima'
  • Star Wars Jedi: Survivor bombardiran je recenzijama na Steamu kao 'totalno sranje' PC port