Fundamentals of shaders with modern game engines
Hasu, Joona (2018)
Diplomityö
Hasu, Joona
2018
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2018110547290
https://urn.fi/URN:NBN:fi-fe2018110547290
Tiivistelmä
This thesis took a broad look at fundamentals of shaders in modern game engines in order to provide information about their usability in three game engines, which are currently in use by Seepia Games. The first objective of this thesis was to find out how usable shaders are in Unity, Defold and PixiJS. This was achieved by comparisons, tests and implementations. The second objective was to make a deeper dive to test how usable shaders are in PixiJS. Examination and benchmarking were done by comparing filter and shader approaches against the original version. Third objective was to find out how usable visual tools are for shader creation using Unity. This was tested by creating shaders normally and using the Shader Graph tool and comparing the methods and results. The results of the thesis are the following: 1. Shaders are usable in all of the game engines of which Unity provides the best support. 2. Shaders are usable in PixiJS, but somewhat laborous and heavy use causes performance issues. 3. Visual tools are good for shader creation because they enable faster prototyping and lower the ceiling for learning shader development. Tämä opinnäytetyö käy läpi laaja-alaisesti varjostimien perusteet moderneissa pelimoottoreissa. Tarkoituksena oli saada informaatiota varjostimien käytettävyydestä kolmessa pelimoottorissa, joita Seepia Games käyttää tällä hetkellä. Tämän opinnäytetyön ensimmäinen tavoite oli selvittää, kuinka käyttökelpoisia varjostimet ovat Unity, Defold ja PixiJS pelimoottoreissa. Tämä saavutettiin vertailuilla, testeillä ja toteutuksilla. Toinen tavoite oli tehdä syventävää testausta kuinka käyttökelpoisia varjostimet ovat PixiJS-pelimoottorissa. Tarkastelu ja suorituskyvyn mittaaminen suoritettiin vertaamalla filter ja shader lähestymistapaa alkuperäiseen versioon. Kolmas tavoite oli selvittää kuinka käyttökelpoiset visuaaliset työkalut ovat varjostimien kehittämiseen käyttäen Unity-pelimoottoria. Tämä saavutettiin tekemällä varjostimia normaalisti sekä käyttämällä Shader Graph työkalua ja vertaamalla toteutustapoja ja tuloksia. Työn tuloksena selvisi: 1. Varjostimet ovat käytettävissä kaikissa pelimoottoreissa, joista Unity tarjoaa parhaan tuen. 2. Shaderit toimivat PixiJS:ssä, mutta ovat työläitä käyttää ja paljon käytettynä aiheuttavat suorituskyky ongelmia. 3. Visuaaliset työkalut osoittautuivat hyödyllisiksi, koska ne mahdollistivat nopean prototyyppauksen ja alensivat varjostimien opettelun kynnystä.