Door Daan van Monsjou

Nieuwsredacteur

'Next-gen wordt fantastisch'

Interview met Billy Khan van id Software

10-07-2020 • 06:00

96

Singlepage-opmaak

Het afschaffen van megatextures

Met de introductie van id Tech 7 heeft id Software megatextures permanent met pensioen gestuurd. Megatextures maakten hun debuut in id Tech 5 en Rage. Deze techniek maakte het mogelijk om met relatief weinig videogeheugen meer unieke textures te gebruiken in games. Toentertijd bleek het een uitkomst, maar inmiddels bleek het vooral een beperkende factor. In id Tech 7 heeft id Software megatextures dan ook ingeruild voor een geometry streaming-systeem. Dit nieuwe systeem leidt tot betere prestaties en tot textures van hogere kwaliteit.

Wat zijn megatextures?

Megatextures zijn exact wat de naam doet vermoeden. In plaats van dat er verschillende losse textures voor een gamewereld worden gebruikt, worden alle benodigde textures voor een frame samengevoegd in één enorm exemplaar. In de praktijk is een megatexture dus een soort gigantische textureatlas, die bestaat uit diverse kleine textures. Het voordeel hiervan is dat megatextures aanzienlijk minder videogeheugen vergen dan een systeem met losse exemplaren.

Doom (2016) gebruikt bijvoorbeeld enkele megatextures met resoluties van 16k x 8k pixels, die worden toegewezen aan het geheugen van de gpu. Deze megatextures zijn opgedeeld in blokjes van 128x128 pixels. Deze blokjes kunnen gevuld worden met de textures die nodig zijn om een frame te renderen. Blokjes die niet langer nodig zijn, worden uit de megatexture gehaald om ruimte te maken voor nieuwe blokjes. Hieronder staat bijvoorbeeld een uitsnede van een megatexture uit Doom (2016), die aan Tweakers is verstrekt door Adrian Courrèges.

Megatexture Doom 2016 met dank aan Adrian Courreges
Een uitsnede van een megatexture uit Doom (2016), bestaande uit 'blokjes' met textures van 128x128 pixels.
Afbeelding met dank aan Adrian Courrèges

“Megatextures waren een fantastisch concept", vertelt Khan. "Het was heel gangbaar in het tijdperk van de Xbox 360 en PS3. We hadden toen heel weinig videogeheugen, maar we wilden wel mooie visuals krijgen, ondanks de kleine hoeveelheid vram. Dat is heel moeilijk te realiseren.” Met megatextures was dit op de beperkte hardware van de vorige generatie dus toch mogelijk.

Nadelen

Er zitten wel veel nadelen aan het gebruik van deze techniek. Allereerst verlies je enorm veel detail bij gebruik van megatextures, doordat compressie meermaals wordt toegepast, vervolgt Khan.

“Je begint met een texture, maar vervolgens verklein je deze naar een gangbaardere grootte. Dan wordt het bestand gecomprimeerd naar jpeg, waarna het gestreamd kan worden naar de game. Eenmaal in het spel wordt het bestand omgezet in een formaat dat gelezen kan worden door de gpu. Je verliest door al deze stappen een hoop detail van de ongerepte texture waarmee je begon. De textures worden modderiger, je verliest natuurgetrouwheid."

Doom (2016) vs. Doom Eternal textures
De textures in Doom (2016) waren soms 'modderig' door gebruik van megatextures

Niet alleen gaat de kwaliteit achteruit, het uitvoeren van al deze stappen veroorzaakt daarnaast pop-in. Dat gebeurt bijvoorbeeld als je snel door een omgeving loopt of van wapens wisselt. Dit komt doordat er een vertraging van een frame is voordat de cpu de benodigde nieuwe textures oproept. “Snel gaan op 60fps vermindert dat probleem enigszins, maar als je snel beweegt, is het nog wel zichtbaar. Daar waren we niet blij mee.” Ook was de functionaliteit van de megatextures beperkt. “In onze eerste titels waren megatextures beperkt tot albedotextures.” Dat zijn heel simpele textures, zonder enige schaduwen of highlights.

Om dat laatste probleem enigszins te verhelpen, werden de megatextures in Doom (2016) geüpdatet om verschillende lagen met verschillende attributen te ondersteunen. Deze lagen bevatten bijvoorbeeld de normals, albedokleuren en gladheidswaarden. Deze update hielp, maar hierdoor verlies je nog steeds detail. “Je hebt dan immers nog steeds verschillende textures die gedecomprimeerd moeten worden.” Bovendien was dat systeem moeilijk om mee te werken en bleef zichtbare pop-in een probleem.

De ontwikkelkosten stegen ook door het gebruik van megatextures. “Het kostte enorm veel ruimte om al deze textures op te slaan. We hebben het over duizenden terabytes op onze servers.” Die toegenomen hoeveelheid schijfruimte zie je terug in de games zelf. Het 'originele' Doom uit 2016 vergt bijna 69GB schijfruimte, waarvan de map met textures ongeveer 44,5GB inneemt. Doom Eternal vergt in zijn geheel nog geen 44GB opslagruimte, terwijl de omgevingen in Eternal groter en gevarieerder zijn dan die in Doom (2016).

Opslagcapaciteit Doom 2016 vs Doom Eternal
Doom uit 2016 (links) vergt aanzienlijk meer schijfruimte dan Doom Eternal

Geometry-streaming in id Tech 7

In id Tech 7 zijn megatextures ingeruild voor een moderner geometry-streamingsysteem. Hierdoor kunnen in de hele game textures van een aanzienlijk hogere resolutie worden gebruikt. In Doom Eternal zie je dat terug in de omgevingen zelf, maar bijvoorbeeld ook in de ontwerpen van wapens en personages. Ook vergt het nieuwe systeem minder schijfruimte, zoals hierboven te zien is. De eerdergenoemde pop-in wordt eveneens geëlimineerd. Verder maakt het nieuwe systeem het mogelijk om meer unieke assets in de game te hebben, doordat de workflow voor artists sneller is met het nieuwe systeem.

Dit alles werd mogelijk gemaakt doordat moderne platforms meer videogeheugen hebben dan platforms als de PS3 en Xbox 360. “Maar ook als we de helft van de hoeveelheid geheugen tot onze beschikking hadden, hadden we deze stap gezet. De voordelen van megatextures zijn marginaal in vergelijking met alle negatieve dingen die we zagen.”

Doom Eternal
In Doom Eternal hebben de textures een hogere resolutie

Lees meer