OpenGL ES varjostimet Kajak3D pelimoottorissa
Höykinpuro, Anssi (2010)
Höykinpuro, Anssi
Kajaanin ammattikorkeakoulu
2010
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2010121017840
https://urn.fi/URN:NBN:fi:amk-2010121017840
Tiivistelmä
Älypuhelimien laskentateho kasvaa koko ajan, joka mahdollistaa grafiikan laadun kohenemisen ja uusien laskentatapojen hyödyntämisen. Teknologian kehittyessä myös mahdollisuus OpenGL ES piirtoprosessin ohjelmoimiseen avautui. Piirtoprosessin ohjelmointi käyttäen varjostinohjelmia mahdollistaa piirtojäljen muokkaamisen kehittäjän tarpeiden mukaiseksi. Varjostinohjelmien käyttäminen älypuhelimien piirtoprosessissa on yhä tuore asia, mutta muuttuu yhä yleisemmäksi ja tärkeämmäksi laitteiden kehittyessä.
Tämän opinnäytetyön tavoite on tutkia OpenGL ES varjostimien kehittämistä Kajak3D pelimoottorille. Teoria on hankittu varjostinohjelmien kehittämiseen keskittyneistä kirjoista ja OpenGL ES 2.0 varjostinkielen virallisesta määrittelystä. Kajak3D teoria on hankittu Kajak3D-projektin dokumentaatiosta, JSR-184 määrittelystä ja henkilökohtaisina tiedonantoina Kajak3D:n kehitystiimiltä. Tietoa varjostimien kehittämisestä on paljon, mutta vain osa tuosta tiedosta on hyödynnettävää OpenGL ES 2.0 varjostinohjelmien kehittämissä älypuhelinalustoille.
Opinnäytetyön ohella on kehitetty Fixed Function Pipeline-varjostin, joka tulee toimimaan oletusvarjostinohjelmana Kajak3D pelimoottorin OpenGL ES 2.x toteutuksessa. Varjostinohjelman tavoite on toteuttaa vastaava toiminnallisuus, jota OpenGL ES 1.x käyttää verteksi- ja fragmenttiprosessoinnissa. Varjostinohjelma noudattaa myös Kajak3D:n käyttämää JSR-184 määrittelyä.
Toteutettu varjostinohjelma on testattu osa-alue kerrallaan PC-ympäristössä käyttäen OpenGL ES 2.x emulointia. Testauksessa on luotu kaksi sovellusta käyttäen OpenGL ES 1.x ja OpenGL ES 2.x toteutusta, joiden piirtojäljen eroavuuksia on verrattu silmämääräisesti. Lisäksi varjostinohjelman toimivuus on testattu Maemo ja Bada käyttöjärjestelmillä varustetuilla älypuhelimilla. Toteutus osoittautui kiinteää piirtoprosessia hitaammaksi. Osa varjostinohjelman toiminnasta on todettu moitteettomaksi, mutta lopullinen piirtojälki kuitenkin poikkeaa tavoitteesta.
Tämän opinnäytetyön tavoite on tutkia OpenGL ES varjostimien kehittämistä Kajak3D pelimoottorille. Teoria on hankittu varjostinohjelmien kehittämiseen keskittyneistä kirjoista ja OpenGL ES 2.0 varjostinkielen virallisesta määrittelystä. Kajak3D teoria on hankittu Kajak3D-projektin dokumentaatiosta, JSR-184 määrittelystä ja henkilökohtaisina tiedonantoina Kajak3D:n kehitystiimiltä. Tietoa varjostimien kehittämisestä on paljon, mutta vain osa tuosta tiedosta on hyödynnettävää OpenGL ES 2.0 varjostinohjelmien kehittämissä älypuhelinalustoille.
Opinnäytetyön ohella on kehitetty Fixed Function Pipeline-varjostin, joka tulee toimimaan oletusvarjostinohjelmana Kajak3D pelimoottorin OpenGL ES 2.x toteutuksessa. Varjostinohjelman tavoite on toteuttaa vastaava toiminnallisuus, jota OpenGL ES 1.x käyttää verteksi- ja fragmenttiprosessoinnissa. Varjostinohjelma noudattaa myös Kajak3D:n käyttämää JSR-184 määrittelyä.
Toteutettu varjostinohjelma on testattu osa-alue kerrallaan PC-ympäristössä käyttäen OpenGL ES 2.x emulointia. Testauksessa on luotu kaksi sovellusta käyttäen OpenGL ES 1.x ja OpenGL ES 2.x toteutusta, joiden piirtojäljen eroavuuksia on verrattu silmämääräisesti. Lisäksi varjostinohjelman toimivuus on testattu Maemo ja Bada käyttöjärjestelmillä varustetuilla älypuhelimilla. Toteutus osoittautui kiinteää piirtoprosessia hitaammaksi. Osa varjostinohjelman toiminnasta on todettu moitteettomaksi, mutta lopullinen piirtojälki kuitenkin poikkeaa tavoitteesta.