Vokselimaaston käsittely ja renderointi
Lindblad, Ville (2020)
Lindblad, Ville
2020
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020112824915
https://urn.fi/URN:NBN:fi:amk-2020112824915
Tiivistelmä
Insinöörityössä oli tarkoituksena kehittää työkalu ja algoritmeja vokselimaaston tehokkaaseen käsittelyyn ja renderointiin Unity-pelimoottorilla. Tavoitteena oli kehittää komponentteja, joita voidaan käyttää esimerkiksi kehittäessä pelejä, joissa halutaan suuri satunnaistettu maasto pelimaailman ympäristön pohjaksi tai antaa pelaajille mahdollisuus muovata pelimaailmaa.
Insinöörityössä luotiin komponentit, joiden avulla voidaan luoda maastonmuotoja proseduraalisesti, muokata maastoa pelin aikana ja renderoida maasto reaaliajassa. Vokselien renderointi toteutettiin muodostamalla polygoneja marching cubes -algoritmin avulla. Jotta polygonien ja prosessoitujen vokselien määrää voitiin säätää, luotiin algoritmi, joka jakaa maaston lohkoihin ja käsittelee jokaisen osan erikseen. Tämä mahdollisti esimerkiksi prosessoinnin säikeistämisen, joka oli välttämätöntä suurimman mahdollisen prosessointitehon saavuttamiseksi nykyaikaisilla moniytimisillä prosessoreilla.
Vokselimaaston luomiseen proseduraalisesti käytettiin etäisyys- ja tiheysfunktioita. Perlin-kohinaa käytettiin maaston satunnaisten muotojen luomiseen. Mahdollisuus muovata maastoa toteutettiin käyttämällä Boolen operaatioita, joiden avulla maastoon voi esimerkiksi kaivaa tunneleita.
Työn tuloksena syntyi työkalu, jonka avulla vokselimaastoja voi luoda tehokkaasti Unity-pelimoottorissa. Järjestelmä hyödyntää moniytimisiä prosessoreita tehokkaasti, ja muistinkäyttö ja ruudunpäivitysnopeus pysyvät hyväksyttävällä tasolla. Proseduraalinen luonti toteutettiin niin, että sen päälle on helppo lisätä uusia algoritmeja maaston luomista varten.
Työkalua voidaan jatkokehittää, jotta siitä saataisiin valmiimpi kokonaisuus vokselipelien kehitykseen. Maaston katseluetäisyys on rajallinen, koska järjestelmä ei tue vaihtuvaa yksityiskohtien tasoa. Järjestelmän komponentit antavat kuitenkin tehokkaasti toimivan pohjan vokselipelien kehitykselle.
Insinöörityössä luotiin komponentit, joiden avulla voidaan luoda maastonmuotoja proseduraalisesti, muokata maastoa pelin aikana ja renderoida maasto reaaliajassa. Vokselien renderointi toteutettiin muodostamalla polygoneja marching cubes -algoritmin avulla. Jotta polygonien ja prosessoitujen vokselien määrää voitiin säätää, luotiin algoritmi, joka jakaa maaston lohkoihin ja käsittelee jokaisen osan erikseen. Tämä mahdollisti esimerkiksi prosessoinnin säikeistämisen, joka oli välttämätöntä suurimman mahdollisen prosessointitehon saavuttamiseksi nykyaikaisilla moniytimisillä prosessoreilla.
Vokselimaaston luomiseen proseduraalisesti käytettiin etäisyys- ja tiheysfunktioita. Perlin-kohinaa käytettiin maaston satunnaisten muotojen luomiseen. Mahdollisuus muovata maastoa toteutettiin käyttämällä Boolen operaatioita, joiden avulla maastoon voi esimerkiksi kaivaa tunneleita.
Työn tuloksena syntyi työkalu, jonka avulla vokselimaastoja voi luoda tehokkaasti Unity-pelimoottorissa. Järjestelmä hyödyntää moniytimisiä prosessoreita tehokkaasti, ja muistinkäyttö ja ruudunpäivitysnopeus pysyvät hyväksyttävällä tasolla. Proseduraalinen luonti toteutettiin niin, että sen päälle on helppo lisätä uusia algoritmeja maaston luomista varten.
Työkalua voidaan jatkokehittää, jotta siitä saataisiin valmiimpi kokonaisuus vokselipelien kehitykseen. Maaston katseluetäisyys on rajallinen, koska järjestelmä ei tue vaihtuvaa yksityiskohtien tasoa. Järjestelmän komponentit antavat kuitenkin tehokkaasti toimivan pohjan vokselipelien kehitykselle.
