Kopš Nvidia 2018. gada paziņojuma par savām 20. sērijas RTX grafiskajām kartēm, tās slepkavības funkciju “staru izsekošana” ir bijis populārs termins videospēļu aprindās. Taču var būt grūti saprast, kas ir staru izsekošana, kā tā darbojas un kāpēc tā izskatās labāk nekā iepriekšējās metodes.
Kas ir staru izsekošana un kā tā darbojas?
Reālajā pasaulē, kad kaut ko redzat, tas, ko redzat, ir fotons no gaismas avota. Ceļā pie jums šo fotonu, iespējams, atstarojusi viena vai vairākas virsmas. Katrs atspīdums maina gaismas īpašības, kas sasniedz jūsu acis.
Saule izstaro plašu gaismas krāsu diapazonu, katra virsma absorbē daļu gaismas un atstaro citu. Tas, ko mēs redzam kā zaļu virsmu, piemēram, lapu, tā izskatās, jo galvenokārt atspoguļo zaļo gaismu. Ja gaisma, kas atstarojas no lapas, saskaras ar citu virsmu, piemēram, baltu sienu, šī virsma izskatīsies nedaudz savādāk nekā tad, ja tā būtu tīri balta gaisma, kas spīdētu uz tās. Katrs atspīdums ietekmē katru turpmāko virsmu, ar kuru gaisma mijiedarbojas, mainot tās intensitāti un redzamo krāsu.
Staru izsekošana ir grafisks paņēmiens, kas atbilst tiem pašiem principiem. Tiek projicēti gaismas stari, aprēķinātas atstarotās un lauztās gaismas īpašības, piemēram, krāsa, un stars turpina ceļot.
Reālajā pasaulē katrs gaismas avots, piemēram, spuldze vai saule, visos virzienos izstaro fotonus, no kuriem lielākā daļa nekad nesasniedz jūsu acis. Tā modelēšana būtu neprātīgi intensīvs process, kas rada lielākoties izšķērdētu rezultātu. Lai samazinātu darba slodzi, staru izsekošana darbojas apgriezti, projicējot starus no kameras. Katram staram ir atļauts nobraukt noteiktu attālumu bez atstarošanas vai atstarot noteiktu skaitu reižu, pirms tiek veikti aprēķini un iestatīta pikseļu vērtība.
Piemēram, stars tiek raidīts no skatītāja perspektīvas, kad tas ietriecas baltā sienā, algoritms rekursīvi ģenerē atstarots stars, kas pēc tam pārvietojas caur zila stikla rūti, visbeidzot, atstarotais stars nonāk baltā gaismas avotā un tiek uzsūcas. Zilais stikls absorbē visu, izņemot zilo gaismu, kas izstaro zilu gaismu uz sienas, kā rezultātā pikseļi ir zilā krāsā.
Kāpēc Ray Tracing izskatās tik daudz labāk?
Standarta metode ainu renderēšanai reāllaikā ietver iepriekš aprēķinātu gaismas karšu un visas ainas apgaismojuma izmantošanu. Dažās spēlēs tiek izmantots ierobežots tilpuma apgaismojums, lai iekļautu kustīgus gaismas avotus un atļautu dinamiskas ēnas. Šo paņēmienu izmanto taupīgi, jo tas ir diezgan procesora ietilpīgs.
Staru izsekošana var sasniegt fotoreālistisku rezultātu, ja spēles projektēšanas stadijā tiek veikts papildu darbs. Ja visās virsmās ir ietvertas tādas detaļas kā atstarošanās, caurspīdīgums un gaismas lūzums caur tām, kopējais rezultāts var izskatīties dabiskāks. Lai gan šī pieeja acīmredzami ietver vairāk darba spēles izstrādes stadijā, tā ļauj parādīties rezultātam fotoreālistisks ar gaismas reakciju tā, kā tai vajadzētu, kad tā atstarojas no betona, metāla, koka un stikla utt.
Staru izsekošana ļauj renderēšanas procesā radīt precīzus atspulgus un ēnas. tradicionālajās renderēšanas metodēs abi šie efekti ir pilnībā neobligāti un var izraisīt ievērojamus veiktspējas trāpījumus.
Pati staru izsekošana nodrošina milzīgu veiktspējas hītu. Līdz brīdim, kad tika paziņots par Nvidia RTX grafikas kartēm ar aparatūras paātrinājumu staru izsekošanas nodrošināšanai, tika uzskatīts ka nepieciešamā apstrādes jauda, lai programmatūrā veiktu staru izsekošanu reāllaikā, bija vairāk nekā desmit gadi prom. Pat ar aparatūras paātrinājumu staru izsekošana joprojām ievērojami samazina veiktspēju, jo tā joprojām ir kadra renderēšanas lēnākā daļa.