Nvidia Ray Tracing: De grafische hype die is blijven plakken
Ray tracing is een grafische techniek die al jaren bestaat, maar pas sinds kort zijn weg naar games heeft gevonden. Wat het precies is en waarom het zo lang heeft geduurd lees je in dit artikel.
Dit artikel wordt mede mogelijk gemaakt door NVIDIA en OMEN. Lees hier wat dat betekent.
In games zijn de reflecties en verlichting nooit echt realistisch. In de meeste games worden de reflecties namelijk als een plaatje ingebakken in de game om de druk op je CPU en GPU te verminderen. Deze ‘reflecties’ worden in veel gevallen gemaakt tijdens het ontwerpen van de omgeving. Als de map bijna af is, maakt de ontwikkelaar rondom alle spiegelende oppervlaktes foto’s van de omgeving. Deze foto’s worden gekoppeld aan de spiegel en in de game dynamisch weergegeven als je voorbij loopt. Als er tijdens het spelen aanpassingen worden gemaakt aan de omgeving, zie je die daarom vaak niet terug in reflecties. Dat is ook de reden waarom je gamekarakter zelden zichtbaar is in een spiegel. Moderne engines updaten tijdens het gamen deze ‘nep’-reflecties, maar het zal nooit helemaal realistisch worden. Het zelfde geldt voor licht. Een lamp in een game verlicht enkel de oppervlaktes die direct zichtbaar zijn vanuit het oogpunt van de lamp, met in sommige gevallen één of twee reflecties.
©GMRimport
Toch is het al jaren mogelijk om zeer realistische reflecties en verlichting te simuleren in renders met behulp van ray tracing. In de basis is ray tracing een relatief eenvoudige techniek. Het is gebaseerd op hoe licht in de werkelijkheid werkt: vanaf alle lichtpunten in de omgeving worden de lichtstralen gevolgd totdat deze zo zwak zijn dat er niks meer van over blijft. Deze lichtstralen kunnen weerspiegelen van gladde oppervlaktes zoals een spiegel, of verkleuren doordat ze door een gekleurd stuk glas gaan. Het resultaat is een levensecht plaatje zoals je die in productfoto’s en films ziet. Omdat het gaat om miljoenen lichtstralen die soms tientallen keren reflecteren, is dat een langdurig rekenproces dat voor een realistisch plaatje zelfs dagen kan kosten om te genereren. Het kost een supercomputer met 24.000 rekenkernen bijvoorbeeld twee jaar om een Pixar-film te renderen! Dat is voor games geen optie, want een spel waarbij het beeld slechts één keer per dag ververst is natuurlijk kansloos.
Nvidia RT
Nvidia heeft gelukkig een middenweg gevonden die het rekenproces niet alleen versnelt, maar zelfs zo snel maakt dat je naar prachtige reflecties kunt kijken met meer dan 60 fps. Anders dan bij traditionele renders wordt het licht namelijk niet vanaf elke pixel op de monitor gevolgd, maar vanuit slechts een selectie daarvan. Afhankelijk van hoe de ontwikkelaar kiest om Nvidia RTX te gebruiken, wordt er een selectie gemaakt van de belangrijkste oppervlaktes voor reflecties. Zo krijgt een spiegel bijvoorbeeld voorrang boven een stuk hout. Hoe minder belangrijk een oppervlak is voor de reflecties, hoe minder stralen er toegekend worden aan dat oppervlak. Het resultaat met enkel ray tracing is dan een zeer ruis-achtig plaatje dat met behulp van filters wordt omgetoverd tot iets dat er al leuk uit ziet. Vervolgens wordt dit gekoppeld aan de beelden die gemaakt zijn zonder ray tracing. Het uiteindelijke effect is iets minder realistisch, maar al een gigantische stap voorwaarts vergeleken met de traditionele technieken.
Hoewel er op het moment nog niet zo veel games zijn die het ondersteunen, is het ook mogelijk om de stralen van een beperkt aantal lichtbronnen te volgen voor een realistischere belichting. Door de stralen vanuit de lichtbron te simuleren worden niet alleen schaduwen realistischer, maar zijn ook de kleuren natuurlijker. Een witte lamp naast een rode muur zou zonder ray tracing bijvoorbeeld alle objecten wit verlichten, dat geeft een heel erg kunstmatig en saai effect. Met ray tracing heeft die rode muur wel een effect op de omgeving en krijgt alles een rode gloed zoals dat ook in het echt zou gebeuren.
Ondanks de steeds krachtiger wordende hardware, is een normale GPU helaas nog niet gebouwd voor dergelijke berekeningen. Hoewel een videokaart door de grote hoeveelheid kernen enorm veel lichtstralen tegelijkertijd kan volgen, zijn de kernen geoptimaliseerd voor de ‘ouderwetse’ technieken en dus niet erg efficiënt als het gaat om ray tracing. Om het proces te versnellen heeft Nvidia daarom speciale RT Cores bedacht en toegevoegd aan de bekende RTX-videokaarten. Deze RT Cores zijn specifiek gericht op het rekenwerk dat bij ray tracing komt kijken en zijn dus erg effectief in het oplossen van zulke sommetjes. Het resultaat: de normale GPU-kernen worden ontlast en houden zich bezig met alles behalve ray tracing, terwijl de RT Cores de reflecties en/of verlichting verzorgen.
©GMRimport
Een RTX-videokaarten kun je bijvoorbeeld vinden in de OMEN 15 gaming laptop. Deze 15-inch laptop beschikt over een AMD Ryzen 7-5800H-processor gecombineerd met een Nvidia RTX 3060 voor serieus grafisch geweld. De videokaart beschikt over dertig RT Cores voor ray tracing, dus met de OMEN 15 worden de mooiste plaatjes op het beeldscherm getoverd. De OMEN 15 (en1150nd) gaming laptop is slechts 22.5mm dik, maar beschikt toch over een luxe behuizing met een rgb-toetsenbord op een aluminium deck. Mocht je ooit meer nodig hebben dan de geïnstalleerde 16GB DDR4 of 1TB PCIe-ssd, dan kun je dat in deze laptop eenvoudig zelf upgraden en door de Infrarood Termo Sensor voor optimale koeling zijn ook warme zomerdagen geen uitdaging meer
©GMRimport
Het verschil tussen ray tracing ingeschakeld en uitgeschakeld kan enorm zijn, zoals Mojang heeft laten zien met de Minecraft RTX-update. De vernieuwde verlichting en reflecties laten deze grafisch beperkte game opeens stralen. Van zeer ouderwetse graphics, heeft de game nu een reuzestap gemaakt richting de moderne games. In de screenshots van het haardvuur zie je duidelijk de reflecties op de tegels en de realistischere schaduwen en kleuren van het licht. In andere games is het verschil een meestal stuk subtieler, zoals in de screenshot van Metro Exodus hieronder. De buizen in de achtergrond worden een stuk realistischer verlicht door de lampen in de ruimte, maar het is geen schokkend effect.
©GMRimport
Helemaal ‘gratis’ is de techniek helaas niet. Hoewel de RT Cores het werk voor ray tracing grotendeels zelfstandig kunnen doen, worden ook de reguliere GPU-kernen meer belast. Hierdoor wordt de framerate met ray tracing ingeschakeld iets lager dan zonder ray tracing. Daarnaast zijn de RT Cores al snel een bottleneck bij beelden met veel reflecties of hoge ray tracing-instellingen. Omdat de ray tracing-berekeningen grotendeels onafhankelijk zijn van de resolutie waarop je speelt, is die bottleneck vooral duidelijk bij lagere resoluties zoals 1080p. Het kan dus gebeuren dat de framerate met de techniek ingeschakeld soms halveert.
Onze vrienden van Power Unlimited hebben hierover tevens een nuttige video gemaakt.
Conclusie
Nvidia heeft met hun vorm van ray tracing een techniek in handen die de manier waarop games worden gerenderd volledig omgooit. Het is een slimme aanpassing van een methode die al jaren wordt gebruikt in de filmindustrie voor het renderen van levensechte bewegende beelden, maar dan zonder dat je dagen hoeft te wachten op je volgende frame. Hoewel de techniek van Nvidia niet dezelfde kwaliteit oplevert, is het al wel een grote stap in de richting van levensechte games. Wil je meer weten over OMEN? Kijk dan hier.