Erosion is the action of various natural processes, such as water flow, wind and gravity, that displaces material from one area to another. Creating physically-based models of these complex phenomena has been a major challenge in creating realistic terrain in video games in a fast way, without having a 3D artist model the terrain by hand. There has also been an increasing interest in representing terrain in a more complex way using 3D data, to support more interesting terrains which can contain overhangs, arches and caves. With this new terrain representation there is also a need for new models for terrain generation and modification, to handle the difference in data representation. Combining the work of previous hydraulic erosion models (erosion caused by running water), this thesis proposes a new approach to hydraulic erosion on 3D-SDF data. An efficient shallow-water model combined with making an approximation of the 3D data into multiple “layers” are the main components of this model. The number of layers relates to how the 3D model can represent 3D features such as overhangs and arches. This also enables the model to be mapped to the GPU, for efficient simulation speeds. A performance comparison was carried out on the 3D erosion model, both comparing the difference on the CPU and GPU, as well as the performance compared to it’s 2D counterpart. The terrains were rendered using OpenGL, and the simulation on the GPU was implemented using CUDA. The 3D model took about 2.8 times longer than it’s 2D counterpart for a terrain of size 1024x1024 with 2 layers, with degrading results as the layers needed to represent the 3D terrain increase. The simulation was around 10-15 times faster on the GPU compared to the single core CPU version, also with degrading results as the amount of layers increase. This thesis thus provides a simple and efficient hydraulic erosion model that can be used on 3D-SDF data, which supports overhangs and arches. / Erosion är effekten av ett antal olika naturliga processer, så som vatten flöde av regn, vind och gravitation, som förflyttar material från en plats till en annan. Att skapa verklighets baserade modeller av dessa komplexa fenomen har varit en stor utmaning för att skapa verklighetstrogna terränger för datorspel på ett snabbt vis, utan att behöva en 3D artist som modellerar terränger för hand. Det finns även ett ökat intresse för att representera terräng på mer komplexa sätt med användningen av 3D data, för att stödja mer intressanta terrängen som kan innehålla överhäng, valv och grottor. Med ett nytt sätt att representera terräng behövs det även nya modeller för att generera och modifiera terräng, som tar hänsyn till skillnaden i hur data representeras. Genom att kombinera arbetet från tidigare vatten erosions modeller föreslår denna tes ett nytt sätt för vatten erosion på 3D-SDF data. En effektiv flödesmodell kombinerat med en approximation av 3D data i form av flera lager är huvudkomponenterna av denna modell. Antalet lager relaterar till vilka sorts 3D egenskaper som kan representeras, så som överhäng och valv. Lagrena gör även att modellen kan exekveras på GPU:n, för effektivare simulations hastigheter. En prestanda jämförelse genomföred på 3D erosions modellen, där både skillnaden mellan GPU och CPU jämfördes, samt prestandan jämfört med 2D motsvarigheten. Terrängerna renderades med OpenGL, och simuleringen på GPU:n implementerades med hjälp av CUDA. 3D modellen tog omkring 2.8 gånger så långt tid som 2D motsvarigheten för en terräng med storlek 1024 x 1024 med 2 lager, med degraderande resultat när antalet lager ökades. Simuleringen var omkring 10- 15 gånger så snabb på GPU:n jämfört med en enkärnig CPU version, också med degraderande resultat när antalet lager ökas. Denna tes framför således en simpel och effektiv vattenerosions modell som kan användas på 3D-SDF data, vilket stödjer överhäng, valv och grottor.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-310121 |
Date | January 2022 |
Creators | Isheden, Sebastian |
Publisher | KTH, Skolan för elektroteknik och datavetenskap (EECS) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-EECS-EX ; 2022:53 |
Page generated in 0.0026 seconds