Tijdens zijn State of Unreal-adres op GDC 2023 kondigde Epic een uitgebreide reeks functies aan voor Unreal Engine 5.2. Maar misschien wel het meest belangrijke functie die in de bijgewerkte engine komt, heeft geen betrekking op verlichting, geometriedetail of straal traceren. Het draait allemaal om prestaties.
Inhoud
- Denk aan het stotteren
- Alles voor Fortnite
- Nog steeds veel om enthousiast over te zijn
Aanbevolen video's
Onwerkelijke motor games zijn de afgelopen jaren, terecht of ten onrechte, in verband gebracht met stotteren en haperingen. Met de nieuwe release pakt Epic het probleem eindelijk frontaal aan, dus ik dacht dat het de hoogste tijd was om uit te leggen waarom Unreal-games zo vertonen vaak stotteren, wat Epic doet om het probleem op te lossen, en wanneer we kunnen verwachten dat die inspanningen in nieuwe releases verschijnen.
Denk aan het stotteren
Unreal Engine is de afgelopen jaren synoniem geworden met stotteren. We hebben het keer op keer gezien, van Star Wars Jedi: Fallen Order naar Verdwaald naar Gotham ridders, en ze hebben allemaal hetzelfde probleem gemeen. Het stottert bij de compilatie.
Meestal hoor je over het stotteren van de shader-compilatie, maar recente bronnen van problemen zijn niet te wijten aan individuele shaders. In recente grafieken API's zoals Vulkan en DirectX 12 worden pakketten die bekend staan als Pipeline State Objects (PSO's) gebruikt om de game te vertellen over de status van je GPU. PSO's zijn bedoeld om rendering efficiënter te maken, waardoor tientallen parameters, waaronder shaders, in één pakket kunnen worden gekoppeld tussen de API en de GPU.
Ze introduceren echter een ander probleem. Omdat PSO's zoveel informatie bevatten, duurt het on-the-fly genereren van een nieuwe lang (volgens naar de documentatie van Unreal, 100 of meer milliseconden). Deze runtime PSO-creatie is de bron van stotteren, waarbij de engine een nieuwe PSO moet genereren terwijl je aan het spelen bent.
Om dit tegen te gaan, is PSO-caching beschikbaar in Unreal Engine. Dit creëert een cache van mogelijke PSO's, zodat er geen nieuwe hoeven te worden gegenereerd terwijl je de game speelt, maar ze zijn niet perfect. Zoals Epic uitlegt, kan PSO-precaching "omslachtig zijn voor grote projecten en toch gaten in de cache achterlaten die tot haperingen leiden." Daarom zul je, zelfs in games die shaders op de GPU precompileren, nog steeds af en toe stotteren (zelfs als ze maar heel weinig zijn). tussen).
Epic probeert dit proces te automatiseren door PSO's te verzamelen in plaats van het aan ontwikkelaars over te laten om rekening te houden met elke mogelijke GPU-parameter. Het is aan Epic's openbare wegenkaart, maar er is nu alleen een experimentele versie beschikbaar. In Unreal Engine 5.2 is het doel om PSO-caching te verbeteren om haperingen verder te verminderen.
Alles voor Fortnite
Er is veel om enthousiast over te zijn in Unreal Engine 5 (daar kom ik later op terug), maar we hebben nog geen duidelijk beeld van hoe de engine werkt. Tot nu toe is het alleen gebruikt in technische demo's en Fortnite tussen grote releases. Zelfs games zoals roodval die beloofden Unreal Engine 5 te gebruiken, zijn teruggegaan naar Unreal Engine 4.
Voor alle duidelijkheid: met de tools die beschikbaar zijn in Unreal Engine 4 kunnen ontwikkelaars hun games optimaliseren om stotteren te voorkomen. Atoom hartis daar een van de vele voorbeelden van. Maar de complexe staat van PSO's heeft de deur opengelaten voor haperingen tijdens het spelen, en Epic's geautomatiseerde PSO-verzameling werd pas geïntroduceerd in Unreal Engine 5.1.
Hoewel ik blij ben te zien dat Epic het probleem rechtstreeks aanpakt, hebben we de automatische PSO-cache nog niet zien werken. Naarmate er meer gecompliceerde, gevarieerde releases uit kleinere teams komen, neemt de vraag naar PSO-generatie toe en wordt de mogelijkheid van haperingen en stotteren meer aanwezig.
Dit is met name zorgwekkend voor games die bevatten raytracing, aangezien Unreal Engine 5 geen ondersteuning biedt voor PSO-caching voor raytracing ODV's. Als legt Nvidia uit, is het mogelijk om het werk van het maken van een ray tracing PSO naar meerdere threads te verdelen, maar dat betekent niet noodzakelijkerwijs dat ontwikkelaars dit proces zullen gebruiken.
Nog steeds veel om enthousiast over te zijn
We moeten nog steeds geautomatiseerde PSO-verzameling zien in Unreal Engine 5, maar er is eigenlijk heel veel om enthousiast over te zijn in de engine. Lumen in de eerste plaats. Verlichting is uiterst belangrijk voor grafische getrouwheid en dure technieken zoals path-traced lighting worden getoond Portaal RTXzijn hard op hardware. Lumen deelt het verschil.
Lumen maakt gebruik van ray tracing, maar het is een sterk geoptimaliseerde vorm van
De resultaten zijn al duidelijk. Fortnite draait op consoles met Lumen met 60 frames per seconde (fps), en het ziet er fantastisch uit op pc, zelfs in Fortnite's tekenfilmwereld.
Nanite werkt samen met Lumen. Het is een gevirtualiseerd geometriesysteem dat zeer gedetailleerde, sterk gecomprimeerde mazen bevat die tijdens het spelen kunnen worden aangepast. Het is eigenlijk een complex detailniveau (LOD) voor mazen dat automatisch wisselt tussen gedetailleerde en vage mazen, afhankelijk van waar de camera naar kijkt.
Wat nog belangrijker is, is dat Nanite op zijn eigen rendering pass draait, dus het zit niet vast in de traditionele GPU-pijplijn. Dat betekent dat je gameplay soepel blijft, zelfs wanneer Nanite de mesh-complexiteit verwisselt. Tussen Nanite en Lumen heb je twee visueel indrukwekkende, rekenkundig efficiënte functies die de lat hoger leggen voor grafische getrouwheid.
Epic deelde echter meer tijdens zijn State of Unreal-adres. Substrate is een nieuw materiaalsysteem in Unreal 5.2 met meer gedetailleerde shader-besturing. Epic demonstreerde dit met een opaal oppervlaktemateriaal, met meerdere lagen en nauwkeurige lichtbreking overal doorheen.
Het nieuwe Procedural Content Generation Framework (PCG) is ook opwindend, ook al heeft het niet direct betrekking op visuele getrouwheid. Met beperkte invoer kan de PCG nieuwe objecten genereren waarmee ontwikkelaars snel werelden kunnen bouwen met een hoog detailniveau. Dat is opwindend voor meer uitgestrekte werelden die niet op elke hoek de aanraking van een artiest nodig hebben.
Er is nog veel meer, van verbeteringen in MetaHuman tot volledige padtracering binnen Unreal Engine. Het is opwindend, maar de stotterproblemen die vaak worden geassocieerd met Unreal Engine-releases blijven bestaan. Hopelijk kunnen de vorderingen van Epic op het gebied van PSO-caching dat probleem omzeilen, maar we hebben nog niet veel Unreal Engine 5-games om te zien hoe dat systeem werkt.
Dit artikel is onderdeel van ReSpec - een doorlopende tweewekelijkse column met discussies, advies en diepgaande rapportage over de technologie achter pc-gaming.
Aanbevelingen van de redactie
- Ik probeerde de vergeten erfenis van Halo opnieuw te beleven als een Mac-franchise - en het was een ramp
- Met exclusieve pc-partnerschappen verliest iedereen
- De slechtste pc-poorten aller tijden - en waarom ze zo slecht waren
- Hoe generatieve AI games zal creëren met 'bredere, grotere en diepere werelden'
- Star Wars Jedi: Survivor wordt op Steam gebombardeerd als een 'total crap' pc-poort