Unreal Engine 5 abordează cea mai mare problemă din grafica PC

respec dt imaginea prezentată 2
Această poveste face parte din seria ReSpec a lui Jacob Roach, care acoperă lumea jocurilor și hardware-ului pentru computer.

În timpul acestuia Adresă Star of Unreal la GDC 2023, Epic a anunțat o suită largă de funcții pentru Unreal Engine 5.2. Dar poate cel mai mult caracteristica importantă care vine în motorul actualizat nu are legătură cu iluminarea, detaliile geometriei sau raze trasarea. Totul tine de performanta.

Cuprins

  • Amintește-ți de bâlbâiala
  • Totul pentru Fortnite
  • Mai sunt multe de entuziasmat

Videoclipuri recomandate

Motor ireal jocurile, pe bună dreptate sau greșit, au fost asociate cu bâlbâiala și problemele în ultimii ani. Odată cu noua lansare, Epic abordează în sfârșit problema direct, așa că m-am gândit că este timpul să detaliez de ce jocurile Unreal arată de obicei bâlbâiala, ce face Epic pentru a rezolva problema și când ne putem aștepta să vedem aceste eforturi să apară în noile versiuni.

Amintește-ți de bâlbâiala

Timp de cadru în Gotham Knights pe PC.
Aceste vârfuri de timp ale cadrului se manifestă ca bâlbâieli severe în Gotham Knights.

În ultimii ani, Unreal Engine a devenit sinonim cu bâlbâiala. L-am văzut iar și iar, de la Star Wars Jedi: Fallen Order la rătăcit la Cavalerii Gotham, și toate au aceeași problemă în comun. Este bâlbâială de compilație.

În mod obișnuit, veți auzi despre bâlbâiala compilației de shader, dar sursele recente de probleme nu se datorează shader-urilor individuale. În grafica recentă API-uri precum Vulkan și DirectX 12, pachetele cunoscute sub numele de Pipeline State Objects (PSO) sunt utilizate pentru a spune jocului despre starea GPU-ului tău. PSO-urile sunt menite să facă randarea mai eficientă, permițând zeci de parametri, inclusiv shadere, să fie interfațați între API și GPU într-un singur pachet.

Cu toate acestea, ele introduc o problemă diferită. Deoarece PSO-urile conțin atât de multe informații, generarea uneia noi din mers durează mult timp (conform la documentația lui Unreal, 100 sau mai multe milisecunde). Această creare de PSO de execuție este sursa unei bâlbâială, în care motorul trebuie să genereze un nou PSO în timp ce joci efectiv.

Pentru a combate acest lucru, memorarea în cache PSO este disponibilă în Unreal Engine. Acest lucru creează un cache de posibile PSO, astfel încât altele noi nu trebuie să fie generate în timp ce jucați jocul, dar nu sunt perfecte. După cum explică Epic, precaching-ul PSO poate „să fie împovărător pentru proiecte mari și totuși să lase lacune în cache care duc la probleme”. De aceea, chiar și în jocurile care precompilează shadere pe GPU, veți vedea ocazional o bâlbâială (chiar dacă sunt puține și departe). între).

Epic încearcă să automatizeze acest proces prin adunarea PSO-urilor, mai degrabă decât lăsând în seama dezvoltatorilor fiecare parametru GPU posibil. A inceput Harta de parcurs publică a lui Epic, dar acum este disponibilă doar o versiune experimentală. În Unreal Engine 5.2, scopul este de a îmbunătăți memorarea în cache PSO pentru a reduce și mai mult problemele.

Totul pentru Fortnite

O scenă a Fortnite care rulează în Unreal Engine 5.

Există multe de care să fim entuziasmați în Unreal Engine 5 (voi ajunge la unele dintre acestea în continuare), dar nu avem încă o imagine clară asupra modului în care funcționează motorul. Până acum, a fost folosit doar în demonstrații tehnice și Fortnite printre lansările majore. Chiar și jocuri ca Redfall care au promis că vor folosi Unreal Engine 5 au trecut înapoi la Unreal Engine 4.

Pentru a fi clar, instrumentele disponibile în Unreal Engine 4 permit dezvoltatorilor să-și optimizeze jocurile pentru a evita bâlbâiala. Inima atomicăeste unul dintre multele exemple în acest sens. Dar starea complexă a PSO-urilor a lăsat ușa deschisă la probleme în timpul jocului, iar colectarea automată a PSO-urilor Epic a fost introdusă doar în Unreal Engine 5.1.

