Od oznámenia spoločnosti Nvidia v roku 2018 o jej 20-sériových grafických kartách RTX je jej vražedná funkcia „sledovanie lúčov“ populárnym pojmom v kruhoch videohier. Ale môže byť ťažké pochopiť, čo je sledovanie lúčov, ako funguje a prečo vyzerá lepšie ako predchádzajúce techniky.
Čo je to sledovanie lúčov a ako funguje?
V reálnom svete, keď niečo vidíte, to, čo vidíte, je fotón zo svetelného zdroja. Na ceste k vám mohol byť fotón odrazený jedným alebo viacerými povrchmi. Každý odraz mení vlastnosti svetla, ktoré dopadá do vašich očí.
Slnko vyžaruje širokú škálu farieb svetla, každý povrch niektoré svetlo pohlcuje a iné odráža. To, čo vidíme ako zelený povrch, napríklad list, sa tak javí, pretože odráža väčšinou zelené svetlo. Ak svetlo odrážajúce sa od listu dopadne na iný povrch, napríklad bielu stenu, potom bude tento povrch vyzerať trochu inak, ako keby naň svietilo čisté biele svetlo. Každý odraz ovplyvňuje každý budúci povrch, s ktorým svetlo interaguje, mení jeho intenzitu a viditeľnú farbu.
Ray tracing je grafická technika, ktorá sa riadi rovnakými princípmi. Lúče svetla sa premietnu, vypočítajú sa vlastnosti odrazeného a lomeného svetla, ako napríklad farba, a lúč sa ďalej pohybuje.
V skutočnom svete každý svetelný zdroj, ako napríklad žiarovka alebo Slnko, vyžaruje fotóny do všetkých strán, z ktorých veľká väčšina nikdy nedosiahne vaše oči. Simulácia tohto by bola šialene intenzívny proces, ktorý produkuje väčšinou zbytočný výsledok. Aby sa znížilo pracovné zaťaženie, sledovanie lúčov funguje opačne a premieta lúče z kamery. Každý lúč môže prejsť určitú vzdialenosť bez odrazu alebo odrážať určitý počet ráz, kým sa vykonajú výpočty a nastaví sa hodnota pixelov.
Napríklad lúč sa vrhá z pohľadu diváka, keď narazí na bielu stenu, algoritmus rekurzívne generuje odrazený lúč, ktorý potom prechádza tabuľou modrého skla, nakoniec odrazený lúč dopadne na zdroj bieleho svetla a je absorbované. Modré sklo absorbuje všetko okrem modrého svetla, ktoré vrhá modré svetlo na stenu, čo vedie k tomu, že pixel je zafarbený na modro.
Prečo Ray Tracing vyzerá oveľa lepšie?
Štandardná metóda vykresľovania scén v reálnom čase zahŕňa použitie vopred vypočítaných svetelných máp a osvetlenia celej scény. Niektoré hry využívajú obmedzené objemové osvetlenie, ktoré zahŕňa pohybujúce sa zdroje svetla a umožňuje dynamické tiene, táto technika sa však používa s mierou, pretože je dosť náročná na procesor.
Sledovanie lúčov môže dosiahnuť fotorealistický výsledok, ak sa vo fáze návrhu hry vykoná práca navyše. Ak všetky povrchy obsahujú detaily, ako je odrazivosť, priehľadnosť a spôsob, akým sa cez ne bude lámať svetlo, celkový výsledok môže pôsobiť prirodzenejšie. Aj keď tento prístup zjavne vyžaduje viac práce vo fáze návrhu hry, umožňuje, aby sa výsledok objavil fotorealistické so svetlom, ktoré reaguje tak, ako by malo, keď sa odráža od betónu, kovu, dreva a skla atď.
Ray tracing umožňuje presné odrazy a tiene vrhať ako súčasť procesu vykresľovania. v tradičných metódach vykresľovania sú oba tieto efekty úplne voliteľné a môžu spôsobiť výrazné zníženie výkonu.
Samotné sledovanie lúčov prichádza s obrovským výkonnostným hitom. Kým neboli oznámené grafické karty Nvidia RTX s hardvérovou akceleráciou pre sledovanie lúčov, myslelo sa to že potrebný výpočtový výkon na vykonávanie sledovania lúčov v reálnom čase v softvéri bol viac ako desať rokov preč. Dokonca aj s hardvérovou akceleráciou, sledovanie lúčov stále spôsobuje výrazný pokles výkonu, pretože je stále najpomalšou časťou vykresľovania snímky.