Matalan tason grafiikkaohjelmointirajapintojen vertailu
Helperi, Veikko-Matti (2018)
Helperi, Veikko-Matti
2018
Tietotekniikka
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication 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ä
2018-01-14
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201901111076
https://urn.fi/URN:NBN:fi:tty-201901111076
Tiivistelmä
Tietokonegrafiikka on kasvava tietotekniikan osa-alue, johon kuuluu myös grafiikkaohjelmointi. Grafiikkaohjelmointirajapinnat ovat osa pelien graafista toteutusta. Nämä ohjelmointirajapinnat mahdollistavat ohjelmoijan kirjoittaman ohjelmakoodin vuorovaikutuksen laitteiston kanssa, grafiikkaohjelmoinnin tapauksessa rajapinnan laitteistotasona toimii laitteen grafiikkasuoritin.
Vulkan, DirectX 12 ja Metal ovat matalan tason grafiikkaohjelmointirajapintoja. Niiden yhteneväisenä tavoitteena on tarjota ohjelmoijalle suorituskykyinen ohjelmointirajapinta. Tässä työssä vertailtiin näitä kolmea ohjelmointirajapintaa pelinkehittäjän näkökulmasta. Vertailun tavoitteena oli löytää rajapintojen väliset erot. Vertailukriteereiksi valittiin suorituskyky, käyttö, ominaisuudet ja yhteensopivuus.
Vertailun tuloksena Vulkan osoittautui hyvin suorituskykyiseksi ja laajasti yhteensopivaksi grafiikkaohjelmointirajapinnaksi. Synteettisessä suorituskykytestissä se osoittautui valitulla testauslaitteistolla DirectX-rajapintaa suorituskykyisemmäksi. Vulkanin yhteensopivuus oli myös vertailun laajin, koska se kattoi suurimman osan merkittävistä käyttöjärjestelmistä ja modernista laitteistosta. Vertailussa huomattiin myös DirectX-rajapinnan hyödyt. Sen tarjoamat ominaisuudet ja yhteensopivuus, kuten sama kehitysalusta Xbox-konsolin ja Windows-käyttöjärjestelmien kesken on merkittävä etu pelinkehittäjän näkökulmasta. Metal-rajapinnan rajallinen yhteensopivuus osoittautui sen määritteleväksi tekijäksi.
Löydettyjen eroavaisuuksien perusteella pääteltiin, että grafiikkaohjelmointirajapinnalla on merkittävä vaikutus ohjelmoitavaan peliin. Rajapintojen yhteensopivuuden, suorituskyvyn ja ominaisuuksien erojen arvioitiin olevan riittävän merkittäviä vaikuttamaan omilta osiltaan pelinkehityksen lopputulokseen. Lopuksi pääteltiin, että pelinkehityksen näkökulmasta kehittäjän tulisi tiedostaa nämä vaikutukset ja tehdä rajapintoja koskevat valinnat niiden erovaisuuksien perusteella.
Vulkan, DirectX 12 ja Metal ovat matalan tason grafiikkaohjelmointirajapintoja. Niiden yhteneväisenä tavoitteena on tarjota ohjelmoijalle suorituskykyinen ohjelmointirajapinta. Tässä työssä vertailtiin näitä kolmea ohjelmointirajapintaa pelinkehittäjän näkökulmasta. Vertailun tavoitteena oli löytää rajapintojen väliset erot. Vertailukriteereiksi valittiin suorituskyky, käyttö, ominaisuudet ja yhteensopivuus.
Vertailun tuloksena Vulkan osoittautui hyvin suorituskykyiseksi ja laajasti yhteensopivaksi grafiikkaohjelmointirajapinnaksi. Synteettisessä suorituskykytestissä se osoittautui valitulla testauslaitteistolla DirectX-rajapintaa suorituskykyisemmäksi. Vulkanin yhteensopivuus oli myös vertailun laajin, koska se kattoi suurimman osan merkittävistä käyttöjärjestelmistä ja modernista laitteistosta. Vertailussa huomattiin myös DirectX-rajapinnan hyödyt. Sen tarjoamat ominaisuudet ja yhteensopivuus, kuten sama kehitysalusta Xbox-konsolin ja Windows-käyttöjärjestelmien kesken on merkittävä etu pelinkehittäjän näkökulmasta. Metal-rajapinnan rajallinen yhteensopivuus osoittautui sen määritteleväksi tekijäksi.
Löydettyjen eroavaisuuksien perusteella pääteltiin, että grafiikkaohjelmointirajapinnalla on merkittävä vaikutus ohjelmoitavaan peliin. Rajapintojen yhteensopivuuden, suorituskyvyn ja ominaisuuksien erojen arvioitiin olevan riittävän merkittäviä vaikuttamaan omilta osiltaan pelinkehityksen lopputulokseen. Lopuksi pääteltiin, että pelinkehityksen näkökulmasta kehittäjän tulisi tiedostaa nämä vaikutukset ja tehdä rajapintoja koskevat valinnat niiden erovaisuuksien perusteella.
Kokoelmat
- Kandidaatintutkielmat [7045]