Säteenseuranta

Säteenseuranta tai säteenjäljitys (engl. ray tracing) 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 renderoinniksi.

POV-Ray-ohjelmalla luotu kuva. Palloista heijastuu ympäristö.

Kyseessä on valaistuksen simulointi tietokoneohjelmalla.[1]

HistoriaMuokkaa

Termi säteenseurannalle on peräisin tavasta, jolla linssien toimintaa mallinnettiin paperille.[2] Samaa menetelmää yritettiin soveltaa tietokoneilla, mutta 1960-luvun tietokoneet olivat liian hitaita ja menetelmä jäi pois suosiosta.[2] Myöhemmin tietokoneiden tehon parannuttua menetelmää laajennettiin ja parannettiin erilaisten optisten ilmiöiden käsittelyyn.[2]

SäteenseurantaMuokkaa

 
Maya- ja Mental Ray -ohjelmilla luotu kuva.

Säteenseurannan keskeinen menetelmä on jäljittää valonlähteistä lähtevien säteiden törmäyksiä kappaleisiin ja edelleen kameran linssiin.[3] Vastakkainen menetelmä on säteensuuntaus (engl. ray casting), jossa kamera lähettää valonsäteitä.[3] 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.[4] Säteenseuranta soveltuu hyvin peilimäiseen (engl. specular) valaistukseen ja heijastukseen, mutta huonosti diffuusiin valaistukseen.[5] Säteenseurannan kanssa voidaan käyttää myös radiositeettia diffuusin valaistuksen renderöintiin.[5] Säteenseurantaan on kehitetty photon mapping -laajennus vuonna 1993 sen ongelmakohtien ratkomiseksi.[6]

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.[4] Matemaattisesti nämä ovat kaikki vain säteitä, mutta laskennan kannalta on kätevämpää toimia näillä luokilla.[4] Pikselin väri muodostuu kaikista siihen osuvien säteiden yhdistelmästä, jolloin pikseli saa yhden värin.[4]

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

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[8], jotka leikkaavat geometrisia kappaleita.[9] Vuonna 2001 esitetyn artikkelin mukaan profilointi osoittaa, että pullonkaulana suorituskyvylle ei ole suorittimen nopeus vaan kaistanleveys keskusmuistiin.[9] Artikkeli esittää korkealle optimoidun ratkaisun, joka parantaa suorituskykyä kertaluokkia resurssien paremmalla käytöllä kuten välimuistin ja SIMD-käskyjen hyödyntämisellä.[9]

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

OhjelmistotMuokkaa

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

Katso myösMuokkaa

LähteetMuokkaa

  1. Realtime Ray Tracing and its use for Interactive Global Illumination graphics.stanford.edu. Viitattu 21.1.2017.
  2. a b c Glassner, Andrew S.: An Introduction to Ray Tracing, s. ix–x. Academic Press, 1989. ISBN 0-12-286160-4. Teoksen verkkoversio. (englanniksi)
  3. a b Ray-tracing and other Rendering Approaches (PDF) nccastaff.bournemouth.ac.uk. Viitattu 18.12.2017.
  4. a b c d Glassner, Andrew S.: An Introduction to Ray Tracing, s. 5–10. Academic Press, 1989. ISBN 0-12-286160-4. Teoksen verkkoversio. (englanniksi)
  5. a b Hughes, John F. & van Dam, Andries: Introduction to Radiosity (PDF) eecs.umich.edu. Viitattu 18.12.2017.
  6. A Practical Guide to Global Illumination using Photon Mapping (PDF) cs.princeton.edu. 14.8.2001. Viitattu 29.1.2021. (englanniksi) 
  7. a b c Glassner, Andrew S.: An Introduction to Ray Tracing, s. 29. Academic Press, 1989. ISBN 0-12-286160-4. Teoksen verkkoversio. (englanniksi)
  8. a b Imagination Demos Realtime Ray Tracing Tom's Hardware. Viitattu 21.1.2017.
  9. a b c Ingo Wald & Philipp Slusallek & Carsten Benthin & Markus Wagner: Interactive Rendering with Coherent Ray Tracing researchgate.net. syyskuu 2001. doi:10.1111/1467-8659.00508. Viitattu 2.1.2020. (englanniksi)
  10. Henri Pirinen: GPGPU-säteenseuranta Jyväskylän Yliopisto. Viitattu 21.1.2017.
  11. Introduction to Realtime Ray Tracing eng.utah.edu. Viitattu 21.1.2017.
  12. a b Pharr, Matt & Jakob, Wenzel & Humphreys, Greg: Physically Based Rendering, s. 50. Third Edition. Morgan Kaufmann, 2017. ISBN 978-0-12-800645-0. (englanniksi)
  13. Ray Tracing In Vulkan khronos.org. 17.3.2020. Viitattu 23.11.2020. (englanniksi)

Aiheesta muuallaMuokkaa