Генерация 3D ландшафта на базе нелинейных фракталов - Курсовая работа

бесплатно 0
4.5 94
Разработка приложения для демонстрации фрактальной генерации 3D ландшафта, требования к функциональным характеристикам и техническому обеспечению. Построение карты высот с помощью алгоритма Diamond-Square. Руководство пользователя, тестирование программы.


Аннотация к работе
Данный проект представляет собой приложение, позволяющее создавать 3D ландшафт при помощи нелинейных фракталов.Разрабатываемое приложение предназначено для демонстрации фрактальной генерации 3Dландшафта.Для реализации поставленной задачи приложение должно обладать следующими функциями: - создание карты высот; смешивание текстур на основе карты высот;Надежное функционирование программы должно обеспечивается ограничением, накладываемым на набор входных данных (коды нажатых клавиш игнорируются, если эти клавиши не являются управляющими в приложении). ландшафт фрактальный генерацияЭксплуатация программного обеспечения может выполняться без специальной подготовки пользователем, имеющим базовые навыки работы с компьютером в системе семейства MSWINDOWS.Инструмент, используемый для создания данного проекта - Unity3d 4.6.1.Для нормального функционирования данного программного продукта необходимо наличие: - оперативной памяти не менее 256 Мб не менее 212Мб свободного места на жестком дискеРеализовать программу, позволяющую создавать 3D ландшафт при помощи нелинейных фракталов. Программа должна осуществлять вывод на экран, созданного 3D ландшафта и его демонстрации при помощи свободной камеры.Фрактал - функциональное отображение или множество, получаемое бесконечным рекурсивным процессом и обладающее тремя следующими свойствами: дробной размерностью Хаусдорфа-Безиковича, самоподобием и недифференцируемостью. Фракталы дают чрезвычайно компактный способ описания объектов и процессов. Эти повторяющиеся закономерности определяют дробную, или фрактальную, размерность структуры. Фракталы выражаются не в первичных геометрических формах, а в алгоритмах, наборах математических процедур.Существует несколько основных принципов представления данных для хранения информации о ландшафтах: · Первый - использование регулярной сетки высот (карта высот - HEIGHTMAP). · Второе - использование иррегулярной сетки вершин и связей, их соединяющих (т.е. хранение простой триангулизированной карты). · Третий - хранение карты ландшафта, но в данном случае хранятся не конкретные высоты, а информация об использованном блоке. В этом случае создается некоторое количество заранее построенных сегментов, а на карте указываются только индексы этих сегментов. В своем проекте я выбрал способ представления ландшафтов при помощи карты высот.Шум Перлина - это градиентный шум, состоящий из набора псевдослучайных единичных векторов (направлениях градиента), расположенных в определенных точках пространства и интерполированных функцией сглаживания между этими точками. Для генерации шума Перлина в одномерном пространстве необходимо для каждой точки этого пространства вычислить значение шумовой функции, используя направление градиента (или наклон) в указанной точке. Это свойство делает шум Перлина легко управляемым; множество масштабированных копий шума Перлина могут быть вставленными в математические выражения для создания самых разнообразных процедурных текстур. Таким образом, создается шум на сетке, представляющей по всему изображению значения между 0 и 4. Традиционный способ создания таких векторов - организация справочной таблицы из 256 векторов, которые охватывают полный круг, и последующий случайный выбор одного из них для каждой точки на сетке.Диаграмма Вороного конечного множества точек S на плоскости представляет такое разбиение плоскости, при котором каждая область этого разбиения образует множество точек, более близких к одному из элементов множества S, чем к любому другому элементу множества. Этот перпендикуляр разбивает плоскость на две полуплоскости и , причем область Вороного точки целиком содержится в одной из них, а область точки - в другой. Область Вороного точки совпадает с пересечением всех таких полуплоскостей : .Таким образом, решение задачи сводится к вычислению такого пересечения для каждой точки . На каждом шаге алгоритма диаграмма Вороного построена для множества, состоящего из заметающей прямой и точек слева от нее. Добавление точки к диаграмме при использовании двоичного дерева поиска имеет сложность , всего точек , а сортировка точек по-координате может быть выполнена за , поэтому вычислительная сложность алгоритма Форчуна равна .Самым же распространенным и дающим одни из самых реалистичных результатов является алгоритм diamond-square (или square-diamond), расширение одномерного алгоритма midpoint displacement на двумерную плоскость. Изначально мы любым образом задаем высоту на концах отрезка и разбиваем его точкой посередине на два под-отрезка. (и - высоты на левом и правом конце отрезка, а константа определяет «шероховатость» (roughness) получающейся ломаной и является главным параметром в данном алгоритме). Точка в центре получается усреднением высот всех 4 угловых точек, а каждая серединная точка на стороне большого квадрата - усреднением пары точек, лежащих на концах соответствующей стороны. Это еще не diamond-square - данный алгоритм, как правило, тоже называют алгоритмом midpoint displacement и несмотря на то, что он дает уже от

План
СОДЕРЖАНИЕ

1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Введение

1.1 Назначение системы

1.2 Требования к программному проекту

1.2.1 Требования к функциональным характеристикам

1.2.2 Требования к надежности

1.2.3 Требования к эксплуатации

1.2.4 Требования к информационной и программной совместимости

1.2.5 Требования к техническому обеспечению

2. ИССЛЕДОВАЛЕЛЬСКАЯ ЧАСТЬ

2.1 Постановка задачи

2.2 Описание тематики

2.2.1 Язык фракталов

2.2.2 Представление данных о ландшафте

2.2.3 Построение карты высот на основе шума Перлина

2.2.4 Построение карты высот с помощью диаграммы Вороного

2.2.5 Построение карты высот с помощью алгоритма Diamond-Square

3. КОНСТРУКТОРСКАЯ ЧАСТЬ

3.1 Общие сведения

3.2 Описание логической структуры программы

3.2.1 Структура программы

3.2.2 Структуры данных модели

3.2.3 Функции для работы с приложением

3.3 Руководство программиста

3.3.1 Назначение программы

3.3.2 Условия выполнения программы

3.3.3 Тестирование программы

3.3.4 Обращение к программе

4. ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ

4.1 Входные данные

4.2 Выходные данные

4.3 Руководство пользователя

4.3.1 Назначение программы

4.3.2 Требования к аппаратной и программной средам

4.3.3 Выполнение программы

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЕ

1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Введение
Данный проект представляет собой приложение, позволяющее создавать 3D ландшафт при помощи нелинейных фракталов.
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?