Lighting and norma mapping in computer graphics : implementing normal mapping in HactEngine
Tujula, Antti (2016)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2016061913208
https://urn.fi/URN:NBN:fi:amk-2016061913208
Tiivistelmä
Tämän opinnäytetyön tarkoituksena oli tutkia pintatekstuurien ja dynaamisen valaistuksen käyttöä 3D-grafiikassa, sekä selvittää näiden tekniikoiden yhteyttä toisiinsa. Pintatekstuurit ovat tekstuureja, jolla saadaan luotua yksityiskohtia 3D-mallien pintaan, joko muokkaamalla mallin pinnan verteksejä tai asettamalla mallin pinnoille useita valaistuksen laskemiseen käytettäviä normaalivektoreita. Pintatekstuureilla saadaan luotua illuusioita, jotka yhdessä valaistuksen kanssa saavat mallin näyttämään tarvittaessa hyvinkin realistiselta.
Työ aloitettiin tutkimalla teoriaa 3D-mallinnuksesta ja tähän liittyvästä matematiikasta. Tämän jälkeen työssä tutkittiin 3D-grafiikassa yleisesti käytössä olevaa valaistustekniikkaa, BlinnPhong-valaistusmallia sekä selvitettiin erilaisten valaistusmallien yhteyttä pintatekstuurien toiminnassa. Työssä keskityttiin normaalikarttojen teknilliseen toteutukseen, jossa selvitetään tämän pintateksturointimenetelmän toiminta matemaattisesti.
Työn käytännön osuudessa ohjelmoitiin normaalikartoille tuki HactEngine-pelimoottorille. Pelimoottori on pelinkehitystä nopeuttava työkalu. HactEngine on Indium Games -yrityksen kehittämä alustariippumaton pelimoottori, jolle myönnettiin Tekes-rahoitus vuonna 2015. Moottori julkaistaan avoimena lähdekoodina sen valmistuttua, jonka jälkeen moottoria voidaan vapaasti käyttää pelien tai sovellusten kehittämiseen.
Työ aloitettiin tutkimalla teoriaa 3D-mallinnuksesta ja tähän liittyvästä matematiikasta. Tämän jälkeen työssä tutkittiin 3D-grafiikassa yleisesti käytössä olevaa valaistustekniikkaa, BlinnPhong-valaistusmallia sekä selvitettiin erilaisten valaistusmallien yhteyttä pintatekstuurien toiminnassa. Työssä keskityttiin normaalikarttojen teknilliseen toteutukseen, jossa selvitetään tämän pintateksturointimenetelmän toiminta matemaattisesti.
Työn käytännön osuudessa ohjelmoitiin normaalikartoille tuki HactEngine-pelimoottorille. Pelimoottori on pelinkehitystä nopeuttava työkalu. HactEngine on Indium Games -yrityksen kehittämä alustariippumaton pelimoottori, jolle myönnettiin Tekes-rahoitus vuonna 2015. Moottori julkaistaan avoimena lähdekoodina sen valmistuttua, jonka jälkeen moottoria voidaan vapaasti käyttää pelien tai sovellusten kehittämiseen.