Набор средств разработки 3D-игр

Создание программы, позволяющей при помощи трехмерных моделей и скриптов на языке Lua создавать игровые уровни. Обзор и обоснование некоторых решений, принятых и реализованных в результате разработки программы. Алгоритмы и структуры данных разработки.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 02.09.2018
Размер файла 4,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Редактор: Управление параметрами модели

Для изменения параметров материала объекта существует диалоговое окно "Model Viewer", где доступна возможность выбора материала из одного из заранее заданных, либо же ручной настройки параметров материала [5].

Редактор: Пример создания сцены

Для создании сцены в первую очередь необходимо загрузить все используемые модели в репозиторий моделей. Это делается при помощи кнопки "Import new model to the repository" (рис. 21). При нажатии на кнопку и выборе файла модели при успешной загрузки объект появится в списке "Loaded models". При выборе модели из списка и нажатии на кнопку "Insert model" экземпляр данной модели будет добавлен на сцену.

Зачастую некоторые модели могут оказаться больше других. Поскольку при добавлении на сцену модели добавляются в центр трехмерного мира. Так, например, на рис. 31 показана ситуация, когда виден только один объект - второй находится внутри другого. Однако при работе со сценой выделять объекты можно как при помощи мышки (кликом по сцене), так и при помощи выбора объекта из списка "Scene objects". При выборе объекта он подсвечивается красным цветом. Как видно на рис. 32 - не смотря на то, что объект выделен - на сцене не видно ни одной ярко-красной модели. В таком случае необходимо использовать инструмент "Lock selection". При включении данного режима будет невозможно выбирать трехмерную модель при помощи мышки, однако выбранная модель останется выбранной при клике по сцене и будет перемещаться следом за мышкой в зависимости от выбранного режима управления.

Как было описано ранее в разделе 3.2.1. и 2.2.1.3., существует несколько режимов управления положением модели. После блокировки выделения объектов на сцене при помощи мышки (инструмент "Lock Selection", рис. 22 и 23, помечены красным овалом в правом нижнем углу) и переключения режима перемещения в "Y" - то есть перемещение только по оси Y (рис. 33, помечен красным овалом в левом верхнем углу) - возможно изменить положение объекта на сцене так, чтобы было похоже, будето одна модель стоит на другом. Результат такого перемещения виден на рис. 33. При необходимости пользователь имеет возможность добавить к модели исполняемый скрипт при помощи кнопки "Attach Script" (находится в интерфейсе нижен списка объектов сцены).

Также для удобства управления объектами на сцене необходимо перемещать камеру на сцене. Изменение положения камеры заметно на рис. 32 и 33. Для перемещения камеры используются клавиши:

· W для перемещения вперед

· A для перемещения назад

· S для перемещения влево

· D для перемещения вправо

· R для перемещения вверх

· F для перемещения вниз

· Клавиши стрелок влево/вправо для поворота камеры по горизонтали

· Клавиши стрелок вверх/вниз для поворота камеры по вертикали

Как уже упоминалось раннее, можно создавать дополнительные копии моделей на сцене. Так, например, на рис. 34 изображено использование второй копии модели для создания каменного угла из соприкасающихся стен. Угол создается при помощи поворота модели (инструменты поворота подсвечены красным в верхней части экрана).

В правой нижней части экрана находятся элементы управления скайбоксом. Каждая сцена может содержать скайбокс или же использовать заливку по умолчанию (светло-голубую). Для завершения создания сцены можно загрузить скайбокс, и для демонстрации работы скайбокса достаточно отметить чекбокс "Enable skybox" (рис. 25, красный овал справа внизу).

Результат выбора скайбокса и включения режима отрисовки скайбокса показан на рис. 35.

Программа воспроизведения сцен

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

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

Далее этот файл можно открыть при помощи редактора сцен для дальнейшего редактирования, либо же его можно использовать при запуске приложения для воспроизведения сцен (Player.app). Для того, чтобы приложения воспроизведения сцен могло загрузить сохраненный файл с данными о сценах, файл должен иметь название config.gcu и находиться в той же директории, что и исполняемый файл Player.app.

При воспроизведении сцен недоступны какие-либо действия, кроме указанных в исполняемых скриптах игры.

Выводы по главе

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

Заключение

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

В результате работы были достигнуты поставленные цели, решены задачи работы:

1) Изучить предметную область: При разработке были изучены различные методики работы с трехмерными объектами

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

3) Изучить технологию исполнения стороннего кода (скриптов Lua) при исполнении программы: В результате разработки была реализована работа с интерпретатором Lua с добавлением методов работы с объектами на сцене при помощи скриптов, загружаемых и исполняемых во время исполнения приложения.

4) Освоить работу с OpenGL для рендеринга изображений в реальном времени: В результате были изучены современные методики затенения объектов и отрисовки трехмерных объектов.

5) Разработать структур данных игровых ресурсов, а также алгоритмов взаимодействия с ними: Была разработана структура данных, позволяющая хранить, сохранять и загружать игровые ресурсы, а также имеющая иерархичную структуру для простоты работы с объектами (при реализации различного верхнеуровнего функционала).

