Тип работы:
Предмет:
Язык работы:


Процедурная Генерация Контента

Работа №71439

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы46
Год сдачи2016
Стоимость4900 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
31
Не подходит работа?

Узнай цену на написание


Введение 2
1. Основная структура данных
1.1 Постановка задачи 5
1.2 Мозаика Вороного 10
1.3 Алгоритм Фортуна 12
1.4 Алгоритм Ллоида 22
1.5 Смежные графы вершин и граней 25
2. Заполнение карты
2.1 Генерация участка суши 27
2.2 Карта высоты 29
2.3 Генерация рек 30
2.4 Карта влажности 31
2.5 Типы местности 32
3. Описание реализации
3.1 Краткое описание 33
3.2 Классы и Методы 34
3.3 Результаты выполнения программы 37
Заключение 41
Список литературы


Целью данной бакалаврской работы является исследование методов процедурной генерации контента и создание программы, осуществляющей реализацию этих методов. Результатом проделанной работы будет программа- генератор, позволяющая строить изображения двумерных карт местности. Создаваемая система предполагает дальнейшее развитие и расширение в будущем, с последующей интеграцией в компьютерную игру, в которой она будет выполнять функцию генератора карт-уровней.
Процедурная генерация (ПГК) — это группа методов, в которых при помощи особых вычислительных алгоритмов создаются модели, которые изображают различные объекты — дома, растения, ландшафт, текстуры [1. 1].
Построение моделей различных объектов методом ПГК— распространенная задача, которая находит применение во многих сферах, связанных с компьютерной графикой, например, в создании компьютерных игр или мультфильмов. Этот метод используется тогда, когда нужно получить большое множество моделей с уникальными характеристиками, которое нельзя получить в разумные сроки и при разумных трудозатратах обычным способом построения вручную.
Например, при создании текстур вручную, художники используют два метода или их комбинацию. Первый метод основан на использовании реальных фотоизображений с последующим редактированием. Второй — это создание текстуры полностью при помощи графического планшета. Эти методы обладают серьезным недостатком — невозможностью быстрого итерирования вариантов текстуры. В обоих случаях такие текстуры лишены даже минимальной параметризации картинки и как следствие — возможности быстрого изменения путём редактирования этих параметров. Кроме того, создание текстур этими методами сводится к рутинной работе: множество движений кисточкой, бесконечное перебирание фототекстур в поисках подходящей и ретуширование с целью правки нежелательных элементов. При процедурной генерации текстуры, цвет каждого пикселя изображения формируется алгоритмически, что позволяет избежать всю рутинную работу и значительно снизить трудозатраты [2. 1].
По сравнению с традиционными методами создания графического контента, процедурная генерация обладает следующими значительными преимуществами:
Возможность вносить изменения в любой этап формирования изображения (недеструктивное редактирование).
Возможность увеличения или уменьшения размера изображения без потерь детализации.
Высокая скорость создания нового контента на основе существующих наработок путём их модифицирования и комбинирования.
Быстрое создание подобных изображений. После того, как реализован процедурный генератор, формирующий необходимое изображение, для получения подобного нужно всего лишь изменить входное значение у генератора случайных чисел.
Малый размер хранимых данных, который не зависит от разрешения картинки. В файл сохраняется только описание алгоритма, занимающее несколько килобайт.
После анализа научной литературы по этой теме, были сформулированы две основные задачи, решению которых посвящена данная работа:
1. Исследование существующих алгоритмов ПГК для создания карт и их возможностей.
2. Реализация метода процедурной генерации контента посредством объектно-ориентированного программирования, а именно языка Java.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В бакалаврской работе была исследована техника Процедурной Генерации Контента. Проанализированы варианты основной структуры данных для генератора карт местности, приведены различия рассмотренных вариантов, их плюсы и минусы. Превосходство выбранной, окончательной структуры данных, как более гибкой, универсальной и расширяемой, доказано. Подробно описаны алгоритмы ПГК, используемые для построения изображений. Приведен список классов и методов, описывающий реализацию данных алгоритмов. Приведены примеры изображений, получаемых в результате выполнения программы.
В результате выполнения бакалаврской работы разработана программа- генератор двухмерных карт местности, в основе которой лежит гибкая структура данных, обеспечивающая возможность ее дальнейшего расширения с последующим интегрированием в компьютерную игру для мобильных устройств.
В дальнейшем планируется добавить несколько вариантов типа местности, изображенной на карте, помимо островной (таких как материк или архипелаг), и возможность построения островных форм другими методами, помимо генерации синусоиды (например, с использованием функции Шума Перлина).



1. 1 David S. Ebert, Ken Perlin, Steven Woorley, Darwyn Peachey, F.Kenton Musgrave “Texturing & Modeling: A Procedural Approach”
1. 2 Брюс Эккель “Философия Java”
1. 3 Steve Oudot “Delaunay Triangulation”
1. 4 В.В. Галицкий, Е.В. Мироненко “Мозаика Вороного на плоскости”
1. 5 M. de Berg, M. van Kreveld, M. Overmas, O. Schwarzkopf
“Computational Geometry”
1. 6 William L. Raffe, Fabio Zambetta, and Xiaodong Li “A Survey of Procedural Terrain Generation Techniques using Evolutionary Algorithms”
1. 7 Du, Qiang, Faber, Vance; Gunzburger, Max (1999), "Centroidal Voronoi tessellations: applications and algorithms"
Интернет ресурсы:
2. 1 https://habrahabr.ru/company/unigine/blog/167075/ - статья,
посвященная процедурной генерации текстур
2. 2 http://pcg.wikidot.com/pcg-algorithm:map-generation - краткий
обзор алгоритмов ПГК
2. 3 http://www.stuffwithstuff.com/robot-frog/3d/hills/index.html - пособие
по генерации карт высот.
2. 4 http://www.oracle.com/technetwork/) ava/j avase/ documentation/index.ht
ml - документация Java
2. 5 http: //j ava-course.ru/begin/introduce/ - пособия по java -
программированию
2. 6 https:// github.com/nodename/as3delaunay - библиотека,
имплементирующая алгоритм Фортуна
2. 7 https://opensource.org/licenses/MIT - лицензия MIT


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