Введение 14
1 Концепция процедурного моделирования 17
1.1 Анализ трехмерных редакторов с возможностями для процедурной
генерации 21
2 Создание инструментов и материалов при помощи методов процедурной
генерации 25
2.1 Создание модели стены при помощи файла из программы Photoshop. 25
2.2 Создание инструмента для генерации запутанных проводов 30
2.3 Создание инструмента для генерации уровня (коридора) 35
2.4 Создание материала с использованием процедурной генерации. ... 42
3 Финансовый менеджмент, ресурсоэффективность и
ресурсосбережение 47
3.1 Предпроектный анализ 47
3.2 Инициация проекта 52
3.4 Бюджет научно-технического исследования 58
3.5 Оценка сравнительной эффективности исследования 61
4 Социальная ответственность 63
4.1 Введение 63
4.2 Правовые и организационные вопросы обеспечения безопасности 63
4.3 Производственная безопасность 66
4.4 Анализ опасных и вредных производственных факторов и
обоснование мероприятий по снижению их воздействия 67
4.4.1 Недостаточная освещенность рабочей зоны 67
4.4.2 Повышенный уровень электромагнитных излучений 72
4.4.3 Отклонение показателей микроклимата 72
4.4.4 Повышенный уровень шума на рабочем месте 75
4.4.5 Монотонность труда 75
4.4.6 Опасность поражения электрическим током 76
4.4.7 Экологическая безопасность 77
4.4.8 Безопасность в чрезвычайных ситуациях 78
4.5 Выводы 79
Заключение 81
Список использованной литературы 82
Приложение А 86
Creating an interactive game location using the methods of procedural content generation (PCG) on Unreal Engine 4 86
Процедурная генерация может быть применена в ряде областей, таких как игры, анимация, компьютерная графика, SD-моделирование, искусственная электронная музыка и т. д.
Процедурная генерация используется для создания графики в видеоиграх, бесконечная генерация моделей и локаций в игре с открытым миром, является результатом техники процедурной генерации. Такие игры как: Minecraft, No man's sky, Elite dangerous с большим отрытым миром возможно создать только с помощью процедурной генерации. Код игры генерирует окружение по мере того, как игрок продвигается по локации. Точно так же этот метод используется при редактировании фильмов для создания пейзажей, фантастических земель, нескончаемой волны солдат, бегущих к герою, как в таких фильмах, как «Властелин колец» и «Мумия».
Техника процедурной генерации также используется при создании электронной музыки, где несколько строк кода генерируют музыку.
Кроме того, процедурная генерация применяется когда необходимо записать игру большого размера на носитель с небольшим размером памяти запоминающего устройства, например, поместить игру в 8-битный чип. Разработчики игр не могут создавать слишком много уровней вручную, так как это займет много памяти на чипе или не поместится. Следовательно, разработчики используют алгоритмы процедурной генерации для генерации случайных карт в момент загрузке игры. Этот метод использует меньше памяти, а также делает контент менее предсказуемым.
В настоящее время для создания моделей 3d художники используют два метода или их комбинацию. Первый основан на использовании реальных фотоизображений или характеристик объекта из технического задания заказчика с последующим процессом моделирования объекта либо ландшафта. Второй — это создание набора простых, низко полигональных моделей вручную при помощи различного ПО, например, Blender, 3DS Max и т. д. Создавая модели в редакторах, перечисленных во втором способе выше нет возможности создавать набор правил для быстрого редактирования моделей.
Программном обеспечении Houdini позволяет создавать алгоритм для детализации объекта или рассадки растительности для ландшафта с возможностью вынесения необходимых параметров на более высокие уровни нод. После чего можно будет поменять базовую модель и настройки процедурной генерации при необходимости.
Перед созданием инструмента для генерации уровня коридора в научно-фантастическом стиле был проведен анализ вариантов для создания инструмента, а также программы в которых возможно работать с процедурным моделированием. Одним из вариантов создания генерации уровня является написание собственной программы.
Для создания локации был выбран трехмерный редактор Houdini, так как в нем возможно создавать инструменты для генерации необходимых моделей. Созданные инструменты повышают скорость создания однотипных моделей, так как набор правил для генерации можно задать, используя в основе инструмента примитивную геометрию (плоскость, куб, сфера, цилиндр).
Также для моделей необходимо создать материалы. Создание материалов (набора текстур) так же как и модель можно создавать вручную или автоматизировать процесс. Ручной способ создания материалов подразумевает использование программы Photoshop или же его аналогов. Данный способ таже делится на два метода; использование изображений с последующим их редактированием, создание изображения с нуля, используя графический планшет или компьютерную мышь.
Автоматизированный процесс использует процедурную генерацию. Данный способ обладает высокой гибкостью, так как каждый параметр материала можно редактировать для получения необходимого результата. Данный способ позволяет изменять параметры материала в любой момент времени, после чего внесенные изменения повлияют на весь материал.
Создание материалов для локации будет выполнено в программе Substance designer. Данное программное обеспечение для создания параметрического материала использует визуальное программирование, при помощи которого, можно создавать необходимые алгоритмы.
В ходе выполнения исследовательской работы проведено ознакомление с концепцией процедурного моделирования, а также анализ трехмерных редакторов с возможностью процедурного моделирования. Были созданы инструменты для генерации трехмерных моделей, а также выполнена их интеграция в игровой редактор при помощи файла hda, некоторые готовые функции в программе Houdini были написаны кодом для оптимизации работы инструмента, что ускоряет его работу. Также был разобран способ создания материала при помощи процедурной генерации в программном обеспечении Substance Designer.
В ходе работ были проанализированы способы создания трехмерных моделей и материалов. Основываясь на результатах проведенного анализа было выявлено в каких случаях наиболее уместно применять ручной или автоматизированный способ генерации контента.