Unreal Engine 5 takler det største problemet innen PC-grafikk

respek dt utvalgt bilde 2
Denne historien er en del av Jacob Roachs ReSpec-serie, som dekker verden av PC-spilling og maskinvare.

Under sin State of Unreal adresse på GDC 2023 kunngjorde Epic en omfattende pakke med funksjoner for Unreal Engine 5.2. Men kanskje mest viktig funksjon som kommer i den oppdaterte motoren er ikke relatert til belysning, geometridetaljer eller stråle sporing. Alt handler om ytelse.

Innhold

  • Husk stammingen
  • Alt for Fortnite
  • Fortsatt mye å glede seg over

Anbefalte videoer

Uvirkelig motor spill, med rette eller urette, har blitt assosiert med stamming og problemer de siste årene. Med den nye utgivelsen takler Epic endelig problemet direkte, så jeg tenkte at det var på høy tid å bryte ned hvorfor Unreal-spill så viser ofte stamming, hva Epic gjør for å løse problemet, og når vi kan forvente å se denne innsatsen dukke opp i nye utgivelser.

Husk stammingen

Bildetid i Gotham Knights på PC.
Disse frame time toppene manifesterer seg som alvorlig stamming i Gotham Knights.

I løpet av de siste årene har Unreal Engine blitt synonymt med stamming. Vi har sett det om og om igjen, fra 

Star Wars Jedi: Fallen Order til Stray til Gotham Knights, og de har alle samme problem til felles. Det er samlingsstamming.

Du vil vanligvis høre om stamming i shader-samling, men nylige kilder til problemer skyldes ikke individuelle shaders. I nyere grafikk APIer som Vulkan og DirectX 12, pakker kjent som Pipeline State Objects (PSOs) brukes til å fortelle spillet om tilstanden til GPUen din. PSOer er ment å gjøre gjengivelsen mer effektiv, slik at dusinvis av parametere, inkludert shaders, kan kobles sammen mellom API og GPU i en enkelt pakke.

Imidlertid introduserer de et annet problem. Fordi PSO-er inneholder så mye informasjon, tar det lang tid å generere en ny på farten (ifølge til Unreals dokumentasjon, 100 eller flere millisekunder). Denne kjøretids-PSO-opprettelsen er kilden til en hakking, der motoren må generere en ny PSO mens du faktisk spiller.

For å bekjempe dette er PSO-bufring tilgjengelig i Unreal Engine. Dette skaper en cache av mulige PSO-er, slik at nye ikke trenger å genereres mens du spiller spillet, men de er ikke perfekte. Som Epic forklarer, kan PSO-precaching "være tyngende for store prosjekter, og fortsatt etterlate hull i hurtigbufferen som kan føre til problemer." Det er derfor, selv i spill som forhåndskompilerer shaders på GPUen, vil du fortsatt av og til se en hakking (selv om de er få og langt unna mellom).

Epic prøver å automatisere denne prosessen ved å samle PSOer i stedet for å overlate til utviklere å ta hensyn til alle mulige GPU-parametere. Det er på Epics offentlige veikart, men bare en eksperimentell versjon er tilgjengelig nå. I Unreal Engine 5.2 er målet å forbedre PSO-bufring for å redusere problemer ytterligere.

Alt for Fortnite

En scene av Fortnite som kjører i Unreal Engine 5.

Det er mye å være begeistret for i Unreal Engine 5 (jeg kommer til noe av det neste), men vi har ikke et klart syn på hvordan motoren fungerer ennå. Så langt har den bare blitt brukt i tekniske demoer og Fortnite blant store utgivelser. Selv spill som Rødt fall som lovet å utnytte Unreal Engine 5 har gått tilbake til Unreal Engine 4.

For å være tydelig lar verktøyene som er tilgjengelige i Unreal Engine 4 utviklere optimalisere spillene sine for å unngå stamming. Atomisk hjerteer ett av mange eksempler på det. Men den komplekse tilstanden til PSO-er har latt døren stå åpen for problemer under spillingen, og Epics automatiserte PSO-samling ble bare introdusert i Unreal Engine 5.1.

