Unreal Engine 5 tackler det største problem inden for pc-grafik

respekt dt fremhævet billede 2
Denne historie er en del af Jacob Roachs ReSpec-serie, der dækker verden af ​​pc-spil og hardware.

Under sin State of Unreal adresse på GDC 2023 annoncerede Epic en bred række funktioner til Unreal Engine 5.2. Men måske mest vigtig funktion, der kommer i den opdaterede motor, vedrører ikke belysning, geometridetaljer eller stråle sporing. Det hele handler om ydeevne.

Indhold

  • Husk stammen
  • Alt sammen til Fortnite
  • Stadig meget at være spændt på

Anbefalede videoer

Uvirkelig motor spil, med rette eller forkerte, har været forbundet med stammen og problemer i løbet af de sidste par år. Med den nye udgivelse tackler Epic endelig problemet direkte, så jeg tænkte, at det var på høje tid at nedbryde, hvorfor Unreal-spil så almindeligvis viser stammen, hvad Epic gør for at løse problemet, og hvornår vi kan forvente at se disse bestræbelser dukke op i nye udgivelser.

Husk stammen

Billedtid i Gotham Knights på pc.
Disse frame time spidser viser sig som alvorlige stammer i Gotham Knights.

I løbet af de sidste par år er Unreal Engine blevet synonymt med stammen. Vi har set det igen og igen, fra 

Star Wars Jedi: Fallen Order til Omstrejfende til Gotham Knights, og de har alle det samme problem til fælles. Det er opsamlingsstamming.

Du vil typisk høre om shader-kompileringsstamming, men de seneste kilder til problemer skyldes ikke individuelle shaders. I nyere grafik API'er som Vulkan og DirectX 12, pakker kendt som Pipeline State Objects (PSO'er) udnyttes til at fortælle spillet om tilstanden af ​​din GPU. PSO'er er beregnet til at gøre gengivelsen mere effektiv, så dusinvis af parametre, inklusive shaders, kan forbindes mellem API'en og GPU'en i en enkelt pakke.

De introducerer dog et andet problem. Fordi PSO'er indeholder så meget information, tager det lang tid at generere en ny i farten (ifølge til Unreals dokumentation, 100 eller flere millisekunder). Denne runtime PSO-oprettelse er kilden til en hakken, hvor motoren skal generere en ny PSO, mens du rent faktisk spiller.

For at bekæmpe dette er PSO-caching tilgængelig i Unreal Engine. Dette skaber en cache af mulige PSO'er, så nye behøver ikke at blive genereret, mens du spiller spillet, men de er ikke perfekte. Som Epic forklarer, kan PSO-præcaching "være byrdefuldt for store projekter og stadig efterlade huller i cachen, hvilket fører til problemer." Det er derfor, selv i spil, der prækompilerer shaders på GPU'en, vil du stadig lejlighedsvis se en stamme (selvom de er få og langt væk mellem).

Epic forsøger at automatisere denne proces ved at samle PSO'er i stedet for at overlade det til udviklere at tage højde for alle mulige GPU-parametre. Det er på Epics offentlige køreplan, men kun en eksperimentel version er tilgængelig nu. I Unreal Engine 5.2 er målet at forbedre PSO-cache for yderligere at reducere problemer.

Alt sammen til Fortnite

En scene af Fortnite, der kører i Unreal Engine 5.

Der er meget at være begejstret for i Unreal Engine 5 (jeg kommer til noget af det næste), men vi har ikke et klart overblik over, hvordan motoren fungerer endnu. Indtil videre er det kun blevet brugt i tekniske demoer og Fortnite blandt større udgivelser. Selv spil som Rødfald der lovede at udnytte Unreal Engine 5, er gået tilbage til Unreal Engine 4.

For at være klar, giver de tilgængelige værktøjer i Unreal Engine 4 udviklere mulighed for at optimere deres spil for at undgå at stamme. Atomisk hjerteer et af mange eksempler på det. Men den komplekse tilstand af PSO'er har efterladt døren åben for problemer under gameplay, og Epics automatiserede PSO-indsamling blev kun introduceret i Unreal Engine 5.1.

