Az Unreal Engine 5.8 javítja a PC-s játékok egyik legmaradandóbb bosszúságát: a shader összeállítás akadozását. Az Epic Games beépítette a Microsoft DirectX Advanced Shader Delivery-t (ASD) a motorba, így a shader-ek fordítását a játékos saját hardveréről a felhőbe helyezi át, mielőtt a játék elérné a lemezüket.
Kulcs elvitelek
- ✓Az Unreal Engine 5.8 átveszi a Microsoft DirectX Advanced Shader Delivery (ASD) rendszerét
- ✓A Shader összeállítása a játékos eszközéről a felhőre vált az indítás előtt
- ✓A Shadereket egy állapotobjektum adatbázisba csomagolják, és egy előre lefordított árnyékoló adatbázisba konvertálják
- ✓Az előre összeállított shadereket a játékkal együtt szállíthatjuk, így az első futtatáskor már használatra készen tölthetők be
- ✓A fejlesztőknek aktívan támogatniuk kell az ASD-t, hogy a játékosok csökkentsék a dadogást
Mindenki számára, aki egy vadonatúj kiadáson csak azért ült, hogy megnézze, ahogy a képkockasebesség minden új effektus vagy ellenség jelenik meg a képernyőn, ez egy jelentős változás. A Shader dadogása akkor fordul elő, amikor egy játéknak menet közben, munkamenet közben kell összeállítania a grafikus utasításokat, mivel a megfelelő shader nincs előre elkészítve. Ez az egyik leggyakoribb panasz a modern PC-s kiadásokkal szemben, és az Unreal Engine, annak ellenére, hogy az iparág legnagyobb címei közül került ki, nem volt immunis.
Hogyan változtatja meg az Unreal Engine 5.8 a shader kezelését
Ahelyett, hogy a játékos CPU-ját és GPU-ját hagyná a shader-ek fordítására játék közben, az ASD ezt a terhelést egy felhő alapú fordítási folyamatra helyezi át az indítás előtt. Az Epic Games egy cím árnyékoló adatait egy úgynevezett State Object Database-be vagy SODB-be csomagolja. Ezt az adatbázist ezután felhőalapú fordításon keresztül futtatják egy előre lefordított Shader Database vagy PSDB létrehozásához.
A PSDB magával a játékkal együtt szállítható, ami azt jelenti, hogy a használatra kész shaderek másolata már az első indításkor ott van a játékos eszközén. Ahelyett, hogy valós időben állítaná össze a shadereket, a motor egyszerűen előhívja azokat az előre elkészítetteket, amelyekre szüksége van. Az Advanced Shader Delivery által kijavítani igyekszik ez a különbség, vagyis az egyszeri fordítás a felhőben, illetve a több millió számítógépen történő többszöri fordítás.
| Lépés | Mi történik |
|---|---|
| Shader adatrögzítés | A játék shader utasításai állapotobjektum-adatbázisba (SODB) csomagolva |
| Felhő összeállítás | A SODB az eszközön kívül egy előre lefordított árnyékoló adatbázisba (PSDB) dolgozott fel |
| Elosztás | A PSDB-t a játékfájlokkal együtt szállítjuk a lejátszó eszközére |
| Első futás | Az Engine megkeresi a használatra kész shadereket ahelyett, hogy helyben fordítaná |
Miért olyan makacs probléma a shader dadogás?
Az Unreal Engine 5.x ága már most is az egyik legigényesebb motor, amely nagy teljesítményű grafikus kártyákra támaszkodik, hogy az ismert világítást, geometriai részleteket és effektusokat biztosítsa. Még egy csúcskategóriás GPU is akadozhat rosszul, ha a shadereket nem fordítják le és gyorsítótárazzanak megfelelően előre, mert a hardver hirtelen többletmunkára kényszerül a képkocka közepén, ahelyett, hogy egyszerűen renderelné azt, amit már tud, hogyan kell rajzolni.
Emiatt a shader összeállítása az elmúlt néhány évben visszatérő beszédtéma lett a főbb Unreal Engine-kiadások körül, függetlenül attól, hogy az alapul szolgáló hardver mennyire képes. A korábbi enyhítési kísérletek, beleértve a shader-ek gyorsítótárba helyezését a képernyők betöltésekor vagy a játék első néhány percében, segítettek egyes címeknél, de soha nem oldották meg a problémát. Az ASD másképpen közelíti meg ezt azáltal, hogy a fordítási terhek nagy részét teljesen eltávolítja a játékos gépéről, ahelyett, hogy egyszerűen átütemezné, amikor a teher kifizetésre kerül.
Az Unreal Engine 5-re épített játékok, köztük az olyan nagy horderejű projektek, mint a RuneScape 4, amelyet a Jagex az Unreal Engine-ben újjáépít, és a CD Projekt Red döntése, hogy a Witcher 4-et Unreal Engine 5-re építi, pontosan azok a nagy, vizuálisan ambiciózus kiadások, ahol a dadogás a történelem során a legszembetűnőbb volt. Egy javítás, amely valóban csökkenti azt, az egyetlen címen túlmutató következményekkel is jár.

