Säteenseuranta

Kohteesta Wikipedia
Loikkaa: valikkoon, hakuun
POV-Ray-ohjelmalla luotu kuva. Palloista heijastuu ympäristö.

Säteenseuranta tai säteenjäljitys (engl. ray tracing) tarkoittaa kuvan luomista tietokoneella valonsäteiden kulkua jäljittelevän tietokoneohjelman avulla. Tätä kuvan luovaa ohjelmaa sanotaan ray traceriksi ja kuvan luomista renderoinniksi.

Kyseessä on valaistuksen simulointi tietokoneohjelmalla.[1]

Säteenseuranta[muokkaa | muokkaa wikitekstiä]

Maya- ja Mental Ray -ohjelmilla luotu kuva.

Säteenseurannan ajatus on, että jokaisessa kameranäkymän pisteessä seurataan kappaleesta kameran linssiin tulevaa valonsädettä takaperin, kunnes heijastumien perusteella voidaan päätellä pikselin väriarvo. Tällä päästään realistisiin tuloksiin verrattuna Phongin valaistusmallin 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.

Perinteisessä säteenseurantaohjelmassa kuvattava maisema luodaan ohjelmointikieltä muistuttavalla kielellä, jossa 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 verrattain hidasta, sillä valonsäteitä tarvitaan useita[2], joita on laskettava useiden heijastusten ajan. Tämän seurauksena jokaiselle kuvan pikselille joudutaan tekemään useita laskutoimituksia.

Reaaliaikainen fotorealistinen grafiikka ei ole nykytietokoneilla mahdollista säteenseurantamenetelmällä, mutta aiheesta on tehty demoja sekä laitteistotuella tehtävää käsittelyä on esitelty.[2] GPGPU-ohjelmoinnilla tehtävästä säteenseurannasta on tehty tutkielmia.[3] Reaaliaikaisessa grafiikassa kuten videopeleissä käytetään tyypillisesti rasterointi-menetelmää valaistukseen sääteenseurannan sijaan.[4]

Säteenseurannan lisäksi kolmiulotteisten kuvien luomisessa on käytetty melko nopeaa pyyhkäisyviiva-renderointia ja radiance-menetelmää, jossa on enemmän kappalten välisiä heijastuksia.

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

POV-Rayn koodiesimerkki[muokkaa | muokkaa wikitekstiä]

Alla on POV-Ray-koodi, jolla luodaan punainen pallo. Paikat kuvataan kolmella luvulla: paikka pystysuunnassa, vaakasuunnassa ja syvyyssuunnassa on muotoa <pysty, vaaka, syvyys> eli matemaattisemmin <x,y,z>. Värit kuvataan RGB-värijärjestelmässä.


 // Kamera ...
 // location: kameran paikka ilmoitteaan kolmella luvulla
 // look_at: piste mihin kamera katsoo
 // paikan jne. mittayksiköt ovat ohjelman käyttämiä mielivaltaisia yksiköitä

 camera {
  location <0,5,-12> 
  look_at <0,0,0>
 }

 // Hieman valaistusta
 light_source {
  <0,0,-100> // valonlähteen paikka
  color rgb <1,1,1> // valonlähteen väri rgb (punainen, vihreä, sininen) <1,1,1> on valkoinen
 }

 // pallo
 sphere {
  <0,0,0>, 5 //pallon paikka on pisteessä 0,0,0 ja sen säde on 5
  pigment { color rgb <1,0,0> } // pinnoite, väri punainen (r=1, g=0, b=0), punainen 1, sininen 0 vihreä 0
 }

Katso myös[muokkaa | muokkaa wikitekstiä]

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. Realtime Ray Tracing and its use for Interactive Global Illumination Viitattu 21.1.2017.
  2. a b Imagination Demos Realtime Ray Tracing Tom's Hardware. Viitattu 21.1.2017.
  3. Henri Pirinen: GPGPU-säteenseuranta Jyväskylän Yliopisto. Viitattu 21.1.2017.
  4. Introduction to Realtime Ray Tracing Viitattu 21.1.2017.