Proceduralne generowanie planety z wykorzystaniem Voxeli

master
dc.abstract.enThe purpose of this thesis is to present a method that has been used for real-time rendering of procedurally generated planet using voxel space description. Software has been developed using Unity engine version 2019.3.Procedural large-scale terrain generation and rendering, in particular planet rendering, has been a popular research topic for many years. One of the main objectives of the project was to describe the space in which a rendered planet is placed, using voxels. This involves using three-dimensional grid, in which each element describes the smallest possible part of the space. Voxel (vo- from volume and -el from element) is an analogy to the two-dimensional concept of pixels that, like voxels, are part of a grid representing a flat image (the difference is de facto the number of grid dimensions). This technique, applied to procedural terrain generation, allows for obtaining more interesting visuals thanks to the ability to preserve information about the vertical structure of space, thus enabling representation of phenomena such as overhangs or caves - the project does not contain simulation of this types of terrain, but could easily be extended to include it. Such a description of space also enables real-time simulation of terrain destruction. The second assumption was to generate a very large-scale terrain (planetary scale), which at the same time would look realistic for a user viewpoint located at a low altitude in relation to the surface of the planet. This problem has been addressed by using a level of detail (LOD) algorithm that utilizes octree-based space segmentation.The surface of the rendered planet is obtained using the Marching Cubes algorithm. The Marching Cubes algorithm is used to create geometric models consisting of triangles, based on a three-dimensional scalar field.To improve real-time performance, some of the calculations associated with planet rendering are stored in the SQLite database.In addition to rendering the planet's surface, the project also includes simulating the light scattering within the atmosphere – the phenomenon, which causes the colour of the sky to be blue during the day and also causes the red coloration of the sky during sunsets and sunrises. Simulation of scattering also limits the visibility distance inside the atmosphere, which allows the user to obtain the impression of scale. The simulation is based on Rayleigh and Mie light scattering models.pl
dc.abstract.plCelem niniejszej pracy magisterskiej jest przedstawienie metody, która została wykorzystana do renderowania w czasie rzeczywistym proceduralnie wygenerowanej planety o strukturze opisanej za pomocą voxeli. Program, będący przedmiotem pracy magisterskiej został stworzony w oparciu o środowisko Unity w wersji 2019.3.Proceduralne generowanie i renderowanie terenu w dużej skali, w szczególności renderowanie planet stanowi od wielu lat popularne zagadnienie badawcze. Jednym z głównych założeń projektu był opis przestrzeni, w której znajduje się renderowana planeta, za pomocą voxeli. Polega to na użyciu trójwymiarowej siatki, w której każdy element opisuje najmniejszy możliwy fragment przestrzeni. Nazwa voxel (vo- od volume i -el od element) stanowi analogię do dwuwymiarowego konceptu pikseli, które podobnie jak voxele stanowią element siatki reprezentującej obraz (różnicę stanowi de facto liczba wymiarów siatki). Technika ta, w zastosowaniu do proceduralnego generowania terenu, pozwala na uzyskanie ciekawszego efektu wizualnego dzięki możliwości zachowania informacji o pionowej strukturze przestrzeni, pozwala dzięki temu na generowanie zjawisk takich jak nawisy czy jaskinie - opisywany projekt nie zawiera symulacji tego typu form terenu, ale mógłby zostać w łatwy sposób poszerzony o taką symulację. Taki opis przestrzeni ułatwia również symulację destrukcji terenu w czasie rzeczywistym. Drugim założeniem projektowym było generowanie terenu o bardzo dużej skali (skala planetarna), który jednocześnie wyglądałby realistycznie dla użytkownika znajdującego się na niewielkiej wysokości w stosunku do powierzchni planety. Problem ten został rozwiązany dzięki zastosowaniu algorytmu typu LOD (Level of Detail) opartego o segmentację przestrzeni voxelowej przy użyciu drzewa ósemkowego.Powierzchnia renderowanej planety jest wyliczona z wykorzystaniem algorytmu Marching Cubes. Algorytm Marching Cubes służy do tworzenia modeli geometrycznych, składających się z trójkątów na podstawie trójwymiarowego pola skalarnego. Dla poprawy wydajności działania w czasie rzeczywistym, cześć obliczeń związana z renderowaniem planety jest cachowana w bazie danych SQLite.Oprócz renderowania powierzchni planety projekt obejmuje również symulację rozpraszania światła w atmosferze. Powyższe działanie doprowadziło do uzyskania efektu niebieskiego koloru nieba w trakcie dnia oraz jego czerwonego zabarwienia w trakcie zachodów oraz wschodów słońca. Jednocześnie, zastosowanie powyższego rozwiązania umożliwiło uzyskanie efektu ograniczonej widoczności wewnątrz atmosfery, który pozwala uzyskać wrażenie skali u użytkownika. Symulacja opiera się o modele rozpraszania światła Rayleigh’a i Mie.pl
dc.affiliationWydział Fizyki, Astronomii i Informatyki Stosowanejpl
dc.areaobszar nauk ścisłychpl
dc.contributor.advisorBiałas, Piotr - 127296 pl
dc.contributor.authorKonik, Jarosławpl
dc.contributor.departmentbycodeUJK/WFAISpl
dc.contributor.reviewerBiałas, Piotr - 127296 pl
dc.contributor.reviewerPalacz, Wojciech - 102423 pl
dc.date.accessioned2020-10-20T18:37:46Z
dc.date.available2020-10-20T18:37:46Z
dc.date.submitted2020-09-30pl
dc.fieldofstudyinformatyka stosowanapl
dc.identifier.apddiploma-134181-181267pl
dc.identifier.projectAPD / Opl
dc.identifier.urihttps://ruj.uj.edu.pl/xmlui/handle/item/248684
dc.languagepolpl
dc.subject.enProcedural planet generation voxel voxels marching cubes scattering atmosphere planet atmosphere unity terrain Rayleigh Miepl
dc.subject.plProceduralne generowanie planet voksele voxele teren marching cubes rozpraszanie atmosfera planeta voxel unity Rayleigh Miepl
dc.titleProceduralne generowanie planety z wykorzystaniem Voxelipl
dc.title.alternativeProcedural planet generation using voxelspl
dc.typemasterpl
dspace.entity.typePublication
dc.abstract.enpl
The purpose of this thesis is to present a method that has been used for real-time rendering of procedurally generated planet using voxel space description. Software has been developed using Unity engine version 2019.3.Procedural large-scale terrain generation and rendering, in particular planet rendering, has been a popular research topic for many years. One of the main objectives of the project was to describe the space in which a rendered planet is placed, using voxels. This involves using three-dimensional grid, in which each element describes the smallest possible part of the space. Voxel (vo- from volume and -el from element) is an analogy to the two-dimensional concept of pixels that, like voxels, are part of a grid representing a flat image (the difference is de facto the number of grid dimensions). This technique, applied to procedural terrain generation, allows for obtaining more interesting visuals thanks to the ability to preserve information about the vertical structure of space, thus enabling representation of phenomena such as overhangs or caves - the project does not contain simulation of this types of terrain, but could easily be extended to include it. Such a description of space also enables real-time simulation of terrain destruction. The second assumption was to generate a very large-scale terrain (planetary scale), which at the same time would look realistic for a user viewpoint located at a low altitude in relation to the surface of the planet. This problem has been addressed by using a level of detail (LOD) algorithm that utilizes octree-based space segmentation.The surface of the rendered planet is obtained using the Marching Cubes algorithm. The Marching Cubes algorithm is used to create geometric models consisting of triangles, based on a three-dimensional scalar field.To improve real-time performance, some of the calculations associated with planet rendering are stored in the SQLite database.In addition to rendering the planet's surface, the project also includes simulating the light scattering within the atmosphere – the phenomenon, which causes the colour of the sky to be blue during the day and also causes the red coloration of the sky during sunsets and sunrises. Simulation of scattering also limits the visibility distance inside the atmosphere, which allows the user to obtain the impression of scale. The simulation is based on Rayleigh and Mie light scattering models.
dc.abstract.plpl
Celem niniejszej pracy magisterskiej jest przedstawienie metody, która została wykorzystana do renderowania w czasie rzeczywistym proceduralnie wygenerowanej planety o strukturze opisanej za pomocą voxeli. Program, będący przedmiotem pracy magisterskiej został stworzony w oparciu o środowisko Unity w wersji 2019.3.Proceduralne generowanie i renderowanie terenu w dużej skali, w szczególności renderowanie planet stanowi od wielu lat popularne zagadnienie badawcze. Jednym z głównych założeń projektu był opis przestrzeni, w której znajduje się renderowana planeta, za pomocą voxeli. Polega to na użyciu trójwymiarowej siatki, w której każdy element opisuje najmniejszy możliwy fragment przestrzeni. Nazwa voxel (vo- od volume i -el od element) stanowi analogię do dwuwymiarowego konceptu pikseli, które podobnie jak voxele stanowią element siatki reprezentującej obraz (różnicę stanowi de facto liczba wymiarów siatki). Technika ta, w zastosowaniu do proceduralnego generowania terenu, pozwala na uzyskanie ciekawszego efektu wizualnego dzięki możliwości zachowania informacji o pionowej strukturze przestrzeni, pozwala dzięki temu na generowanie zjawisk takich jak nawisy czy jaskinie - opisywany projekt nie zawiera symulacji tego typu form terenu, ale mógłby zostać w łatwy sposób poszerzony o taką symulację. Taki opis przestrzeni ułatwia również symulację destrukcji terenu w czasie rzeczywistym. Drugim założeniem projektowym było generowanie terenu o bardzo dużej skali (skala planetarna), który jednocześnie wyglądałby realistycznie dla użytkownika znajdującego się na niewielkiej wysokości w stosunku do powierzchni planety. Problem ten został rozwiązany dzięki zastosowaniu algorytmu typu LOD (Level of Detail) opartego o segmentację przestrzeni voxelowej przy użyciu drzewa ósemkowego.Powierzchnia renderowanej planety jest wyliczona z wykorzystaniem algorytmu Marching Cubes. Algorytm Marching Cubes służy do tworzenia modeli geometrycznych, składających się z trójkątów na podstawie trójwymiarowego pola skalarnego. Dla poprawy wydajności działania w czasie rzeczywistym, cześć obliczeń związana z renderowaniem planety jest cachowana w bazie danych SQLite.Oprócz renderowania powierzchni planety projekt obejmuje również symulację rozpraszania światła w atmosferze. Powyższe działanie doprowadziło do uzyskania efektu niebieskiego koloru nieba w trakcie dnia oraz jego czerwonego zabarwienia w trakcie zachodów oraz wschodów słońca. Jednocześnie, zastosowanie powyższego rozwiązania umożliwiło uzyskanie efektu ograniczonej widoczności wewnątrz atmosfery, który pozwala uzyskać wrażenie skali u użytkownika. Symulacja opiera się o modele rozpraszania światła Rayleigh’a i Mie.
dc.affiliationpl
Wydział Fizyki, Astronomii i Informatyki Stosowanej
dc.areapl
obszar nauk ścisłych
dc.contributor.advisorpl
Białas, Piotr - 127296
dc.contributor.authorpl
Konik, Jarosław
dc.contributor.departmentbycodepl
UJK/WFAIS
dc.contributor.reviewerpl
Białas, Piotr - 127296
dc.contributor.reviewerpl
Palacz, Wojciech - 102423
dc.date.accessioned
2020-10-20T18:37:46Z
dc.date.available
2020-10-20T18:37:46Z
dc.date.submittedpl
2020-09-30
dc.fieldofstudypl
informatyka stosowana
dc.identifier.apdpl
diploma-134181-181267
dc.identifier.projectpl
APD / O
dc.identifier.uri
https://ruj.uj.edu.pl/xmlui/handle/item/248684
dc.languagepl
pol
dc.subject.enpl
Procedural planet generation voxel voxels marching cubes scattering atmosphere planet atmosphere unity terrain Rayleigh Mie
dc.subject.plpl
Proceduralne generowanie planet voksele voxele teren marching cubes rozpraszanie atmosfera planeta voxel unity Rayleigh Mie
dc.titlepl
Proceduralne generowanie planety z wykorzystaniem Voxeli
dc.title.alternativepl
Procedural planet generation using voxels
dc.typepl
master
dspace.entity.type
Publication
Affiliations

* The migration of download and view statistics prior to the date of April 8, 2024 is in progress.

No access

No Thumbnail Available