Simple view
Full metadata view
Authors
Statistics
Proceduralne generowanie planety z wykorzystaniem Voxeli
Procedural planet generation using voxels
Proceduralne generowanie planet voksele voxele teren marching cubes rozpraszanie atmosfera planeta voxel unity Rayleigh Mie
Procedural planet generation voxel voxels marching cubes scattering atmosphere planet atmosphere unity terrain Rayleigh Mie
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.
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.en | 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. | pl |
dc.abstract.pl | 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. | pl |
dc.affiliation | Wydział Fizyki, Astronomii i Informatyki Stosowanej | pl |
dc.area | obszar nauk ścisłych | pl |
dc.contributor.advisor | Białas, Piotr - 127296 | pl |
dc.contributor.author | Konik, Jarosław | pl |
dc.contributor.departmentbycode | UJK/WFAIS | pl |
dc.contributor.reviewer | Białas, Piotr - 127296 | pl |
dc.contributor.reviewer | Palacz, Wojciech - 102423 | pl |
dc.date.accessioned | 2020-10-20T18:37:46Z | |
dc.date.available | 2020-10-20T18:37:46Z | |
dc.date.submitted | 2020-09-30 | pl |
dc.fieldofstudy | informatyka stosowana | pl |
dc.identifier.apd | diploma-134181-181267 | pl |
dc.identifier.project | APD / O | pl |
dc.identifier.uri | https://ruj.uj.edu.pl/xmlui/handle/item/248684 | |
dc.language | pol | pl |
dc.subject.en | Procedural planet generation voxel voxels marching cubes scattering atmosphere planet atmosphere unity terrain Rayleigh Mie | pl |
dc.subject.pl | Proceduralne generowanie planet voksele voxele teren marching cubes rozpraszanie atmosfera planeta voxel unity Rayleigh Mie | pl |
dc.title | Proceduralne generowanie planety z wykorzystaniem Voxeli | pl |
dc.title.alternative | Procedural planet generation using voxels | pl |
dc.type | master | pl |
dspace.entity.type | Publication |