Selv om jeg er glad for å se Epic ta opp problemet direkte, har vi ikke sett den automatiske PSO-bufferen i prosess ennå. Etter hvert som mer kompliserte, varierte utgivelser kommer ut fra mindre team, øker etterspørselen etter PSO-generering, og muligheten for hakk og hakking blir mer tilstede.

Dette er spesielt aktuelt for spill som inkluderer strålesporing, som Unreal Engine 5 ikke støtter PSO-bufring for strålesporing PSOer. Som Nvidia forklarer, er det mulig å distribuere arbeidet med å lage en ray tracing PSO til flere tråder, men det betyr ikke nødvendigvis at utviklere vil bruke denne prosessen.

Fortsatt mye å glede seg over

Belysning i Unreal Engine 5.

Vi trenger fortsatt å se automatisert PSO-samling i Unreal Engine 5, men det er faktisk massevis å være begeistret for i motoren. Først og fremst Lumen. Belysning er ekstremt viktig for grafisk troverdighet, og dyre teknikker som banesporet belysning vises i Portal RTXer tøffe med maskinvare. Lumen deler forskjellen.

Lumen utnytter strålesporing, men det er en svært optimalisert form for strålesporing. I stedet for møysommelig å beregne uendelige sprett på detaljerte objekter, bruker Lumen abstraksjoner for å beregne belysning for det meste av scenen, bare standard til detaljert belysning nærmest kamera. Denne optimaliseringen lar Lumen kjøre med programvare strålesporing, grøfting behovet for å ha dedikert strålesporing akseleratorer på din grafikkort.

Resultatene er allerede klare. Fortnite kjører på konsoller med Lumen med 60 bilder per sekund (fps), og det ser fantastisk ut på PC, selv i Fortnite'sin tegneserieverden.

Et Nanite-utstillingsvindu i Unreal Engine 5.

Nanite fungerer sammen med Lumen. Det er et virtualisert geometrisystem som inneholder svært detaljerte, svært komprimerte masker som kan justeres under spilling. Det er i bunn og grunn et komplekst detaljnivå (LOD) for masker som automatisk bytter mellom detaljerte og vage masker avhengig av hvor kameraet ser.

Enda viktigere, Nanite kjører på sitt eget gjengivelsespass, så det er ikke fanget opp i den tradisjonelle GPU-rørledningen. Det betyr at spillingen din forblir jevn selv når Nanite bytter ut mesh-kompleksiteten. Mellom Nanite og Lumen har du to visuelt imponerende, beregningseffektive funksjoner som hever standarden for grafisk troskap.

Epic delte imidlertid mer under sin State of Unreal-adresse. Substrate er et nytt materialsystem i Unreal 5.2 som inkluderer mer detaljert skyggekontroll. Epic demonstrerte dette med et opalt overflatemateriale, som viser frem flere lag og nøyaktig lysbrytning gjennom dem.

Et opalmateriale i Unreal Engine 5.

Det nye Procedural Content Generation Framework (PCG) er også spennende, selv om det ikke er direkte relatert til visuell troskap. Med begrenset input kan PCG generere nye objekter for å la utviklere raskt bygge ut verdener med et høyt detaljnivå. Det er spennende for mer ekspansive verdener som ikke trenger berøring av en artist i hvert hjørne.

Det er mye mer, fra fremskritt i MetaHuman til full banesporing i Unreal Engine. Det er spennende, men hakkingsproblemene som vanligvis er forbundet med Unreal Engine-utgivelser, gjenstår. Forhåpentligvis kan Epics fremskritt innen PSO-caching omgå dette problemet, men vi har ikke mange Unreal Engine 5-spill for å se hvordan systemet fungerer ennå.

Denne artikkelen er en del av ReSpec – en pågående toukentlig spalte som inkluderer diskusjoner, råd og dybderapportering om teknologien bak PC-spilling.

Redaktørenes anbefalinger

  • Jeg prøvde å gjenoppleve den glemte arven etter Halo som en Mac-franchise - og det var en katastrofe
  • Med eksklusive PC-partnerskap taper alle
  • De verste PC-portene gjennom tidene - og hvorfor de var så dårlige
  • Hvordan generativ AI vil skape spill med "bredere, større og dypere verdener"
  • Star Wars Jedi: Survivor blir anmeldelsesbombet på Steam som en "total crap" PC-port