Siitä lähtien, kun Nvidia julkisti vuonna 2018 20-sarjan RTX-näytönohjaimensa, sen tappava ominaisuus, "ray tracing" on ollut suosittu termi videopelien piireissä. Mutta voi olla vaikea ymmärtää, mitä säteenseuranta on, miten se toimii ja miksi se näyttää paremmalta kuin aiemmat tekniikat.
Mikä on säteen seuranta ja miten se toimii?
Todellisessa maailmassa, kun näet jotain, näkemäsi on fotoni valonlähteestä. Matkallaan luoksesi tuo fotoni on saattanut heijastua yhdestä tai useammasta pinnasta. Jokainen heijastus muuttaa silmäsi saavuttavan valon ominaisuuksia.
Aurinko säteilee monenlaista valoa, jokainen pinta imee jonkin verran valoa ja heijastaa toisia. Se, mitä näemme vihreänä pintana, kuten lehtinä, näyttää siltä, koska se heijastaa enimmäkseen vihreää valoa. Jos lehdestä heijastuva valo osuu toiseen pintaan, kuten valkoiseen seinään, se pinta näyttää hieman erilaiselta kuin jos se olisi puhdas valkoinen valo. Jokainen heijastus vaikuttaa jokaiseen tulevaan pintaan, jonka kanssa valo on vuorovaikutuksessa, ja muuttaa sen voimakkuutta ja näkyvää väriä.
Säteenseuranta on graafinen tekniikka, joka noudattaa samoja periaatteita. Valon säteet projisoidaan, heijastuneen ja taittuneen valon ominaisuudet, kuten väri lasketaan, ja säde jatkaa matkaansa.
Todellisessa maailmassa jokainen valonlähde, kuten hehkulamppu tai aurinko, lähettää fotoneja kaikkiin suuntiin, joista suurin osa ei koskaan pääse silmiisi. Tämän simulointi olisi järjettömän intensiivinen prosessi, joka tuottaa enimmäkseen hukkaan heitetyn tuloksen. Työkuorman vähentämiseksi säteenseuranta toimii päinvastoin ja heijastaa säteitä kamerasta. Jokaisen säteen sallitaan kulkea tietty matka ilman heijastusta tai heijastua tietty määrä kertoja ennen kuin laskelmat suoritetaan ja pikseliarvo asetetaan.
Esimerkiksi säde heitetään katsojan näkökulmasta, kun se osuu valkoiseen seinään, algoritmi generoi rekursiivisesti heijastuneen säteen, joka kulkee sitten sinisen lasin läpi, lopuksi heijastunut säde osuu valkoiseen valonlähteeseen ja absorboituu. Sininen lasi imee kaiken paitsi sinisen valon, joka antaa sinisen valon seinälle, jolloin pikseli värjäytyy siniseksi.
Miksi Ray Tracing näyttää niin paljon paremmalta?
Tavallinen tapa renderöidä kohtauksia reaaliajassa sisältää ennalta laskettujen valokarttojen ja koko kohtauksen valaistuksen. Joissakin peleissä käytetään rajoitettua volyymivalaistusta liikkuvien valonlähteiden ja dynaamisten varjojen sallimiseksi. Tätä tekniikkaa käytetään säästeliäästi, koska se vaatii melko paljon prosessoria.
Säteenseuranta voi saavuttaa fotorealistisen tuloksen, jos pelin suunnitteluvaiheessa tehdään lisätyötä. Jos kaikki pinnat sisältävät yksityiskohtia, kuten heijastavuuden, läpinäkyvyyden ja kuinka valo taittuu niiden läpi, kokonaistulos voi näyttää luonnollisemmalta. Vaikka tämä lähestymistapa vaatii luonnollisesti enemmän työtä pelin suunnitteluvaiheessa, se mahdollistaa tuloksen näyttävän fotorealistiselta valon reagoidessa haluamallaan tavalla, kun se heijastuu betonista, metallista, puusta ja lasista jne.
Säteenjäljitys mahdollistaa tarkkojen heijastusten ja varjojen muodostamisen osana renderöintiprosessia. perinteisissä renderöintimenetelmissä nämä molemmat tehosteet ovat täysin valinnaisia ja voivat aiheuttaa merkittäviä suorituskykyiskuja.
Säteen jäljittämisessä itsessään on valtava suorituskykyhitti. Ennen kuin Nvidian RTX-näytönohjaimet julkistettiin laitteistokiihdytyksellä säteenseurantaa varten, ajateltiin, että tarvittava prosessointiteho ohjelmistojen reaaliaikaiseen säteenseurantaan oli yli vuosikymmenen päässä. Jopa laitteistokiihdytyksellä säteenseuranta aiheuttaa silti merkittävän suorituskyvyn heikkenemisen, koska se on edelleen hitain osa kehyksen renderöinnissa.