Staru izsekošana ir datorgrafikas renderēšanas paņēmiens, kas rada attēlu, izsekojot staru ceļu caur ainu. Stari var mijiedarboties ar objektiem ainā, atlecot no tiem un iegūstot īpašības, piemēram, krāsu.
Ray Tracing: pamati
Staru izsekošana atdarina reālo apgaismojumu. Gaisma, ko mēs redzam, ir fotonu rezultāts, ko izstaro enerģijas avoti, piemēram, saule. Fotoni var atsist un izkliedēties, kad tie saduras ar objektiem. Spogulis ir viss, kas jums nepieciešams, lai to redzētu darbībā. Gaisma, kas saskaras ar spoguli, rada atspulgu.
Staru izsekošana to simulē. Izsekoto staru skaits ir niecīgs, salīdzinot ar reālo pasauli, kur miljoniem fotonu atsitās pāri mūsu redzes laukam. Mūsdienu spēles izseko kaut kur no viena līdz četriem stariem uz vienu pikseļu. Tomēr ar to pietiek, lai modelētu reālo pasauli.
Izsekojot stara ceļu, tas arī ļauj mijiedarboties ar spēļu pasauli. Staru, kas atlec no sarkana objekta, šī krāsa var ietekmēt, blakus radot sarkanu mirdzumu. Stari var izkliedēties dažādos veidos, pamatojoties uz īpašībām, ko spēles mākslinieki piešķir objektiem, ļaujot veidot reālistiskas daļēji atstarojošas vai raupjas virsmas.
Staru izsekošana ir nozīmīgs solis uz priekšu 3D grafikā. Tas rada reālistisku attēlu, imitējot staru ceļu, kad tie pārvietojas spēlē. Tas noved pie apgaismojuma, kas var mijiedarboties ar vidi pat tad, ja vide atskaņotājam nav redzama. Lai veiktu staru izsekošanu, nav nepieciešama īpaši izveidota aparatūra, taču tā ir praktiska tikai videokartei vai spēļu konsolei, kas var paātrināt staru izsekošanu, jo tā ir ļoti prasīga.
Ray Tracing vs. Rasterization (vai 3D grafika, kā jūs to zinājāt)
Jūs joprojām varat būt neizpratnē, pat ja saprotat šo skaidrojumu. Pārdomas bija pagātnes spēlēs, pat tajās, kas tagad ir vairākas desmitgades vecas. Kā staru izsekošana atšķiras?
Pagātnes 3D spēlēs un lielākajā daļā mūsdienu spēļu izmanto rastrizāciju. Rasterizācija apvieno spēlētājam redzamos 3D spēļu pasaules elementus 2D attēlā. Tas atveido tikai to, kas būtu redzams spēlētājam, jo jebkura veiktspēja, kas tiek izmantota, lai radītu to, ko spēlētājs neredz, tiek izniekota. Tomēr tas rada problēmu.
Atgriezīsimies pie spoguļa piemēra. Spēlētāja vide un spēlētāja raksturs nav redzams spēlētājam (vismaz pirmās personas spēlē). Izmantojot rasterizāciju, spogulim nav ko atspīdēt.
Protams, mūsdienu spēlēs pastāv spoguļi. Viņi atveido ainu divas reizes. Viena piespēle ir no spēlētāja skatupunkta, bet otra ir no citas perspektīvas. Tomēr tas dubulto sniegumu, kas nepieciešams ainas renderēšanai.
Ekrāna telpas atspulgi - populāru 3D spēļu dzinēju paņēmiens - izmanto ekrānā redzamos datus, lai radītu atspulgu. Šis paņēmiens ir ideāli piemērots atstarojošām virsmām, kas atrodas leņķī pret spēlētāja perspektīvu, piemēram, ūdenim. Tomēr atspoguļotie objekti pazūd, ja atspoguļotais vienums tiek pārvietots ārpus ekrāna.
Ray izsekošana nesatur šīs problēmas, jo atšķirībā no rastrēšanas tā var izsekot ārpus atskaņotāja perspektīvas.
Arī spēlēs, kas ļauj stariem mijiedarboties ar virsmām, staru izsekošana var parādīt reālistiskas krāsas un daļēji atstarojošas virsmas, kuras ir grūti apstrādāt.
Kāda aparatūra ir nepieciešama staru izsekošanas funkcijai?
Staru izsekošana nav jauna ideja. Datorzinātnieki 80. gadu sākumā eksperimentēja ar staru izsekošanu, radot statiskus attēlus ar reālistisku apgaismojumu, atspīdumiem un ēnām. Diemžēl to renderēšana prasīja stundas.
Video spēlei ir nepieciešama reāllaika staru izsekošana ar ātrumu 30 kadri sekundē vai vairāk. Tas ir iespējams tikai ar videokarti, kas paredzēta staru izsekošanas paātrināšanai.
Nvidia RTX staru izsekošana balstās uz silīciju, ko sauc par Tensor Core. Tensor serdeņi ir atrodami tikai RTX videokartēs. Nvidia GTX kartes var atveidot spēli, izmantojot staru izsekošanu, jo, kā jau minēts, staru izsekošanas veikšanai nav nepieciešams īpaši izveidots silīcijs. Tomēr veiktspēja ir vāja salīdzinājumā ar RTX kartēm. Dažām spēlēm, piemēram, Minecraft ar RTX staru izsekošanu, ir nepieciešama RTX videokarte, jo tās nodrošina staru izsekošanu.
AMD kartēm, kas paātrina staru izsekošanu, nav īpaša zīmola, un tām nav speciāla silīcija. Tā vietā viņi izmanto aparatūras uzlabojumus un programmatūras atjauninājumus, lai iegūtu labākus rezultātus. Ir grūtāk identificēt AMD kartes, kas paātrina staru izsekošanu, tāpēc pievērsiet uzmanību detaļām.
Sony PlayStation 5 un Xbox Series X un S ir AMD grafikas aparatūra, kas var paātrināt staru izsekošanu. Tomēr izstrādātāju ziņā tas ir jāiespējo, un daudzas spēles to nedara. Ievērojams piemērs ir Cyberpunk 2077, kas palaišanas brīdī atbalstīja RTX staru izsekošanu datorā, bet neatbalstīja staru izsekošanu nākamās paaudzes konsolēs. Funkcija tiek solīta nākamās paaudzes konsolēm nākotnē.