Розроблення та оптимізація випадково генерованого ландшафту в комп'ютерній грі
Loading...
Date
Journal Title
Journal ISSN
Volume Title
Publisher
Національний університет "Львівська політехніка"
Abstract
У даній бакалаврській кваліфікаційній роботі розглянуто питання
проєктування, реалізації та оптимізації великомасштабного процедурно
згенерованого світу на прикладі планетарного ландшафту у тривимірному
ігровому середовищі. Основної уваги приділено технікам генерації сітки
сферичної геометрії, розподілу флори та системам управління рівнями
деталізації (LOD).
Метою роботи є створення системи, здатної у реальному часі формувати
складний планетарний рельєф із варіативною топографією та покриттям
рослинності, що адаптивно реагує на положення камери та оптимізується з
урахуванням продуктивності. Результатом є програмний модуль, розроблений
в середовищі Unity із використанням мови програмування C#, шумових
функцій (Perlin, Ridgid, ін.), системи GPU Instancing та адаптивного чанкового
менеджменту геометрії.
У першому розділі проведено огляд ігор із підтримкою процедурної
генерації, досліджено особливості підходів до формування світу, типи шумів
та методи побудови рельєфу.
Другий розділ присвячено вибору рушія, інструментів та допоміжного
середовища розробки, обґрунтовано вибір Unity та супутнього програмного
забезпечення (Visual Studio, Blender, Photoshop).
У третьому розділі описано процес реалізації планетарної геометрії, її
поділ на чанки, побудову сітки з урахуванням шумових функцій, нормалей і
текстур, а також реалізацію генерації флори — з врахуванням висотних зон,
5
шансів появи, параметрів масштабування та впровадження системи LOD для
оптимізованого рендерингу.
У
четвертому розділі представлено підсумкову реалізацію
функціональної частини проєкту у вигляді інтегрованої сцени Unity. Описано
ключові елементи керування генерацією, приклади використання системи, а
також продемонстровано результати візуалізації планети з флорою. Надано
стислу інструкцію користувача з поясненням основних параметрів та взаємодії
з середовищем розробки.
Загальний обсяг: сторінок 98, рисунків 40, додатків 2.
This bachelor's qualification thesis focuses on the design, implementation, and optimization of a large-scale procedurally generated environment, demonstrated through the example of a planet-scale landscape within a three-dimensional game world. The work primarily addresses techniques for spherical mesh generation, vegetation distribution, and level-of-detail (LOD) management systems. The goal of the project is to develop a system capable of generating complex planetary terrain in real time, with variable topography and dynamic vegetation coverage that adapts to the player’s viewpoint while remaining performance efficient. The final result is a software module developed in Unity, utilizing C# programming language, procedural noise functions (Perlin, Ridgid, etc.), GPU instancing, and a hierarchical chunk-based geometry management system. The first chapter presents an overview of existing games utilizing procedural generation, analyzing various approaches to terrain formation, types of noise functions, and relevant methods for landscape construction. The second chapter outlines the selection of tools and technologies used in the project, justifying the choice of Unity game engine and supporting software (Visual Studio, Blender, Photoshop). The third chapter details the implementation process of planetary geometry generation, chunk subdivision, grid construction with noise-based displacement, normal calculation, and texturing. It also describes the vegetation generation pipeline, including elevation-based distribution, spawn probability, scaling parameters, and integration of a multilevel LOD system for efficient rendering. 7 The fourth chapter presents the final implementation of the project as a complete Unity scene. It provides an overview of generation controls, usage examples, and visual results of the procedurally generated planet with flora. A brief user guide is included to explain the interface, configurable parameters, and interaction workflow within the development environment. Total volume: 98 pages, 40 figures, 2 appendices.
This bachelor's qualification thesis focuses on the design, implementation, and optimization of a large-scale procedurally generated environment, demonstrated through the example of a planet-scale landscape within a three-dimensional game world. The work primarily addresses techniques for spherical mesh generation, vegetation distribution, and level-of-detail (LOD) management systems. The goal of the project is to develop a system capable of generating complex planetary terrain in real time, with variable topography and dynamic vegetation coverage that adapts to the player’s viewpoint while remaining performance efficient. The final result is a software module developed in Unity, utilizing C# programming language, procedural noise functions (Perlin, Ridgid, etc.), GPU instancing, and a hierarchical chunk-based geometry management system. The first chapter presents an overview of existing games utilizing procedural generation, analyzing various approaches to terrain formation, types of noise functions, and relevant methods for landscape construction. The second chapter outlines the selection of tools and technologies used in the project, justifying the choice of Unity game engine and supporting software (Visual Studio, Blender, Photoshop). The third chapter details the implementation process of planetary geometry generation, chunk subdivision, grid construction with noise-based displacement, normal calculation, and texturing. It also describes the vegetation generation pipeline, including elevation-based distribution, spawn probability, scaling parameters, and integration of a multilevel LOD system for efficient rendering. 7 The fourth chapter presents the final implementation of the project as a complete Unity scene. It provides an overview of generation controls, usage examples, and visual results of the procedurally generated planet with flora. A brief user guide is included to explain the interface, configurable parameters, and interaction workflow within the development environment. Total volume: 98 pages, 40 figures, 2 appendices.
Description
Keywords
6.122.00.00, ПРОЦЕДУРНА ГЕНЕРАЦІЯ, UNITY, ШУМОВІ
АЛГОРИТМИ, ПЛАНЕТАРНИЙ ЛАНДШАФТ, LOD, GPU INSTANCING, ФЛОРА, ЧАНКИ, ОПТИМІЗАЦІЯ ПРОДУКТИВНОСТІ.
Список літератури:
1. Документація мови програмування C# [Електронний ресурс] — Режим
доступу: https://learn.microsoft.com/en-us/dotnet/csharp/ (Доступно: 26
травня 2025)
2. Офіційна документація Unity [Електронний ресурс] — Режим доступу:
https://docs.unity3d.com/ (Доступно: 26 травня 2025)
3. Perlin noise demystified [Електронний ресурс] — Режим доступу:
http://flafla2.github.io/ (Доступно: 26 травня 2025), PROCEDURAL GENERATION, UNITY, NOISE FUNCTIONS, PLANETARY LANDSCAPE, LOD, GPU INSTANCING, VEGETATION, CHUNKS, PERFORMANCE OPTIMIZATION
Citation
Тимошик Н. В. Розроблення та оптимізація випадково генерованого ландшафту в комп'ютерній грі : кваліфікаційна робота на здобуття освітнього ступеня магістр за спеціальністю „6.122.00.00 — Комп'ютерні науки“ / Назарій Вікторович Тимошик. — Львів, 2024. — 84 с.