Mit jelent ez a fejlesztők és a játékosok számára
A bökkenő az, hogy az Advanced Shader Delivery nem minden Unreal Engine 5.8 projektnél automatikus. A fejlesztőknek dönteniük kell, hogy támogatják-e, a shader-folyamatokat a SODB és PSDB munkafolyamat köré kell építeniük, és el kell küldeniük az előre összeállított adatbázist a játékukkal. Azok a stúdiók, amelyek kihagyják ezt a lépést, nem tapasztalnak változást, és a játékosok továbbra is ugyanazokkal a fordítási nehézségekkel szembesülnek majd, mint korábban.
Azoknál a stúdióknál, amelyek ezt alkalmazzák, a felfelé mutató túlmutat a simább képléptetésen. Mivel az összeállítás a felhőben, nem pedig az eszközön történik, kevesebb CPU-időt és energiát kell költeni az indításkor, ami gyorsabb betöltési időt és kevesebb képkocka kiesését eredményezi, amint a játék elkezdődik. Ez hasznos hatékonyságnövekedést jelent a csúcskategóriás játékberendezésektől a kisebb teljesítményű, azonos címet futtató laptopokig.
Tim Sweeney, az Epic főnökének a mesterséges intelligencia által vezérelt játékfejlesztésre vonatkozó előrejelzései arra utalnak, hogy egy stúdió aktívan próbálja racionalizálni a gyártási folyamatokat, és az Advanced Shader Delivery illeszkedik ehhez a szélesebb mintához, amely csökkenti a súrlódást a fejlesztés és a játékos tényleges élménye között. Az, hogy az ASD szabványos funkcióvá válik-e az Unreal Engine 5 játékaiban, nagymértékben függ attól, hogy milyen gyorsan utolérik a köztes szoftverek és a stúdióeszközök, hogy támogassák, és hogy az Epic mekkora marketingsúllyal rendelkezik az elfogadás ösztönzésében.
Gyakran ismételt kérdések
Mi az az Advanced Shader Delivery az Unreal Engine 5.8-ban?
Az Advanced Shader Delivery vagy az ASD egy Microsoft DirectX szolgáltatás, amelyet az Unreal Engine 5.8 már támogat. A shader összeállítást a játékos számítógépéről a felhőbe helyezi, helyette egy előre összeállított shader adatbázist szállít a játékhoz.
Az Unreal Engine 5.8 minden játékban kijavítja a dadogást?
Csak azokban a játékokban, ahol a fejlesztők az ASD bevezetését választják. Az Unreal Engine 5.8 elérhetővé teszi a funkciót, de a stúdióknak továbbra is e köré kell építeniük a shader-csatornát, és el kell küldeniük az előre összeállított adatbázist a játékosok számára.
Az Advanced Shader Delivery hatékony grafikus kártyát igényel?
Az Unreal Engine 5 már erős hardvert igényel a vizuális jellemzői miatt, de magát az ASD-t úgy tervezték, hogy csökkentse a helyi fordítási terhelést, semmint növelje azt, így inkább enyhítenie kell a CPU-kra és a GPU-kra nehezedő nyomást, nem pedig növeli a hardverkövetelményeket.
Miben különbözik ez a korábbi shader-gyorsítótárazási módszerektől?
A korábbi javítások általában a betöltési képernyők vagy a játékos saját eszközén való korai játék közben fordították a shadereket. Az ASD ehelyett a megjelenés előtt a felhőben állítja össze a shadereket, és a kész adatbázist a játékkal együtt szállítja, szinte teljesen elkerülve az eszközön történő fordítást.