Vad är Ray Tracing?

Sedan Nvidias 2018 tillkännagivande av sina 20-serier RTX-grafikkort, dess mördande funktion, "ray tracing" har varit en populär term i videospelkretsar. Men det kan vara svårt att förstå vad ray tracing är, hur det fungerar och varför det ser bättre ut än tidigare tekniker.

Vad är ray tracing och hur fungerar det?

I den verkliga världen när du ser något, är det du ser en foton från en ljuskälla. På väg till dig kan den fotonen ha reflekterats av en eller flera ytor. Varje reflektion ändrar egenskaperna hos ljuset som når dina ögon.

Solen avger ett brett spektrum av ljusfärger, varje yta absorberar en del ljus och reflekterar andra. Det vi ser som en grön yta, till exempel ett löv, det ser ut så eftersom det reflekterar mestadels grönt ljus. Om ljuset som reflekteras från bladet träffar en annan yta, till exempel en vit vägg, kommer den ytan att se något annorlunda ut än om det var ett rent vitt ljus som lyser på den. Varje reflektion påverkar varje framtida yta som ljuset interagerar med, och ändrar dess intensitet och den synliga färgen.

Strålspårning är en grafisk teknik som följer samma principer. Ljusstrålar projiceras, egenskaperna hos det reflekterade och brutna ljuset, såsom färg beräknas, och strålen fortsätter att färdas.

I den verkliga världen sänder varje ljuskälla, som en glödlampa eller solen, ut fotoner i alla riktningar, varav de allra flesta aldrig når dina ögon. Att simulera detta skulle vara en vansinnigt intensiv process som ger ett mestadels bortkastat resultat. För att minska arbetsbelastningen fungerar strålspårning omvänt och projicerar strålar från kameran. Varje stråle tillåts resa en viss sträcka utan reflektion eller reflektera ett visst antal gånger innan beräkningarna utförs och pixelvärdet ställs in.

Till exempel kastas en stråle ur betraktarens perspektiv, när den träffar en vit vägg genererar en algoritm rekursivt en reflekterad stråle som sedan färdas genom en ruta av blått glas, slutligen träffar den reflekterade strålen en vit ljuskälla och är absorberas. Det blå glaset absorberar allt utom blått ljus som kastar ett blått ljus på väggen, vilket resulterar i att pixeln färgas blå.

Varför ser Ray Tracing så mycket bättre ut?

Standardmetoden för att rendera scener i realtid innebär att man använder förberäknade ljuskartor och hel scenbelysning. Vissa spel använder sig av begränsad volymetrisk belysning för att inkludera rörliga ljuskällor och för att tillåta dynamiska skuggor, men denna teknik används sparsamt eftersom den är ganska processorkrävande.

Strålspårning kan uppnå ett fotorealistiskt resultat om lite extra arbete görs i speldesignstadiet. Om alla ytor innehåller detaljer som reflektivitet, transparens och hur ljuset bryts genom dem kan det övergripande resultatet se mer naturligt ut. Även om detta tillvägagångssätt uppenbarligen innebär mer arbete vid speldesignstadiet, låter det resultatet visas fotorealistisk med ljus som reagerar som det ska när det reflekteras från betong, metall, trä och glas etc.

Strålspårning gör att exakta reflektioner och skuggor kan kastas som en del av renderingsprocessen. i traditionella renderingsmetoder är båda dessa effekter helt valfria och kan orsaka betydande prestandaträffar.

Ray tracing i sig kommer med en enorm prestandahit. Tills Nvidias RTX-grafikkort tillkännagavs med hårdvaruacceleration för strålspårning, trodde man att den nödvändiga processorkraften för att utföra strålspårning i realtid i programvara var mer än ett decennium bort. Även med hårdvaruaccelerationen orsakar strålspårning fortfarande en betydande minskning av prestanda eftersom det fortfarande är den långsammaste delen av renderingen av en bildruta.