6) Разработать архитектуру модуля редактирования сцен: Структура хранения данных была создана с рассчетом на простоту разработки интерфейса редактирования сцен, в результате чего основой модуля редактирования сцен является объект, хранящий в себе все игровые ресурсы.

7) Разработать и протестировать модуль редактирования сцен: Модуль редактирования сцен был построен на основании разработанной структуры хранения данных, и позволяет создавать и изменять положение объектов в трехмерном пространстве множества сцен.

8) Разработать архитектуру модуля для загрузки и исполнения действий, установленных на сцене: Благодаря работе с интерпретатором Lua объекты могут управляться при помощи скриптов, описывающих некоторый алгоритм поведения объектов.

9) Разработать и протестировать модуль загрузки и исполнения сцен: Благодаря разработанным функциям загрузки сохраненных данных и исполнения скриптов Lua был разработан модуль воспроизведения сцен.

10) Оформить техническую документацию: Техническая документация была разработана.

При разработке были изучены различные современные алгоритмы работы с трехмерными объектами и изображениями, создаваемыми при помощи видеокарты. Программы были реализованы на языке C++ с использованием библиотек Qt и OpenGL.

В дальнейшем планируется доработка данного программного продукта и расширение его функций для последующей разработки трехмерных игр.

Список использованных источников

1. G. Sellers. OpenGL SuperBible: Comprehensive Tutorial and Reference 7 edition. UK, Addison-Wesley Professional; 7 edition, 2015

2. 3D Physics: Solid Objects, [Электронный ресурс]. Режим доступа: http://www.euclideanspace.com/physics/principles/solid/index.htm, cвободная (дата обращения 25.05.2018)

3. Rigid Body Dynamics, [Электронный ресурс]. Режим доступа: http://chrishecker.com/Rigid_body_dynamics, свободная (дата обращения 25.05.2018)

4. Doom3 Engine architecture overview, [Электронный ресурс]. Режим доступа: http://fabiensanglard.net/doom3/index.php, свободная (дата обращения 25.05.2018)

5. Список алгоритмов затенения, [Электронный ресурс]. Режим доступа: https://en.wikipedia.org/wiki/List_of_common_shading_algorithms, свободная (дата обращения 25.05.2018)

6. Line-plane intersection, [Электронный ресурс]. Режим доступа: https://en.wikipedia.org/wiki/Line%E2%80%93plane_intersection, свободная (дата обращения 28.05.2018)

Размещено на Allbest.ru


Подобные документы

  • Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.

    курсовая работа [639,0 K], добавлен 16.03.2012

  • Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.

    курсовая работа [19,5 K], добавлен 19.05.2011

  • Стадии разработки программного средства. Средства, методологии и методы его разработки. Оценка надежности и качества проекта. Обоснование необходимости разработки программы. Тестирование как процесс выполнения тестовой программы с намерением найти ошибки.

    презентация [57,0 K], добавлен 27.12.2013

  • Реализация анкеты "Литературные предпочтения" средствами разработки PHP, MYSQL. Структура баз данных и приложения. Программная реализация анкеты на языке программирования php, руководство пользователя. Разработка PHP скриптов. Листинг программы.

    курсовая работа [351,1 K], добавлен 02.12.2010

  • Создание компьютерной игры посредством среды программирования Delphi. Инструменты разработки, компоненты и методы для разработки программы. Логическая и физическая структуры, основные функции и элементы управления программы, ее тестирование и отладка.

    курсовая работа [27,9 K], добавлен 26.07.2014

  • Программный комплекс для разработки программы транслирующей программу с языка Pascal на язык С++. Построение логической и арифметической модели решения. Разработка компилятора для программы. Методы отладки программы и создание для нее документации.

    курсовая работа [742,6 K], добавлен 03.07.2011

  • Администрирование баз данных. Проектирование баз данных, язык запросов к базе данных. Анализ средств разработки приложений. Планирование разработки программы "Электронный каталог" для библиотеки ОГАУ, предварительный проект и практическая реализация.

    дипломная работа [1,2 M], добавлен 02.06.2015

  • Особенности разработки и отладки программы на языке Pascal (Delphi), в операционной системе Windows 7 Ultimate. Описание, назначение, функции, оборудование, программное обеспечение, алгоритмы, математическая основа, тесты и интерфейс программы DMC.exe.

    курсовая работа [422,7 K], добавлен 28.05.2010

  • Принципы визуального программирования. Создание программы, генерирующей звук через определенные промежутки времени. Visual Basic как средство разработки прототипов программы, для разработки приложений баз данных и компонентного способа создания программ.

    лабораторная работа [1,1 M], добавлен 10.12.2014

  • Краткий обзор и анализ ныне существующих программно-педагогических средств обучения. Методика и порядок разработки электронного учебника по предмету "Язык программирования C++". Общая характеристика и основные формы входных и выходных данных программы.

    курсовая работа [232,6 K], добавлен 10.09.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.