Säteenseuranta

**Säteenseuranta** tai **säteenjäljitys** () tarkoittaa kuvan luomista tietokoneella valonsäteiden kulkua (sädeoptiikkaa) jäljittelevän tietokoneohjelman avulla. Tätä kuvan luovaa ohjelmaa sanotaan ray traceriksi ja kuvan luomista renderöinniksi. 

Kyseessä on valaistuksen simulointi tietokoneohjelmalla.

## Historia
Termi säteenseurannalle on peräisin tavasta, jolla linssien toimintaa mallinnettiin paperille. Samaa menetelmää yritettiin soveltaa tietokoneilla, mutta 1960-luvun tietokoneet olivat liian hitaita ja menetelmä jäi pois suosiosta. Vuonna 1968 Arthur Appel julkaisi artikkelin *Some techniques for shading machine renderings of solids*, joka käsittelee varjoja ja värejä sekä valon säteiden kohtaamista kappaleissa. Turner Whitted esitti vuonna 1980 parannetun menetelmän.
Myöhemmin tietokoneiden tehon parannuttua menetelmää laajennettiin ja parannettiin erilaisten optisten ilmiöiden käsittelyyn.

## Menetelmä

Säteenseurannan keskeinen menetelmä on jäljittää valonlähteistä lähtevien säteiden törmäyksiä kappaleisiin ja edelleen kameran linssiin. Vastakkainen menetelmä on säteensuuntaus (), jossa kamera lähettää valonsäteitä. 
Koska vain pieni osa valonlähteen säteistä päätyy kameraan tehokkuussyistä tyypillisemmin käytetään käänteistä valonsäteen mallinnusta, joka ilmenee kirjallisuudessa ja algoritmien kuvauksessa.
Säteenseuranta soveltuu hyvin peilimäiseen () valaistukseen ja heijastukseen, mutta huonosti diffuusiin valaistukseen. Säteenseurannan kanssa voidaan käyttää myös radiositeettia diffuusin valaistuksen renderöintiin. Säteenseurantaan on kehitetty photon mapping -laajennus vuonna 1993 sen ongelmakohtien ratkomiseksi.

Säteenseurannassa säteet voidaan jakaa konseptitasolla neljään luokkaan: *pikselisäteet* tai *silmäsäteet* jotka kantavat valon suoraan silmään näytöllä olevan pikselin kautta; *valaistussäteet* tai *varjosäteet* jotka kantavat valoa valonlähteestä suoraan kappaleen pinnalle; *heijastussäteet* jotka kantavat kappaleesta heijastunutta valoa; ja *läpinäkyvyyssäteet* jotka kantavat kappaleen läpi kulkevaa valoa. Matemaattisesti nämä ovat kaikki vain säteitä, mutta laskennan kannalta on kätevämpää toimia näillä luokilla. Pikselin väri muodostuu kaikista siihen osuvien säteiden yhdistelmästä, jolloin pikseli saa yhden värin.

Valon poukkoilu tilassa voidaan esittää matemaattisesti kaavana, joka tunnetaan *[[renderöintiyhtälö]]nä*. Säteenseuranta on yksi tehokas menetelmä yhtälön ratkaisuun. Yhtälöön voidaan löytää ratkaisuja stokastisella säteenseurannalla tekniikoilla kuten *importance sampling* ja polunseurannalla.

Säteenseurannalla päästään realistisiin tuloksiin verrattuna Phong-varjostusmallin tyyppisiin muita kappaleita huomioimattomiin ja valon käyttäytymistä vain karkeasti approksimoiviin menetelmiin. Vastaavasti laskennallinen vaativuus on paljon suurempi. Säteenjäljistyskään ei aina simuloi valon käyttäytymistä täysin oikein. 

Renderöivälle maisemalle kuvataan mm. valonlähteiden paikat ja ominaisuudet, näkyvien kappaleiden sijainnit, koot, asennot ja pintamateriaalit jne. Samasta maisemasta voi raytracerilla ottaa kuvia eri kuvakulmista.

Säteenseuranta on laskennallisesti vaativaa ja tarvitsee pitkän laskenta-ajan, sillä valonsäteitä tarvitaan useita, jotka leikkaavat geometrisia kappaleita.
Vuonna 2001 esitetyn artikkelin mukaan profilointi osoittaa, että pullonkaulana suorituskyvylle ei ole suorittimen nopeus vaan kaistanleveys keskusmuistiin. Artikkeli esittää korkealle optimoidun ratkaisun, joka parantaa suorituskykyä kertaluokkia resurssien paremmalla käytöllä kuten välimuistin ja SIMD-käskyjen hyödyntämisellä. 

Reaaliaikainen fotorealistinen grafiikka ei ole nykytietokoneilla mahdollista säteenseurantamenetelmällä, mutta aiheesta on tehty demoja sekä laitteistotuella tehtävää käsittelyä on esitelty. GPGPU-ohjelmoinnilla tehtävästä säteenseurannasta on tehty tutkielmia.
Reaaliaikaisessa grafiikassa kuten videopeleissä käytetään tyypillisesti rasterointi-menetelmää valaistukseen sääteenseurannan sijaan.
2000-luvun alkupuolella useat tutkijat kiinnostuivat reaaliaikaisen säteenseurannan kehittämisestä tietokoneiden suorituskyvyn ja rinnakkaisuuden kehityksen myötä. Wald, Slusallek ja Benthin kirjoittivat merkittävän artikkelin korkealle optimoidusta säteenseurannasta, joka oli huomattavasti aikaisempia tehokkaampi. 

### Reaaliaikainen säteenseuranta
Videopeleissä säteenseurantaa käytetään rasterointimenetelmän kanssa, jossa säteenseurannalla tuotetut varjot ja valaistus yhdistetään. Säteenseurantaa voidaan käyttää heijastuksille ja varjoille parantamaan kuvan laatua, jolloin se helpottaa kehittäjän työtä. Ilman säteenseurantaa on käytettävä *varjokarttoja* () varjojen esittämiseen ja valaistukseen voidaan käyttää valaistuksen "leipomista" *valaistuskartalla* (, ) etukäteen. 2000-luvun alussa ehdotettiin tietorakenteiden muodostamista geometriatiedosta käsittelyn nopeuttamiseen, mutta tuolloin olemassa olleet käskykannat eivät voineet tehdä näin tehokkaasti. Grafiikkaprosessoreihin lisätty säteenseurannan tuki ei kokonaan korvaa rasterointia, vaan sitä käytetään tiettyihin valikoituihin tehosteisiin laskennallisen vaativuuden johdosta. Lisäksi sitä voidaan käyttää vain tiettyihin kappaleisiin ja vain toissijaisiin säteisiin, jotka vaikuttavat näyttävimpiin kohtiin.

## Ohjelmistot
Esimerkkejä säteenseurantaohjelmista ovat avoimen lähdekoodin POV-Ray ja suomalainen kaupallinen Realsoft 3D.

## Katso myös
* Luettelo säteenseurantaohjelmistoista
* Säteensuuntaus
* Radiositeetti

## Lähteet

## Aiheesta muualla