Hvad er Ray Tracing?

click fraud protection

Siden Nvidias 2018 annoncering af dets 20-serie RTX-grafikkort, har dens dræberfunktion, "ray tracing" været et populært udtryk i videospilkredse. Men det kan være svært at forstå, hvad ray tracing er, hvordan det virker, og hvorfor det ser bedre ud end tidligere teknikker.

Hvad er ray tracing, og hvordan virker det?

I den virkelige verden, når du ser noget, er det, du ser, en foton fra en lyskilde. På vej til dig kan den foton være blevet reflekteret af en eller flere overflader. Hver refleksion ændrer karakteristikaene for det lys, der når dine øjne.

Solen udsender en bred vifte af lysfarver, hver overflade absorberer noget lys og reflekterer andre. Hvad vi ser som en grøn overflade, såsom et blad, ser det sådan ud, fordi det reflekterer for det meste grønt lys. Hvis lyset, der reflekteres fra bladet, rammer en anden overflade, såsom en hvid væg, så vil den overflade se lidt anderledes ud, end den ville have gjort, hvis det var et rent hvidt lys, der skinnede på den. Hver refleksion påvirker enhver fremtidig overflade, som lyset interagerer med, og ændrer dens intensitet og den synlige farve.

Strålesporing er en grafisk teknik, der følger de samme principper. Lysstråler projiceres, det reflekterede og brudte lyss egenskaber, såsom farve, beregnes, og strålen fortsætter med at rejse.

I den virkelige verden udsender enhver lyskilde, såsom en pære eller Solen, fotoner i alle retninger, hvoraf langt de fleste aldrig når dine øjne. At simulere dette ville være en sindssygt intensiv proces, der giver et for det meste spildt resultat. For at reducere arbejdsbyrden fungerer strålesporing omvendt og projicerer stråler fra kameraet. Hver stråle får lov til at rejse en vis afstand uden refleksion eller reflektere et vist antal gange, før beregningerne udføres og pixelværdien indstilles.

For eksempel bliver en stråle kastet fra seerens perspektiv, når den rammer en hvid væg genererer en algoritme rekursivt en reflekteret stråle, som derefter bevæger sig gennem en rude af blåt glas, til sidst rammer den reflekterede stråle en hvid lyskilde og er absorberet. Det blå glas absorberer alt undtagen blåt lys, som kaster et blåt lys på væggen, hvilket resulterer i, at pixlen farves blå.

Hvorfor ser Ray Tracing så meget bedre ud?

Standardmetoden til at gengive scener i realtid involverer brug af forudberegnet lyskort og hele scenebelysning. Nogle spil gør brug af begrænset volumetrisk belysning for at inkludere bevægelige lyskilder og for at tillade dynamiske skygger, denne teknik bruges dog sparsomt, da den er ret processorkrævende.

Strålesporing kan opnå et fotorealistisk resultat, hvis der gøres noget ekstra arbejde i spildesignfasen. Hvis alle overflader inkluderer detaljer som reflektivitet, gennemsigtighed og hvordan lyset vil bryde gennem dem, kan det samlede resultat virke mere naturligt. Selvom denne tilgang naturligvis involverer mere arbejde på spildesignstadiet, lader den resultatet vises fotorealistisk med lys, der reagerer, som det skal, når det reflekteres fra beton, metal, træ og glas etc.

Strålesporing gør det muligt at kaste nøjagtige refleksioner og skygger som en del af gengivelsesprocessen. i traditionelle gengivelsesmetoder er begge disse effekter helt valgfrie og kan forårsage betydelige performance hits.

Ray tracing selv kommer med et massivt præstationshit. Indtil Nvidias RTX-grafikkort blev annonceret med hardwareacceleration til ray-tracing, troede man at den nødvendige processorkraft til at udføre strålesporing i realtid i software var mere end et årti væk. Selv med hardwareaccelerationen forårsager ray tracing stadig et betydeligt fald i ydeevnen, da det stadig er den langsomste del af gengivelsen af ​​en frame.