Kvaterniot: Rotaatiot kolmiulotteisessa avaruudessa
Kivi, Petrus Emil Johannes (2019)
Kivi, Petrus Emil Johannes
2019
Teknis-luonnontieteellinen
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2019-05-24
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201905211674
https://urn.fi/URN:NBN:fi:tty-201905211674
Tiivistelmä
Kolmiulotteista geometriaa analysoidaan tyypillisesti vektorilaskennan ja geometrisen analyysin työkalujen avulla. Kvaterniot jätetään usein analyysissä mainitsematta niiden hyödyllisyydestä huolimatta. Tämän opinnäytetyön lähtökohtana on esitellä ja määritellä kvaterniot sekä tarkastella niiden tärkeimpiä ominaisuuksia erityisesti tietokonegrafiikassa.
Yksi tietokonegrafiikan ydinongelmista on kolmiulotteisten kappaleiden pyörittäminen kolmiulotteisessa avaruudessa. Pyörittämistä eli rotaatiota tarvitaan esimerkiksi eri kappaleiden sisäisten koordinaatistojen yhdenmukaistamisessa sekä virtuaalisen kameran orientaation muuttamisessa. Rotaatiot voidaan toteuttaa rotaatiomatriisien avulla, mutta haasteita tuovat sekä gimbal lock -ilmiö että rotaatioiden interpolointi. Gimbal lock syntyy, kun kaksi pyörähdysakselia asettuvat samansuuntaisiksi, jolloin menetetään yksi vapausaste rotaatiosta. Rotaatioiden interpoloinnin tavoitteena on määrittää kahden rotaatioakselin välinen mielekkäästi jatkuva rotaatio.
Kvaterniot ovat kompleksilukujen laajennus neljään ulottuvuuteen, ja niiden avulla pystytään kuvaamaan rotaatioita ilman rotaatiomatriisien haasteita. Tässä opinnäytetyössä kvaternioiden havaittiin olevan laskennallisesti tehokkaampia kuin rotaatiomatriisit, kun suoritettiin useampi peräkkäinen rotaatio. Lisäksi kvaternioiden muistikuormituksen todettiin olevan jopa puolet pienempi verrattuna rotaatiomatriisiin.
Yksi tietokonegrafiikan ydinongelmista on kolmiulotteisten kappaleiden pyörittäminen kolmiulotteisessa avaruudessa. Pyörittämistä eli rotaatiota tarvitaan esimerkiksi eri kappaleiden sisäisten koordinaatistojen yhdenmukaistamisessa sekä virtuaalisen kameran orientaation muuttamisessa. Rotaatiot voidaan toteuttaa rotaatiomatriisien avulla, mutta haasteita tuovat sekä gimbal lock -ilmiö että rotaatioiden interpolointi. Gimbal lock syntyy, kun kaksi pyörähdysakselia asettuvat samansuuntaisiksi, jolloin menetetään yksi vapausaste rotaatiosta. Rotaatioiden interpoloinnin tavoitteena on määrittää kahden rotaatioakselin välinen mielekkäästi jatkuva rotaatio.
Kvaterniot ovat kompleksilukujen laajennus neljään ulottuvuuteen, ja niiden avulla pystytään kuvaamaan rotaatioita ilman rotaatiomatriisien haasteita. Tässä opinnäytetyössä kvaternioiden havaittiin olevan laskennallisesti tehokkaampia kuin rotaatiomatriisit, kun suoritettiin useampi peräkkäinen rotaatio. Lisäksi kvaternioiden muistikuormituksen todettiin olevan jopa puolet pienempi verrattuna rotaatiomatriisiin.
Kokoelmat
- Kandidaatintutkielmat [8354]