Säteenseuraajarenderöijän implementointi ja optimointi
Koskinen, Olli (2014)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201405127170
https://urn.fi/URN:NBN:fi:amk-201405127170
Tiivistelmä
Tämän insinöörityön tavoitteena oli syventyä säteenseuraajarenderöinnin teoriaan, sen toteutukseen ja optimointiin. Säteenseuranta on apuväline, jolla voidaan projisoida 3D-maailma 2D-kuvaksi. Työn toteutukseen käytettiin NVIDIA:n rinnakkaislaskentaa varten kehitettyä CUDA-ohjelmointikieltä. Työn pääpaino oli näytönohjaimella tehtävän rinnakkaislaskennan haasteissa sekä säteen/kolmion törmäystarkistuksen toteutuksessa.
Työn alussa kerrotaan säteenseurannan teoriasta. Tämän jälkeen kerrotaan teoriaa eri rajapinnoista, joita on käytetty työssä säteenseurantarenderöijän toteuttamiseen. Työn toteutusosassa käydään läpi koodiesimerkein säteenseurantarenderöijän implementointi. Työn lopussa perehdytään säteenseurannassa yleisimmin käytettyihin optimointitekniikoihin. Näitä tekniikoita ovat mm. kiihdytystietorakenteet ja eri muistityyppien käyttäminen.
Työn tekijän hypoteesina oli, että noin satatuhatta kolmiota sisältävän 3D-mallin piirtäminen saataisiin reaaliaikaiseksi optimoidulla säteenseurantarenderöijällä. Aiheesta löytyi runsaasti kirjallisuutta ja sen avulla sai koottua kattavan tietopaketin asiasta kiinnostuneille. Samalla opin paljon säteenseurannan teoriasta ja toteutuksesta, sekä näytönohjaimen ohjelmoimisesta CUDA:lla. Optimoinnin osalta saatiin kerättyä paljon tietoa teoriasta, mutta käytännön toteutus vaatii vielä jatkokehitystä. Uskon, että opinnäytetyöni toimii hyvänä tiedonlähteenä säteenseurantarenderöijän ja CUDA:n käytöstä kiinnostuneille.
Työn alussa kerrotaan säteenseurannan teoriasta. Tämän jälkeen kerrotaan teoriaa eri rajapinnoista, joita on käytetty työssä säteenseurantarenderöijän toteuttamiseen. Työn toteutusosassa käydään läpi koodiesimerkein säteenseurantarenderöijän implementointi. Työn lopussa perehdytään säteenseurannassa yleisimmin käytettyihin optimointitekniikoihin. Näitä tekniikoita ovat mm. kiihdytystietorakenteet ja eri muistityyppien käyttäminen.
Työn tekijän hypoteesina oli, että noin satatuhatta kolmiota sisältävän 3D-mallin piirtäminen saataisiin reaaliaikaiseksi optimoidulla säteenseurantarenderöijällä. Aiheesta löytyi runsaasti kirjallisuutta ja sen avulla sai koottua kattavan tietopaketin asiasta kiinnostuneille. Samalla opin paljon säteenseurannan teoriasta ja toteutuksesta, sekä näytönohjaimen ohjelmoimisesta CUDA:lla. Optimoinnin osalta saatiin kerättyä paljon tietoa teoriasta, mutta käytännön toteutus vaatii vielä jatkokehitystä. Uskon, että opinnäytetyöni toimii hyvänä tiedonlähteenä säteenseurantarenderöijän ja CUDA:n käytöstä kiinnostuneille.