Deși sunt fericit să văd că Epic abordează problema direct, nu am văzut încă cache-ul automat PSO în proces. Pe măsură ce echipele mai mici apar lansări mai complicate și mai variate, cererea pentru generarea PSO crește, iar posibilitatea de apariție a problemelor și bâlbâielilor devine mai prezentă.

Acest lucru este deosebit de îngrijorător pentru jocurile care includ trasarea razelor, deoarece Unreal Engine 5 nu acceptă stocarea în cache PSO pentru trasarea razelor OSP-uri. La fel de explică Nvidia, este posibil să se distribuie munca de creare a unui PSO de urmărire a razelor către mai multe fire, dar asta nu înseamnă neapărat că dezvoltatorii vor folosi acest proces.

Mai sunt multe de entuziasmat

Iluminare în Unreal Engine 5.

Încă mai trebuie să vedem o adunare automată de PSO în Unreal Engine 5, dar există de fapt o grămadă de care să fim entuziasmați în motor. În primul rând, Lumen. Iluminarea este extrem de importantă pentru fidelitatea grafică și tehnici costisitoare, cum ar fi iluminarea trasată, prezentată în Portal RTXsunt duri la hardware. Lumen împarte diferența.

Lumen folosește ray tracing, dar este o formă foarte optimizată de trasarea razelor. În loc să calculeze cu grijă sărituri infinite pe obiecte detaliate, Lumen folosește abstracțiuni pentru a calcula iluminarea pentru cea mai mare parte a scenei, doar implicit la iluminarea detaliată cea mai apropiată de aparat foto. Această optimizare permite Lumen să ruleze cu software trasarea razelor, renunțând la nevoia de a avea dedicat trasarea razelor acceleratoare pe dvs placă grafică.

Rezultatele sunt deja clare. Fortnite rulează pe console cu Lumen la 60 de cadre pe secundă (fps) și arată uimitor pe PC, chiar și în Fortnite’lumea desenelor animate.

O vitrină Nanite în Unreal Engine 5.

Nanite lucrează în tandem cu Lumen. Este un sistem de geometrie virtualizat care conține rețele foarte detaliate, foarte comprimate, care se pot ajusta în timpul jocului. Este practic un nivel complex de detaliu (LOD) pentru rețele care schimbă automat între rețele detaliate și cele vagi, în funcție de locul în care privește camera.

Mai important, Nanite rulează pe propria sa trecere de randare, așa că nu este prins în conducta tradițională de GPU. Asta înseamnă că jocul tău rămâne neted chiar și atunci când Nanite schimbă complexitatea rețelei. Între Nanite și Lumen, aveți două caracteristici impresionante din punct de vedere vizual, eficiente din punct de vedere computațional, care ridică ștacheta pentru fidelitatea grafică.

Epic a împărtășit mai multe în timpul discursului său State of Unreal, totuși. Substrate este un nou sistem de materiale în Unreal 5.2 care include un control mai detaliat al shaderului. Epic a demonstrat acest lucru cu un material de suprafață opal, prezentând mai multe straturi și refracția precisă a luminii în toate acestea.

Un material opal în Unreal Engine 5.

Noul cadru de generare a conținutului procedural (PCG) este, de asemenea, interesant, chiar dacă nu are legătură directă cu fidelitatea vizuală. Cu o intrare limitată, PCG poate genera noi obiecte pentru a permite dezvoltatorilor să construiască rapid lumi cu un nivel ridicat de detalii. Este interesant pentru lumi mai extinse care nu au nevoie de atingerea unui artist la fiecare colț.

Mai sunt multe, de la progrese în MetaHuman până la urmărirea întregii căi în Unreal Engine. Este incitant, dar problemele de bâlbâială asociate în mod obișnuit cu lansările Unreal Engine rămân. Sperăm că progresele Epic în caching-ul PSO pot ocoli această problemă, dar nu avem încă multe jocuri Unreal Engine 5 pentru a vedea cum funcționează sistemul respectiv.

Acest articol face parte din Respec – o coloană bisăptămânală care include discuții, sfaturi și rapoarte aprofundate despre tehnologia din spatele jocurilor pe computer.

Recomandările editorilor

  • Am încercat să retrăiesc moștenirea uitată a lui Halo ca franciză Mac - și a fost un dezastru
  • Cu parteneriate exclusive pentru PC, toată lumea pierde
  • Cele mai proaste porturi pentru PC din toate timpurile - și de ce au fost atât de proaste
  • Cât de generativă AI va crea jocuri cu „lumi mai largi, mai mari și mai profunde”
  • Star Wars Jedi: Survivor este bombardat de recenzii pe Steam ca fiind un port pentru PC „prostie totală”.