Selvom jeg er glad for at se Epic adressere problemet direkte, har vi endnu ikke set den automatiske PSO-cache i gang. I takt med at der kommer mere komplicerede, varierede udgivelser fra mindre hold, stiger efterspørgslen efter PSO-generering, og muligheden for hak og hakken bliver mere til stede.

Dette er især bekymrende for spil, der inkluderer strålesporing, da Unreal Engine 5 ikke understøtter PSO-cache for strålesporing PSO'er. Som Nvidia forklarer, er det muligt at distribuere arbejdet med at skabe en ray tracing PSO til flere tråde, men det betyder ikke nødvendigvis, at udviklere vil bruge denne proces.

Stadig meget at være spændt på

Belysning i Unreal Engine 5.

Vi mangler stadig at se automatiseret PSO-indsamling i Unreal Engine 5, men der er faktisk en masse at være begejstret for i motoren. Først og fremmest Lumen. Belysning er ekstremt vigtig for grafisk troskab, og dyre teknikker som stisporet belysning fremvist i Portal RTXer hårde ved hardware. Lumen deler forskellen.

Lumen udnytter strålesporing, men det er en meget optimeret form for strålesporing. I stedet for møjsommeligt at beregne uendelige afvisninger på detaljerede objekter, bruger Lumen abstraktioner til at beregne belysning for det meste af scenen, kun som standard til detaljeret belysning tættest på kamera. Denne optimering gør det muligt for Lumen at køre med software strålesporing, dropper behovet for at have dedikeret strålesporing acceleratorer på din grafikkort.

Resultaterne er allerede klare. Fortnite kører på konsoller med Lumen med 60 billeder i sekundet (fps), og det ser fantastisk ud på pc, selv i Fortnite's tegneserieverden.

En Nanite-udstilling i Unreal Engine 5.

Nanite arbejder sammen med Lumen. Det er et virtualiseret geometrisystem, der indeholder meget detaljerede, meget komprimerede masker, der kan justeres under gameplay. Det er dybest set et komplekst detaljeringsniveau (LOD) for masker, der automatisk skifter mellem detaljerede og vage masker afhængigt af, hvor kameraet kigger.

Endnu vigtigere, Nanite kører på sit eget gengivelsespas, så det er ikke fanget i den traditionelle GPU-pipeline. Det betyder, at dit gameplay forbliver glat, selv når Nanite skifter mesh-kompleksitet ud. Mellem Nanite og Lumen har du to visuelt imponerende, beregningseffektive funktioner, der hæver barren for grafisk troskab.

Epic delte dog mere under sin State of Unreal-adresse. Substrate er et nyt materialesystem i Unreal 5.2, der inkluderer mere detaljeret shader-kontrol. Epic demonstrerede dette med et opalt overflademateriale, der viser flere lag og nøjagtig lysbrydning igennem dem.

Et opalmateriale i Unreal Engine 5.

Det nye Procedural Content Generation Framework (PCG) er også spændende, selvom det ikke direkte relaterer til visuel troskab. Med begrænset input kan PCG generere nye objekter for at give udviklere mulighed for hurtigt at bygge verdener ud med et højt detaljeringsniveau. Det er spændende for mere ekspansive verdener, der ikke har brug for en kunstners berøring i hvert hjørne.

Der er masser af mere, fra fremskridt i MetaHuman til fuld stisporing i Unreal Engine. Det er spændende, men de hakkende problemer, der almindeligvis er forbundet med Unreal Engine-udgivelser, forbliver. Forhåbentlig kan Epics fremskridt inden for PSO-caching omgå dette problem, men vi har ikke mange Unreal Engine 5-spil for at se, hvordan systemet fungerer endnu.

Denne artikel er en del af ReSpec – en løbende klumme hver anden uge, der inkluderer diskussioner, råd og dybdegående rapportering om teknologien bag pc-spil.

Redaktørens anbefalinger

  • Jeg forsøgte at genopleve den glemte arv fra Halo som en Mac-franchise - og det var en katastrofe
  • Med eksklusive pc-partnerskaber taber alle
  • De værste pc-porte nogensinde - og hvorfor de var så dårlige
  • Hvordan generativ AI vil skabe spil med 'bredere, større og dybere verdener'
  • Star Wars Jedi: Survivor bliver anmeldelse-bombet på Steam som en 'total crap' pc-port