Hva er Ray Tracing?

Siden Nvidias 2018-kunngjøring av 20-seriens RTX-grafikkort, har dens mordere funksjon, "ray tracing" vært et populært begrep i videospillkretser. Men det kan være vanskelig å forstå hva ray tracing er, hvordan det fungerer, og hvorfor det ser bedre ut enn tidligere teknikker.

Hva er ray tracing og hvordan fungerer det?

I den virkelige verden når du ser noe, er det du ser et foton fra en lyskilde. På vei til deg kan det fotonet ha blitt reflektert av en eller flere overflater. Hver refleksjon endrer egenskapene til lyset som når øynene dine.

Solen sender ut et bredt spekter av lysfarger, hver overflate absorberer noe lys og reflekterer andre. Det vi ser som en grønn overflate, for eksempel et blad, ser ut slik fordi det reflekterer stort sett grønt lys. Hvis lyset som reflekteres fra bladet treffer en annen overflate, for eksempel en hvit vegg, vil den overflaten se litt annerledes ut enn den ville gjort hvis det var et rent hvitt lys som skinner på den. Hver refleksjon påvirker hver fremtidige overflate som lyset samhandler med, endrer intensiteten og den synlige fargen.

Strålesporing er en grafisk teknikk som følger de samme prinsippene. Lysstråler projiseres, egenskapene til det reflekterte og brutte lyset, for eksempel farge, beregnes, og strålen fortsetter å reise.

I den virkelige verden sender hver lyskilde, for eksempel en lyspære eller solen, ut fotoner i alle retninger, hvorav de aller fleste aldri når øynene dine. Å simulere dette ville være en sinnsykt intensiv prosess som gir et stort sett bortkastet resultat. For å redusere arbeidsbelastningen fungerer strålesporing i revers og projiserer stråler fra kameraet. Hver stråle får reise en viss avstand uten refleksjon eller reflektere et visst antall ganger før beregningene utføres og pikselverdien settes.

For eksempel kastes en stråle fra betrakterens perspektiv, når den treffer en hvit vegg genererer en algoritme rekursivt en reflektert stråle som deretter beveger seg gjennom en rute av blått glass, til slutt treffer den reflekterte strålen en hvit lyskilde og er absorbert. Det blå glasset absorberer alt unntatt blått lys som kaster et blått lys på veggen, noe som resulterer i at pikselen blir farget blå.

Hvorfor ser Ray Tracing så mye bedre ut?

Standardmetoden for å gjengi scener i sanntid innebærer bruk av forhåndsberegnet lyskart og hele scenebelysning. Noen spill bruker begrenset volumetrisk belysning for å inkludere bevegelige lyskilder og for å tillate dynamiske skygger, men denne teknikken brukes sparsomt da den er ganske prosessorintensiv.

Strålesporing kan oppnå et fotorealistisk resultat hvis det gjøres noe ekstra arbeid i spilldesignstadiet. Hvis alle overflater inkluderer detaljer som reflektivitet, gjennomsiktighet og hvordan lyset vil brytes gjennom dem, kan det totale resultatet virke mer naturlig. Selv om denne tilnærmingen åpenbart innebærer mer arbeid på spilldesignstadiet, lar den resultatet vises fotorealistisk med lys som reagerer slik det skal når det reflekteres fra betong, metall, tre og glass etc.

Strålesporing lar nøyaktige refleksjoner og skygger kastes som en del av gjengivelsesprosessen. i tradisjonelle gjengivelsesmetoder er begge disse effektene helt valgfrie og kan forårsake betydelige ytelsestreff.

Ray tracing selv kommer med en massiv ytelse hit. Inntil Nvidias RTX-grafikkort ble annonsert med maskinvareakselerasjon for strålesporing, ble det antatt at den nødvendige prosessorkraften for å utføre strålesporing i sanntid i programvare var mer enn et tiår borte. Selv med maskinvareakselerasjonen, forårsaker ray tracing fortsatt en betydelig reduksjon i ytelsen ettersom det fortsatt er den tregeste delen av gjengivelsen av en ramme.