Veden aaltoalgoritmit videopeleissä
Leppänen, Pauli (2024)
Leppänen, Pauli
2024
Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
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ä
2024-05-18
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202405105664
https://urn.fi/URN:NBN:fi:tuni-202405105664
Tiivistelmä
Veden käyttö videopeleissä on yleistä, mikä tuo mukanaan tarpeen erilaisille vesisimulaatioille. Oli simulaation kohteena lätäkkö tai valtameri, ne tuovat vaativia haasteita pelinkehittäjille, varsinkin jos peli tähtää mahdollisimman realistisiin grafiikoihin. Tämän tutkielman tavoitteena on tarkastella reaaliaikaisen vesisimulaation mahdollistavia algoritmeja ja niiden ominaisuuksia sekä suositella niiden perusteella lupaavien algoritmien käyttöä.
Tutkielman alussa perehdytään videopelien vesisimulaatioiden vaatimuksiin, joista tärkeimmiksi osoittautuvat tehokkuus, uskottavuus ja vuorovaikutukset ympäristön kanssa. Pelinkehittäjät myös haluavat peliensä toimivan tehokkaasti mahdollisimman suurella osalla pelitietokoneista ja konsoleista. Tämä vaatii kompromisseja vesisimulaation laadulta, mikä taas usein vähentää sen uskottavuutta. Vesisimulaation täytyy siis saavuttaa tehokkuuden ja realistisuuden kanssa tasapaino.
Tutkielmassa havaitaan eri algoritmien soveltuvan parhaiten eri tilanteisiin. Mikäli ympäristön vuorovaikutukset ovat vähäisiä, niin meren spektristä nopealla Fourier-muunnoksella saadut aallot sopivat isojen ja syvien vesimassojen simulaatioon, kun taas tyyniin lampiin saattaa riittää yksinkertaiset siniaallot. Ympäristön vuorovaikutuksia tukevat algoritmit perustuvat Navier-Stokesin-yhtälöihin ja soveltuvat paremmin mataliin vesiin. Näistä algoritmeista putkimalli (eng. pipe model) näyttää lupaavalta sen suuren tehokkuuden takia. Mikään algoritmi ei kuitenkaan sovellu hyvin joka tilanteeseen, joten paras algoritmi on eri algoritmien yhdistelmä tai yksinkertaisesti eri algoritmien käyttö videopelin eri tilanteissa.
Tutkielman yhteydessä toteutetaan yksinkertaiset vesisimulaatioalgoritmit siniaaltojen summa ja Gerstner-aallot sekä hieman monimutkaisemmat Tessendorfin kehittämät aallot, jotka lasketaan meren spektristä nopean Fourier-muunnoksen avulla. Vesisimulaatiot on toteutettu Godot-pelimoottorilla, joten niitä on mahdollista käyttää oikeissa peleissä.
Tutkielman alussa perehdytään videopelien vesisimulaatioiden vaatimuksiin, joista tärkeimmiksi osoittautuvat tehokkuus, uskottavuus ja vuorovaikutukset ympäristön kanssa. Pelinkehittäjät myös haluavat peliensä toimivan tehokkaasti mahdollisimman suurella osalla pelitietokoneista ja konsoleista. Tämä vaatii kompromisseja vesisimulaation laadulta, mikä taas usein vähentää sen uskottavuutta. Vesisimulaation täytyy siis saavuttaa tehokkuuden ja realistisuuden kanssa tasapaino.
Tutkielmassa havaitaan eri algoritmien soveltuvan parhaiten eri tilanteisiin. Mikäli ympäristön vuorovaikutukset ovat vähäisiä, niin meren spektristä nopealla Fourier-muunnoksella saadut aallot sopivat isojen ja syvien vesimassojen simulaatioon, kun taas tyyniin lampiin saattaa riittää yksinkertaiset siniaallot. Ympäristön vuorovaikutuksia tukevat algoritmit perustuvat Navier-Stokesin-yhtälöihin ja soveltuvat paremmin mataliin vesiin. Näistä algoritmeista putkimalli (eng. pipe model) näyttää lupaavalta sen suuren tehokkuuden takia. Mikään algoritmi ei kuitenkaan sovellu hyvin joka tilanteeseen, joten paras algoritmi on eri algoritmien yhdistelmä tai yksinkertaisesti eri algoritmien käyttö videopelin eri tilanteissa.
Tutkielman yhteydessä toteutetaan yksinkertaiset vesisimulaatioalgoritmit siniaaltojen summa ja Gerstner-aallot sekä hieman monimutkaisemmat Tessendorfin kehittämät aallot, jotka lasketaan meren spektristä nopean Fourier-muunnoksen avulla. Vesisimulaatiot on toteutettu Godot-pelimoottorilla, joten niitä on mahdollista käyttää oikeissa peleissä.
Kokoelmat
- Kandidaatintutkielmat [8430]