Nuo tada, kai 2018 m. „Nvidia“ paskelbė apie savo 20 serijos RTX vaizdo plokštes, jos žudikiška funkcija „ray tracing“ buvo populiarus terminas vaizdo žaidimų aplinkoje. Tačiau gali būti sunku suprasti, kas yra spindulių sekimas, kaip jis veikia ir kodėl jis atrodo geriau nei ankstesni metodai.
Kas yra spindulių sekimas ir kaip jis veikia?
Realiame pasaulyje, kai ką nors matai, tai, ką matai, yra fotonas iš šviesos šaltinio. Pakeliui į jus tą fotoną galėjo atspindėti vienas ar keli paviršiai. Kiekvienas atspindys keičia jūsų akis pasiekiančios šviesos savybes.
Saulė skleidžia platų spalvų spektrą šviesos, kiekvienas paviršius sugeria dalį šviesos, o atspindi kitą. Tai, ką matome kaip žalią paviršių, pavyzdžiui, lapą, taip atrodo, nes atspindi daugiausia žalią šviesą. Jei šviesa, atsispindinti nuo lapo, pateks į kitą paviršių, pavyzdžiui, baltą sieną, tada tas paviršius atrodys šiek tiek kitaip, nei atrodytų, jei ant jo spindėtų gryna balta šviesa. Kiekvienas atspindys paveikia kiekvieną būsimą paviršių, su kuriuo sąveikauja šviesa, keisdamas jos intensyvumą ir matomą spalvą.
Spindulių sekimas yra grafinė technika, kuri vadovaujasi tais pačiais principais. Suprojektuojami šviesos spinduliai, apskaičiuojamos atsispindėjusios ir lūžusios šviesos savybės, tokios kaip spalva, ir spindulys keliauja toliau.
Realiame pasaulyje kiekvienas šviesos šaltinis, pvz., elektros lemputė ar Saulė, skleidžia fotonus visomis kryptimis, kurių didžioji dauguma niekada nepasiekia jūsų akių. Imituoti tai būtų beprotiškai intensyvus procesas, kuris duoda dažniausiai švaistomą rezultatą. Siekiant sumažinti darbo krūvį, spindulių sekimas veikia atvirkščiai, projekuodamas spindulius iš kameros. Kiekvienam spinduliui leidžiama nukeliauti tam tikrą atstumą be atspindžio arba atspindėti tam tikrą skaičių kartų prieš atliekant skaičiavimus ir nustatant pikselių reikšmę.
Pavyzdžiui, spindulys metamas iš žiūrovo perspektyvos, kai jis atsitrenkia į baltą sieną, algoritmas rekursyviai generuoja atspindėtas spindulys, kuris tada sklinda per mėlyno stiklo plokštę, galiausiai atspindėtas spindulys patenka į baltos šviesos šaltinį ir yra absorbuojamas. Mėlynas stiklas sugeria visą šviesą, išskyrus mėlyną šviesą, kuri skleidžia mėlyną šviesą ant sienos, todėl pikselis yra mėlynas.
Kodėl „Ray Tracing“ atrodo daug geriau?
Standartinis scenų atvaizdavimo realiuoju laiku metodas apima iš anksto apskaičiuotų šviesos žemėlapių ir visos scenos apšvietimo naudojimą. Kai kuriuose žaidimuose naudojamas ribotas tūrinis apšvietimas, kad būtų įtraukti judantys šviesos šaltiniai ir dinamiški šešėliai, tačiau ši technika naudojama taupiai, nes reikalauja daug procesoriaus.
Spindulių sekimas gali pasiekti fotorealistišką rezultatą, jei žaidimo projektavimo etape bus atliktas papildomas darbas. Jei visuose paviršiuose yra tokių detalių kaip atspindys, skaidrumas ir šviesos lūžimas per juos, bendras rezultatas gali atrodyti natūralesnis. Nors šis metodas akivaizdžiai apima daugiau darbo žaidimo projektavimo etape, jis leidžia pasirodyti rezultatui fotorealistiška, o šviesa reaguoja taip, kaip turėtų, kai atsispindi nuo betono, metalo, medžio ir stiklo ir tt
Spindulių sekimas leidžia tiksliai atspindėti ir mesti šešėlius kaip atvaizdavimo proceso dalį. tradiciniuose atvaizdavimo metoduose abu šie efektai yra visiškai neprivalomi ir gali sukelti didelių našumo sutrikimų.
Pats spindulių sekimas pasižymi didžiuliu našumo hitu. Kol nebuvo paskelbta apie Nvidia RTX vaizdo plokštes su aparatinės įrangos spartinimu spindulių sekimui, buvo manoma kad reikiama apdorojimo galia norint atlikti spindulių sekimą realiuoju laiku programinėje įrangoje buvo daugiau nei dešimtmetis toli. Net ir naudojant aparatinę pagreitį, spindulių sekimas vis tiek žymiai sumažina našumą, nes tai vis dar yra lėčiausia kadro atvaizdavimo dalis.