Wat is Ray Tracing?

Inhoudsopgave:

Wat is Ray Tracing?
Wat is Ray Tracing?
Anonim

Ray tracing is een techniek voor het renderen van computergraphics die een afbeelding creëert door het pad van stralen door een scène te volgen. De stralen kunnen interageren met objecten in de scène, ze weerkaatsen en eigenschappen verkrijgen, zoals kleur.

Ray Tracing: de basis

Ray tracing emuleert verlichting uit de echte wereld. Het licht dat we zien is het resultaat van fotonen die worden uitgezonden door energiebronnen, zoals de zon. Fotonen kunnen stuiteren en verstrooien als ze tegen objecten botsen. Een spiegel is alles wat je nodig hebt om dit in actie te zien. Licht dat op een spiegel v alt, creëert een reflectie.

Image
Image

Ray tracing simuleert dit. Het aantal getraceerde stralen is schamele vergeleken met de echte wereld, waar miljoenen fotonen over ons gezichtsveld stuiteren. Moderne games traceren ergens tussen één en vier stralen per pixel. Toch is dat genoeg om de echte wereld te simuleren.

Door het pad van een straal te volgen, kan deze ook communiceren met de gamewereld. Een straal die weerkaatst op een rood object kan worden beïnvloed door die kleur, waardoor er dichtbij een rode gloed ontstaat. Stralen kunnen op verschillende manieren worden verspreid op basis van de eigenschappen die de artiesten van een game aan objecten geven, waardoor realistische semi-reflecterende of ruwe oppervlakken mogelijk zijn.

Ray tracing is een belangrijke stap voorwaarts voor 3D-graphics. Het creëert een realistisch beeld door het pad van stralen te simuleren terwijl ze door een spel bewegen. Dit leidt tot verlichting die kan interageren met de omgeving, zelfs als de omgeving niet zichtbaar is voor de speler. Raytracing vereist geen speciaal gebouwde hardware om te functioneren, maar het is alleen praktisch op een videokaart of gameconsole die raytracing kan versnellen omdat het erg veeleisend is.

Ray Tracing vs. Rasterisatie (of, 3D-graphics zoals je die kende)

Image
Image

Je kunt nog steeds in de war zijn, zelfs als je deze uitleg begrijpt. Reflecties waren aanwezig in eerdere games, zelfs die van enkele decennia oud. Hoe is ray tracing anders?

Vorige 3D-games, en de meeste moderne games, gebruiken rasterisatie. Rasterisatie combineert de elementen van een 3D-spelwereld die zichtbaar zijn voor de speler tot een 2D-beeld. Het geeft alleen weer wat zichtbaar moet zijn voor de speler, omdat elke prestatie die wordt gebruikt om te genereren wat de speler niet kan zien, verspild is. Dit levert echter een probleem op.

Laten we terugkeren naar het voorbeeld van een spiegel. De omgeving van de speler en het personage van de speler zijn niet zichtbaar voor de speler (tenminste in een first-person game). Met rasteren is er niets voor de spiegel om te reflecteren.

Natuurlijk bestaan er spiegels in moderne games. Ze renderen de scène twee keer. De ene pass is vanuit het oogpunt van de speler, terwijl een andere vanuit een ander perspectief is. Dat verdubbelt echter de prestaties die nodig zijn om een scène weer te geven.

Schermruimtereflecties, een techniek in populaire 3D-game-engines, gebruiken gegevens op het scherm om een reflectie te creëren. Deze techniek is ideaal voor reflecterende oppervlakken onder een hoek met het perspectief van de speler, zoals water. Gereflecteerde objecten verdwijnen echter als het gereflecteerde item van het scherm verdwijnt.

Ray tracing deelt deze problemen niet omdat het, in tegenstelling tot rasteren, buiten het perspectief van de speler kan traceren.

Bovendien kan ray tracing in games waarin stralen kunnen interageren met oppervlakken, realistische kleurverloop en semi-reflecterende oppervlakken weergeven die moeilijk te verwerken zijn met rasters.

Welke hardware heeft Ray Tracing nodig?

Image
Image

Ray tracing is geen nieuw idee. Computerwetenschappers experimenteerden begin jaren tachtig met ray tracing en creëerden statische beelden met realistische belichting, reflecties en schaduwen. Helaas duurde het uren om te renderen.

Een videogame heeft re altime raytracing nodig van 30 frames per seconde of hoger. Dat is alleen mogelijk met een videokaart die is ontworpen om ray tracing te versnellen.

Nvidia's RTX-raytracing is gebaseerd op silicium dat een Tensor Core wordt genoemd. Tensor Cores zijn alleen te vinden in RTX-videokaarten. Nvidia's GTX-kaarten kunnen een game renderen met ray tracing omdat, zoals gezegd, voor ray tracing geen speciaal gebouwd silicium nodig is. De prestaties zijn echter verschrikkelijk in vergelijking met RTX-kaarten. En voor sommige games, zoals Minecraft met RTX-raytracing, is een RTX-videokaart vereist vanwege de specifieke manier waarop ze raytracing mogelijk maken.

AMD-kaarten die raytracing versnellen, hebben geen specifieke branding en hebben geen speciaal silicium. In plaats daarvan gebruiken ze hardware-tweaks en software-updates voor betere resultaten. Het is moeilijker om AMD-kaarten te identificeren die raytracing versnellen, dus let op de details.

Sony's PlayStation 5 en Xbox Series X en S hebben grafische hardware van AMD die ray tracing kan versnellen. Het is echter aan ontwikkelaars om dit in te schakelen, en veel games doen dat niet. Een opmerkelijk voorbeeld is Cyberpunk 2077, dat bij de lancering RTX-ray tracing op pc ondersteunde, maar ray tracing op next-gen consoles niet. De functie wordt beloofd voor next-gen consoles in een toekomstige patch.

Aanbevolen: