Devs -urile de motor Unreal sugerează o soluție potențială la bâlbâiala de compilare shader în jocuri

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

Compilarea shader ar putea fi în curând un lucru al trecutului

Complet de nejustificat: Unreal Engine este una dintre cele mai populare soluții de middleware pentru dezvoltarea jocurilor și a altor experiențe interactive, în special pe PC și Mac. Creat de Epic Games, este de asemenea notoriu pentru problemele de bâlbâială și performanță grafică. Cu toate acestea, dezvoltatorii lucrează activ pentru a rezolva aceste probleme o dată pentru totdeauna.

Dacă ați jucat un joc lansat în ultimii ani, probabil sunteți familiarizați cu experiența frustrantă a Shader Compilation Stutter. Shaders sunt programe mici executate direct de GPU pentru a gestiona diverse sarcini necesare pentru a reda grafica 3D complexă, bogată în caracteristici. Atunci când un motor de redare trebuie să compileze un nou shader chiar înainte de a trage o scenă pe ecran, totul se oprește în timp ce șoferul GPU finalizează sarcina, rezultând efectul infam de bâlbâială de care suferă de multe jocuri moderne.

Shader Stuttering a devenit atât de răspândită încât Epic Games lucrează acum pentru a elimina acest flagrant multi-platformă de grafică în timp real. Dezvoltatorii care lucrează la motorul Unreal au explicat recent importanța compilării shader și a cauzelor principale ale bâlbâirii. Kenzo ter Elst, Daniele Vettorel și alți ingineri de jocuri epice au dezvoltat un nou sistem numit PSO PCACHING, care, în teorie, ar putea face ca Shader să bâlbâie un lucru din trecut.

Obiectele de stat ale conductei (PSO) sunt o metodă folosită de GPU -urile moderne pentru a grupa shaders și alte setări grafice pentru o cerere de tragere într -o singură „unitate”, au explicat dezvoltatorii Epic, permițându -le să fie executate mai eficient. Aceste PSO -uri pot fi construite în orice moment și, teoretic, pot fi efectuate pentru a optimiza compilarea shader -ului, împiedicând bâlbâiala în timpul redării.

Înainte de Unreal Engine 5.2, Epic a recomandat dezvoltatorilor să împacheteze cele mai frecvente PSO -uri într -un cache, permițând jocurilor să precompileze cea mai mare parte a codului shader în timpul ecranelor de încărcare. Cu toate acestea, transformarea shaders-ului Bytecode în codul binar specific GPU rămâne solicitant din punct de vedere al calculului, iar cache-ul necesită adesea actualizări frecvente în mediile în continuă evoluție ale jocurilor moderne.

Potrivit dezvoltatorilor de motoare Unreal, prestația PSO ar putea elimina bâlbâiala cauzată de această problemă. Motorul ar analiza un obiect încărcat recent și ar selecta un „subset” specific al tuturor PSO -urilor posibile necesare pentru a -l reda. În timp ce acest subset ar fi în continuare mai mare decât PSO -urile reale utilizate pentru redare, acesta ar fi mult mai mic decât milioanele de combinații de redare posibile.

Odată cu prestația PSO, precompilarea ar fi semnificativ mai rapidă, introducând doar o întârziere mică și neobservată de doar câteva cadre. Dezvoltatorii epice susțin că acest sistem poate „elimina” compilarea PSO bâlbâind pentru materiale și funcționează perfect cu conținut generat de utilizator. Cu toate acestea, umbrele globale care nu sunt asociate cu materiale-cum ar fi cele utilizate pentru efecte post-procesare precum estomparea mișcării-ar putea provoca în continuare cazuri rare de bâlbâială pentru prima dată când sunt compilate. Inginerii Unreal Engine lucrează activ și pentru a rezolva această problemă.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.