Kolmiulotteisen maaston generointi
Piiroinen, Tero (2014)
Piiroinen, Tero
Karelia-ammattikorkeakoulu (Pohjois-Karjalan ammattikorkeakoulu)
2014
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201405158094
https://urn.fi/URN:NBN:fi:amk-201405158094
Tiivistelmä
Opinnäytetyön tavoitteena oli selvittää, miten kolmiulotteista maastoa voi generoida proseduraalisesti. Työssä vastataan seuraaviin kysymyksiin: mikä tekee luonnossa esiintyvästä maastosta luonnollisen näköistä ja miten luonnollista maastoa voi luoda algoritmien avulla.
Proseduraalinen sisällön generointi tarkoittaa pelin sisällön luomista algoritmien avulla siten, että käyttäjän syöte on rajattu tai epäsuora. Työssä esitellään kolme proseduraalisen maaston generoinnissa yleisesti käytettyä algoritmia toimintaperiaatteineen: keskipisteen siirto, salmiakki–neliö ja Perlin-kohina.
Käytännön osuudessa toteutettiin sovellus, jonka avulla voi generoida kolmiulotteista maastoa edellä mainittujen algoritmien avulla. Maastokappale on minimalistinen, eikä se sisällä muuta sisältöä, kuten tekstuureja, vettä, ruohikkoa, puita tai taivasta. Sovellus renderöi kolmiulotteisen maastokappaleen ruudulle, ja sitä voi tarkastella vapaasti haluamastaan kuvakulmasta. Sovellus toteutettiin JavaScript-ohjelmointikielellä WebGL-ohjelmointirajapintaa käyttäen.
Johtopäätökseksi saatiin, että luonnollinen maasto on muodoltaan fraktaali. Ilman vertailukappaletta ei voi tietää, millä suurennoksella maastoa tarkastellaan. Luonnollista maastoa voi luoda fraktaalialgoritmeja käyttäen. Fraktaalialgoritmit määritellään tyypillisesti siten, että algoritmin tuottamat korkeusarvot ovat riippuvaisia edellisistä korkeusarvoista. Tällä tavoin varmistetaan, että generoitava maastokappale on itsesimilaarinen.
Proseduraalinen sisällön generointi tarkoittaa pelin sisällön luomista algoritmien avulla siten, että käyttäjän syöte on rajattu tai epäsuora. Työssä esitellään kolme proseduraalisen maaston generoinnissa yleisesti käytettyä algoritmia toimintaperiaatteineen: keskipisteen siirto, salmiakki–neliö ja Perlin-kohina.
Käytännön osuudessa toteutettiin sovellus, jonka avulla voi generoida kolmiulotteista maastoa edellä mainittujen algoritmien avulla. Maastokappale on minimalistinen, eikä se sisällä muuta sisältöä, kuten tekstuureja, vettä, ruohikkoa, puita tai taivasta. Sovellus renderöi kolmiulotteisen maastokappaleen ruudulle, ja sitä voi tarkastella vapaasti haluamastaan kuvakulmasta. Sovellus toteutettiin JavaScript-ohjelmointikielellä WebGL-ohjelmointirajapintaa käyttäen.
Johtopäätökseksi saatiin, että luonnollinen maasto on muodoltaan fraktaali. Ilman vertailukappaletta ei voi tietää, millä suurennoksella maastoa tarkastellaan. Luonnollista maastoa voi luoda fraktaalialgoritmeja käyttäen. Fraktaalialgoritmit määritellään tyypillisesti siten, että algoritmin tuottamat korkeusarvot ovat riippuvaisia edellisistä korkeusarvoista. Tällä tavoin varmistetaan, että generoitava maastokappale on itsesimilaarinen.