Материал: Разработка виртуального 3D музея

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Таблица 1

Сравнительный анализ средств для 3D моделирования

Название

Сложность в освоении

Русифицированная версия

Наличие справки

Стоимость

Объем занимаемой памяти компьютер

Продукт

Поддержка форматов других редакторах

Google SketchUp

Нет

Да

Полезные подсказки и руководства

Полная бесплатность программы, нелегальна для коммерческого использования

72,2 MБ

3D - модели

Да

3dsMax

 Да

 Да

На сайте производителя

3 года бесплатного пользования с условием использования в учебных целях

Около 1Гб

3D - модели, анимация

Да

AutodeskMaya

Да

Русификатор отдельно

На сайте производителя

3 года бесплатного пользования с условием использования в учебных целях

Около 2ГБ

3D - модели, анимация

Да

Blender

Нет

Да

На сайте производителя

Полная бесплатность программы

Около 10 MБ

3D - модели, анимация

Да

Wings3d

Нет

Русификатор отдельно

На сайте производителя

Полная бесплатность программ

7.2МБ

3D - модели.

Да

SweetHome 3D

Нет

Да

На сайте производителя

Полная бесплатность программ

41,5 MБ

Дизайн интерьера 3D

Нет

Сравнив все вышеперечисленные продукты (см табл. 1), выбор пал на 3ds Max, так как благодаря простым и мощным средствам моделирования, можно создавать разнообразные среды, и детализированный объекты. Несомненным плюсом является тот факт, что основные модули визуализации (Arnold, V-Ray, Iray, Mental Ray) поддерживаются 3ds Max. Так как дальнейшая работа создания виртуального музея будет проводиться с помощью игрового движка, то необходимо отметить, что у 3ds max хорошая совместимость с такими программными средствами, как Revit, Inventor, Fusion 360, SketchUp, Unity и Unreal.

1.6    Обзор и анализ игровых движков

Игровой движок - основной программный компонент компьютерных и видеоигр или других интерактивных графических приложений, который обрабатывается в реальном времени [8].

Компонентами игрового движка, как правило являются:

)        Графический движок - программный компонент, основная задача которого визуальное 2D представление (рендеринг) или же 3D представление компьютерной графики.

)        Физический движок (англ. physics engine) - этим программным компонентом производится моделирование законов физике в виртуальной среде.

)        Звуковой движок (англ. sound/audio engine) - программный компонент, который отвечает за звук и его воспроизведение (шумы, музыкальное сопровождение, голоса персонажей).

)        Игровой искусственный интеллект (англ. game artificial intelligence) - программные методики, используемые в компьютерных играх, чтобы создать иллюзию интеллектуального поведения героя, управляемого компьютером. [9]

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

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

 

1.6.1 Unity

Unity (Unity3d) - самый известный современный игровой движок. Стал доступен в 2005 году, и на сегодняшний день имеет последнюю версию Unity 5. К 2013 году число зарегистрированных юзеров дошло до 2х миллионов, что подтверждает его популярность. Главные отличительные черты - это:

·        Продуманность архитектуры проекта;

·        Совместимость со всеми актуальными целевыми платформами;

·        Обширное сообщество экспертов;

·        Имеется бесплатная версия, не имеющая ограничений;

·        Возможность создания двухмерных и трехмерных игр, и не только.

1.6.2 MoneGame / XNA

XNA - игровой движок, который создан компанией Microsoft на основе.Net Framework, и выпущен в 2006 году. Движок позволяет создавать игры для существующих платформ windows до 8 версии. В 2013 году Microsoft закончили дальнейшую поддержку проекта. Но это не стало завершением эпохи этой программы. На основе XNA создали её свободную реализацию - MonoGame, которая развивается по сей день.

Отличительными чертами являются:

·        Сравнительно небольшой порог вхождения;

·        Интеграция с Visual Studio;

·        Совместимость c основными платформами.

1.6.3 Unreal Engine

Этот популярный движок имеет длинную историю, разработка и поддержка осуществляется компанией Epic Games. Годом основания принято считать 1998, тогда же была выпущена одноименная игра, создаваемая с его помощью. С самого начала отличительными чертами движка считалась его высокая технологичность, продуманная архитектура, и развитые средства разработки. С 2015 года пользование движком осуществляется на бесплатной основе, но 5% от своего дохода разработчик должны выплачивать компании Epic Games.

·        Главными особенностями движка являются:

·        Мощный редактор, который состоит из нескольких узкопрофильных редакторов;

·        Прогрессивные технологические процессы рендеринга;

·        Оптимальная переносимость;

·        Бесплатная лицензированная версия.

1.6.4 Construct 2

Construct 2 - один из новейших игровых движков для создания 2D игр, который ориентирован на новичков. Движок основывается на HTML5 и JavaScript, поэтому игры являются кроссплатформенными. Игры создаются в практичном редакторе, для которого не требуется знаний программирования. Программа коммерческая, поэтому лицензию необходимо приобрести, однако она сравнительно дешевая. Также существует demo - версия, которая является бесплатной.

·        Особенностями Construct2 являются:

·        Удобство и простота WYSIWYG интерфейса;

·        Не обязательно знание языков программирования;

·        Кроссплатформенность создаваемых игр;

·        Содержательная документация, доступная на множестве языков.

 

1.6.5 Сравнение и выводы

Выбирая средства нужно учитывать следующее:

)        Условно требования делятся на 2 подмножества:

·        Неотъемлемые условия, расхождение с которыми исключит движок из вариантов выбора (например, планируется создание 3D - игры, а у движка нет поддержки 3D - рендеринга);

·        Необязательные условия, осуществление которых предпочтительно (к примеру, присутствие искусственного интеллекта, в том числе и в случае отсутствия в движке такого элемента, его возможно приобрести у других производителей).

)        Многие условия имеются в любом случае, к примеру:

·        наличие качественной документации;

·        развитое сообщество;

·        история эффективного использования.

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

Чтобы обработать опциональные и априорные требования необходимо использовать метод рейтинговой оценки. Это означает следующее: если движок отвечает таким требованиям, то он приобретает дополнительный балл рейтинга. Необходимо отметить, что оценивать такие характеристики как документации, сообщества и истории применения необходимо предварительно.

Для всех этих характеристик подразумевается применять трехбалльную шкалу оценивания:

)        Опциональное требование:

0 баллов - если движок не соответствует ему;

2 балла - если соответствует.

)        Документация:

2 балла - хорошая документация на английском языке;

3 балла - документация доступна на родном языке.

)        История применения:

0 баллов - нет известных игр;

1 балл - 1 - 5 известные игры;

2 балла 5 - 9 известных игр;

3 балла 10 и более известных игр.

)        Сообщество:

количество зарегистрированных пользователей на форуме производителя;

релевантность по поисковым движкам / количество найденных результатов поиска.

Алгоритм выбора средств разработки представлен на UML диаграмме деятельности (рис. 18).

Рис. 18 Диаграмма деятельности с алгоритмом работы приложения

Для разработки виртуального 3D музея необходимо наличие физического движка и звукового движка. Самым подходящим языком разработки является C#, а целевой платформой - Android. Также, главное требование - бесплатность среды разработки. Исходя из перечисленных требований, выбор пал на движок Unity.

2.      Обзор и анализ существующих методов

 

2.1    Анализ современных методов 3D моделирования


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

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

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

На сегодняшний день методы трехмерного моделирования можно разделить на 3 вида [11]:

·        каркасное (проволочное) моделирование;

·        поверхностное (проволочное) моделирование;

·        твердотельное (сплошное, объемное) моделирование.

2.1.1 Каркасное моделирование

Каркасная модель целиком описывается точками и линиями. Данное моделирование является моделированием низшего уровня и имеет несколько значительных ограничений, большая часть которых появляется из-за недостаточного количества данных о гранях, заключенных среди линий, и отсутствия возможности выделить внешние и внутренние части изображения твердого объемного тела. Но каркасная модель занимает небольшой объем памяти и абсолютно пригодна для решения простых задач. Каркасное представление зачастую применяется как метод визуализации моделей. Чаще всего каркасное моделирование используют для имитирования траектории движения инструмента, который выполняет простые процедуры по 2.5 либо 3 осям. Понятие 2.5 оси сопряжено с тем, самые элементарные системы способны обрабатывать данные о формах, имеющих постоянное поперечное сечение. Подобную форму возможно создать таким образом - сперва происходит создание вида XY, далее каждой точке присваивают 2 значения координаты Z, которые характеризуют глубину изображения.

Минусами каркасной модели являются:

·        Неоднозначность - представление модели в каркасном виде происходит после представления всех ее ребер;

·        Невозможность определить криволинейные грани - мнимые ребра;

·        Отсутствие возможности обнаружения взаимного влияния компонентов;

·        Трудности, возникающие при вычисление физических характеристик;

·        Отсутствие средств выполнения тоновых изображений.

2.1.2 Поверхностное моделирование

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

У поверхностного моделирования есть ряд преимуществ, в сравнении с каркасным:

·        Имеется возможность распознать и изобразить сложные криволинейные грани;

·        Изображение грани для получения тоновых изображений;

·        Особое построение на поверхности (отверстия);

·        Можно получить качественное изображение.

В основе поверхностного моделирования лежат две основные математические аксиомы:

·        Любая поверхность подвержена аппроксимации многогранником, любая грань которого представляет собой простейший плоский многоугольник;

·        Так же, как и плоские многоугольники, в модели допускаются поверхности второго порядка и аналитически не описываемые поверхности, форма которых определяется при помощи всевозможных методов аппроксимации и интерполяции. В сравнении с каркасным моделированием, в этом методе у объекта имеется и внутренняя и внешняя часть.

Типы поверхностей:

·        Базовые геометрические поверхности (сюда относятся плоские поверхности, которые получаются в результате следующих действий: чертим прямой отрезок, далее применяем команду, которая осуществляет разворот этого отрезка на указанное расстояние в пространстве; таким способом можно осуществлять разворот поверхности);

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

·        Поверхности сопряжений и пересечений;

·        Скульптурные поверхности (поверхности свободных форм или произвольные поверхности).

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

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

Методы отображения скульптурных поверхностей имеют непосредственную связь с возможностью графического устройства. На сегодняшний день моделирование скульптурных поверхностей массово применяется в проектировании кузовов средств передвижения, и предметов быта.

2.1.3 Твердотельное моделирование

Твердотельная модель характеризуется трехмерным объемом, занимаемым определяемым ею телом. Этот метод моделирования считается одним из самых совершенных и достоверным при создании копий реальных объектов.

Плюсами твердотельной модели являются:

·        Абсолютное обозначение объемной фигуры с вероятностью разделять внутренние и внешние области предмета, что очень важно для двухстороннего влияния компонентов;

·        Автоматическое удаление скрытых линий;

·        Автоматически создаются 3D - разрезы компонентов, что является важным для трудного сборочного изделия;

·        Используются методы анализа, имеющие автоматическое получение изображений конкретных характеристик веса методом конечных элементов;

·        Можно получить тоновые эффекты, и имеется возможность манипулировать источником света.

Существует три метода создания трехмерных твердотельных моделей:

·        метод конструктивного представления (C-Rep);

·        метод граничного представления (B-Rep);

·        гибридное моделирование.

Метод конструктивного представления (МКП).

Суть метода конструктивного представления состоит в создании твердотельной модели из стандартных компонентов, которые называются твердотельными примитивами, и определяются такими параметрами, как форма, размер, точка привязки, ориентация. МКП является бинарным древовидным графом G = (V, U), где V - множество вершин, являющихся базовыми элементами формы-примитива, которые являются составляющими объекта, а U - множество ребер, являющихся обозначением теоретико-множественных операций, которые выполняются над надлежащими базовыми элементами формы.

Примитивы модели заданы множеством атрибутов: A = < X, Y, Z, Lx, Ly, Lz, Sx, Sy,… Sn,> где X, Y, Z - где координаты точки привязки локальной СК к системе целого объекта; Lx, Ly, Lz - углы поворота, Sx, Sy,… Sn - метрические параметры объекта. Такие булевы операции главный инструментарий, использующийся для того, чтобы определить взаимоотношения соседствующих примитивов. Эти операции основываются на теории алгебраических множеств. Самыми основными операциями являются объединение, пересечение, вычитание.

Метод граничного представления.

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

У каждого из вышесказанных методов имеются свои преимущества и минусы. Главный плюс системы, использующей метод конструктивного представления - первоначально формирование модели, так как проектирование объемной модели правильных параметров из трехмерных примитивов, используя при этом булевы операции - задача простая. Помимо этого, метод предполагает краткое описание модели в базе данных. B-rep обычно используется для создания сложного объекта, который невозможно либо очень сложно создается с помощью c-rep метода. C-rep метод хранит модель как комбинацию данных и процедур алгебры логики, поэтому требуется малое количество памяти, однако объем становиться больше за счет всевозможных вычислений, которые используются для воспроизводства модели. В моделях с b-rep представлением описываются точные границы модели, что требует большое количество памяти, но при этом нет никакой потребности в вычислениях. Еще одно достоинство системы с b-rep - легкость конвертации из граничной в каркасную модель, и наоборот. Эта простота обусловлена тем, что описания границ и каркасных моделей подобны, что облегчает процесс преобразования моделей из разных форм, и позволяет системам с b-rep совмещаться с другими системами.

Гибридное моделирование.

Так как у методов c-rep и b-rep огромное количество плюсов и минусов, были созданы гибридные системы, сочетающие в себе эти два метода. В гибридном моделировании сочетается каркасная, поверхностная и твердотельная геометрия и используются всевозможные комбинации параметрического и размерного моделирования. Несомненно, использование единственной стратегии моделирования было бы лучшим, однако возникают ситуации использования данных, наработанных ранее, либо осуществляется импорт данных из иных систем, которые имеют другие представления. Также, работа с проволочными моделями или 3D геометрией, описанной поверхностью, происходит эффективнее. Иногда лучше иметь разные представления для различных компонентов. К примеру, для листового покрытия лучше использовать поверхностное моделирование, а моделировать трубопровод - осесимметричным.

3.      Особенности реализации


Предыдущий раздел был посвящен обзору существующих методов. Для этой работы был выбран метод полигонов, или иначе метод создания моделей, используя редактируемые поверхности. В программе 3ds Max предусмотрена возможность работы с такими типами, как:

·        Editable Mesh (Редактируемая поверхность);

·        Editable Poly (Редактируемая полигональная поверхность);

·        Editable Patch (Редактируемая патч-поверхность);

·        NURBS Surface (NURBS-поверхность).

Любые объекты 3ds Max преобразуется в любой из перечисленных выше видов поверхности. Это осуществляется с помощью клика правой кнопки компьютерной мышки, которая вызовет контекстное меню. Из предложенных пунктов выбираем Convert To (Преобразование в) [12].

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

Над подобъектами можно совершать такие операции, как перемещение, масштабирование, удаление, объединение, при помощи переключения различных режимов редактирования.

Рассматривая первый тип Editable Mesh (редактируемые поверхности) необходимо сказать о том, что модели состоят из граней в форме треугольника. Чтобы начать с ними работу, необходимо перейти в режим редактирования и использовать такие инструменты, как Vertex(Вершина), Edge(Ребро), Face(Грань), Polygon(Полигон), Element(Элемент).

Составляющей объектов типа Editable Poly (редактируемая поверхность полигонов) являются многоугольники. В этом типе применяются такие инструменты редактирования, как Vertex (Вершина), Edge (Ребро), Border (Граница), Polygon (Полигон) и Element (Элемент).

Лоскуты треугольников и четырехугольников применяются в таком типе, как Editable Patch (Редактируемая патч-поверхность), создаваемые благодаря сплайнам Безье. Главной особенностью в этом типе является то, что управление формой формируемого объекта довольно гибкое. В этом режиме используются Vertex (Вершина), Edge (Ребро), Patch (Патч), Element (Элемент) и Handle (Вектор) инструменты.Surface (NURBS-поверхность) - это поверхность, построенная на NURBS-кривых. В этом методе при создании поверхностей используется неоднородные рациональные B-сплайны. В большинстве случаев этот тип используется при моделировании органических предметов, или создании анимации лица. Метод, в сравнении с другими обладает гибкостью, но при этом его сложно освоить.

Инструмент Editable Mesh (сетка) используется при создании главных 3D форм. Этот инструмент не представляет собой параметрический объект, инымит словами задается он не параметрами, как примитивы. Любые 3D - объекты преобразовываются в сетку, которая подвергается редактированию. Преобразованный объект можно использовать для моделирования полигонов.

Настраивание режимов происходит благодаря четырем основным свиткам - Selection (Выделение), Soft Selection (Плавное выделение), Edit Geometry (Редактирование геометрических характеристик) и Surface Properties (Свойства поверхности. Инструментарий, несмотря на одинаковость свитков для большинства режимов, может быть отличным, все зависит, какой тип подобъекта выбран.

У такого свитка, как Selection (выделение) имеется настройка подобъектного выделения. С помощью него можно осуществлять быстрое переключение режимов редактирования.

Устанавливая флажок Ignore Backfacing (Игнорировать невидимые участки), выделяются области объектов, обращенные к пользователю.

Для удобства редактирования часто применяют скрывание тех или иных элементов оболочки. Так как классической командой Hide Selection (скрыть выделение) в этом случае не обойтись, выполнение этой операции производится кнопкой Hide (скрыть). Чтобы отобразить все скрытые объекты данной сцены нужно кликнуть кнопку Unhide All (Отобразить все).

Soft Selection (Плавное выделение) используется при плавом выделении. Частое применение этого свитка происходить при создании 3D - моделей объектов. Смысл данного метода таков: при перемещении одного типа подобъектов на выделенные элементы объекта оказывалось воздействие с силой, зависящей от расстояния, на котором эти элементы находятся от центра выделения. Чтобы включить этот режим, достаточно поставить галочку на флажке Use Soft Selection (Использовать главное выделение). Установить расстояние воздействия можно с помощью параметра Falloff (Спад).

Параметры Pinch(Сужение) и Bubble(Выпуклость) определяют такую характеристику как распространение воздействия. Этот же свиток отображает кривую воздействия по выделенной области. Изменяя значение параметров, меняется форма кривой, что визуально определяет характер выделенной области. Плавное выделение доступно в большинстве режимов подобъектного редактирования.

Свиток Edit Geometry (Редактирование характеристик геометрии) содержит основной инструментарий, предназначенный для работы с поверхностями, которые можно редактировать. Создание подобъектов происходит с помощью Create (Создать), их удаление при помощи Delete (Удаление), присоединение к оболочке (Attach (Присоединение)), отсоединение с помощью Detach (Отсоединить).

При редактировании поверхности частым в использовании является инструмент Extrude(Выдавливание). Эта операция помогает перемещать выделенные подобъекты на заданную длину. Схожим с Extrude (выдавливание), является инструмент Bevel, но они отличаются тем, что благодаря последними выделенный объект выдавливается под указанным углом, что дает возможность изменять его площадь. Этот инструмент используется в основном в режиме редактирования Polygon(Полигон) и в режиме Face(Грань). Чтобы создать фаску на ребре или вершине необходимо использовать инструмент Chamfer.

Положение переключателя Normal (нормаль) (Group(Общие) или Local (Выборочные) зависит от таких параметров, как Extrude (Выдавливание) и Bevel (Выдавливание со скосом). В Group (Общие) выделенными подобъектами используется нормаль усредненная, а в случае с Local (Выборочные) выдавливать необходимо по направлению нормалей всех выделенных подобъектов.

Функции некоторых инструментов, которые используются при редактировании поверхностей схожи с модификаторами 3ds Max. Помимо вышерассмотренных инструментов, которые напоминают модификаторы, свиток Edit Geometry (Редактирование характеристик геометрии) имеет аналоговый модификатор Slice (Срез). Этот параметр носит название Slice Plane (Плоскость среза). Нажав на кнопку с этим именем, посередине объекта появляется схематическая плоскость. Эта плоскость разрезает подобъекты, меняя топологию поверхности, подверженной редактированию.

С этой плоскостью можно проводить такие операции, как перемещение вдоль осей, вращение, масштабирование. Подобрав требуемое положение нужно кликнуть на кнопку Slice (срез), после которой произойдет разрезание. В случае последующего разделения полученных частей, изначально нужно установить флажок Split (Разделить). Разрезание вручную происходит с использование инструмента Cut (Разрез).

При работе, когда происходит редактирование оболочки Editable Mesh (редактируемой поверхности), часто возникает потребность увеличения плоскости полигональной структуры. Эта надобность возникает, к примеру, при необходимости увеличения разрешения оболочки объекта на месте сгиба (локтевого сустава героя, или лицевого мускула). Для этого используют операцию Tessellate (Разбиение граней). От положения переключателя By (Разбить по) зависит топология сетчатой поверхности, которая образуется при использовании подобъектного разбиения. При использовании режима уплотнения структур полигонов Edge (По ребру), происходит образование четырех новых граней, а при использовании режима Face-Center (По центру грани), происходит образование трех новых. Эта операция может работать только в таких режимах, как Face (Грань), Polygon (Полигон), и Element (Элемент).

Преобразование объектов в самостоятельные или редактируемые происходит с помощью воздействия на выделенные подобъекты инструментом Explode (Взрыв).

Удаление выделенного подобъекта происходит с помощью инструмента Collapse, путем стягивания прилегающих подобъектов.

Чтобы определить участки сглаживающей группы используют свиток Surface Properties (Свойства поверхностей).

Грани в совокупности, к которым применили автоматическое сглаживание, называют группой сглаживания. Граничащие друг с другом группы сглаживания образовывают острые ребра. Группа сглаживания назначается путем выделения требуемых подобъектов, установления нужного номер сглаживающей группы и нажатия клавиши Enter.

Полигональные объекты - объекты, которые основаны не сетке полигонов, и из них же строится поверхность объектов. Между ними и объектами Editable Mesh (Редактируемые поверхности), замечается какая-то схожесть, но при этом есть и уникальные возможности. Пользователь имеет доступ к этим объектам, только как Editable Poly (Редактируемая полигональная поверхность). Преобразование геометрических объектов происходит путем конвертирования в Editable Poly (Редактируемая полигональная поверхность), а также применяя модификаторы Edit Poly (Полигонное редактирование) или Poly Select (Полигонное выделение) [13].

Инструменты для редактирования поверхности Editable Poly (Редактируемая полигональная поверхность) похожи со средствами редактирования Editable Mesh (Редактируемая поверхность, но имеет ряд дополнительных возможностей.

Существует объединение шести свитков, благодаря которым настраиваются режимы редактирования - Selection (Выделение), Soft Selection (Плавное выделение), Edit Geometry (Редактирование геометрических характеристик), Subdivision Surface (Поверхность разбиения), Subdivision Displacement (Смещение разбиения) и Paint Deformation (Деформация кистью). Свитки являются одинаковыми для любого режима, но их инструментарий может различаться, и зависит от типа подобъекта, который выбрали. Также есть пара дополнительных свитков, изменение которых зависит от режима [14].

Выделение подобъектов и параметр Ignore Backfacing (Игнорирование невидимых участков), настраиваются с помощью свитка Selection (Выделение).

Также здесь имеется инструмент Grow (Выращивание), чего нет в режиме Editable Mesh (Редактируемая поверхность). Этот инструмент удобен в применении для увеличения радиуса выделения. Каждый раз нажимая кнопку Grow (Выращивание), выделенная область добавляет к себе подобъекты, прилегающие к ней. Обратное действие операции Grow (Выращивание) является действие Shrink (Сокращение). Соответственно, нажимая эту клавишу, будет проходит обратный процесс, удаление прилегающих выделенных подобъектов.

В режимах подобъектного редактирования Edge (Ребро) и Border (Граница) обычно происходит использование инструментов Ring (по кругу) и Loop (Кольцо). С помощью первого инструмента выделяются подобъекты, располагающиеся по периметру объекта, а с помощью второго - расположенные с выделением на единой линии. Для переноса выделений на примыкающие области применяют инструменты прокручивания, которые расположились рядом с кнопками. Каждым кликом инструмента прокрутки выделение смещается на одну границу или ребро.

Доступные для редактирования поверхностей типа Editable Mesh (Редактируемые поверхности) инструменты, повторяются в свитке Soft Selection (Плавное выделение). Но в них, в качестве дополнения имеется область Paint Soft Selection (Плавное выделение кистью). Инструменты, находящиеся там, позволяют вручную настроить мягкое выделение, прибегая при этом к виртуальной кисти. Если выделять, используя инструмент Paint Soft Selection (Плавное выделение кистью), то для начала нужно переключиться на режим, нажатием кнопки Shaded Face Toggle (Переключить в режим затененных поверхностей), в котором окрашивание подобъектов будет зависеть от выделения.

Более точно настроить параметры кисть можно, используя окно Painter Options (Настройки рисования), вызываемое кликом кнопки Brush Options (Настройки кисти). С максимальной точностью описывать профиль поверхности, которую выдавливают, можно при помощи кривой деформации в этом окне.

В режиме Editable Mesh (Редактируемая поверхность) некоторые инструменты вынесли в свиток Edit Geometry (Редактирование характеристик геометрии).

Инструменты, вынесенные в Editable Mesh (Редактируемые поверхности) в отдельный свиток, называемый Edit Geometry (Редактирование характеристик геометрии), в режиме Editable Poly (Редактируемая поверхность полигонов) разбиты на 2 свитка. Это обусловлено тем, что инструментарий для процесса редактирования в Editable Poly обширнее. Один свиток назван переменно - Edit Vertices (Редактировать вершины), Edit Polygons (Редактировать полигоны), Edit Edges (Редактировать ребра), Edit Borders (Редактировать границы), Edit Elements (Редактировать элементы). Второй назван Edit Geometry (Редактирование характеристик геометрии).

Свиток Edit Geometry (Редактировать характеристики геометрии) содержит такие инструменты, как Create - создать, Attach- присоединение, Detach - отсоединение. Также предусмотрено две операции разрезания - Slice Plane (Плоскости срезов) и Cut (Разрез), и инструмент для разбиения граней - Tessellate, и их удаления - Collapse. Также в этом свитке располагаются инструменты, чтобы скрыть выделенное - Hide Selected, и инструмент Unhide All, чтобы отобразить выделенные подобъекты.

У большинства инструментов Editable Poly (редактирование полигональной поверхности) справа расположена кнопка настройки - Settings. Благодаря ей можно получить доступ к инструментальным настройкам. Она является заменой поля для установки численных значений, присутствующих в инструментарии Editable Mesh (Редактирование поверхности).

Прототипом MeshSmooth (Сглаживание) в этом режиме является MSmooth, но их отличает тот факт, что один выполняет работу над выделенными подобъектами. Такой инструмент, как Relax (Ослабить) также является аналогом.

Используя кнопку Repeat Last (Повторение последнего действия) можно применить инструмент и его действие вновь, в режиме редактировании Editable Poly (Редактировать полигональную поверхность).

Свиток с переменным названием, которое зависит от выбранного режима редактирования, мы встречаемся с привычными инструментами, такими как Extrude (Выдавить), Bevel (Выдавить со скосом), Chamfer (Фаска). У такого инструмента как Chamfer (Фаска) возможностей больше, если сравнивать с аналогичным инструментом Editable Poly (Редактируема поверхность полигонов). К примеру, поверхность, которая образовалась после применения этого инструмента в Editable Poly, подвергается удалению.

Режим редактирования Polygon (Полигон) содержит такой инструмент, как Outline (Контур), благодаря которому происходит управление площадью полигона, который выделили. Инструмент Bridge (Мост) нужен для управления формой трехмерного объекта, чтобы выстроить между несколькими элементами сетки модели. Последний инструмент имеется только в режиме Polygon (Полигон), Edge (Ребро) и Border (Граница).

Вращение полигонов вокруг выделенных ребер осуществляется с помощью инструмента Hinge From Edge (Поворот вокруг ребра). Выдавливание осуществляется с помощью такого инструмента, как Extrude Along Spline (Выдавливание по сплайну), который использует форму сплайна, заданную изначально. Этот инструментарий доступен только в таком режиме, как Polygon (Полигон).

Обращение нормалей выбранного участка происходит с помощью инструмента Flip (Обратить), который имеется только в режиме Polygon (Полигон) и в режиме Element (Элемент). Инструментом Connect (Соединение) у выделенных ребер соединяются центры, а инструмент Cap (Замыкание) производит замыкание внутри пространственной пустоты между замкнутыми границами полигонов (в режиме Border (Граница)).

Самый распространенный способ моделирования в 3D графике - это полигональное моделирования. Несмотря на обширное количество инструментов в Editable Poly (Редактируемая поверхность полигонов), иногда необходимо сделать более реалистичную, пластилиновую модель [15]. Для этого в 3ds max предусмотрен свиток Paint Deformation (Деформирование кистью), который располагается в настройке Editable Poly. Благодаря нему можно производить деформацию объекта так, как описано выше. Он содержит в себе огромное количество наборов кистей, с помощью которых реализовывается вдавливание и смещение положений вершин сетки объекта. Этот свиток удобен в использовании по отношению к оболочкам, которые содержат множество полигонов.

Выбрать характер деформации, который производится кистью, можно при работе с такими параметрами, как Push/Pull Value (Сила вдавливания/вытягивания), Brush Size (Размеры кисти) и Brush Strength (Сила воздействия кисти). Сглаживание выступающих частей модели производится кнопкой Relax (Ослабить). При помощи кнопки Revert (Возврат) можно отменить созданную деформацию. Действия Paint Deformation (Деформация кистью) в режиме Revert (Возврат) на определенных участках отменяются движением кистью.

Чтобы настроить параметры кисти более точно, используется окно Painter Options (Настройка режима рисования), вызываемое кликом кнопки Brush Options (Настройка кисти).

Модели типа Editable Patch (Редактируемые патч-поверхности) состоят из треугольных или четырехугольных лоскутков, создаваемые сплайнами Безье [16].

Patch Grids (Сетки патчей) - поверхность Безье, представляющая собой четырехугольные или треугольные фрагменты, которые основаны на сплайнах, управляемые с помощью манипуляторов Безье.

В меню Create (Создать) содержится пара параметрических лоскутков Безье, но в своем большинстве объекты создаются преобразованием в Editable Patch (Редактируемая патч-поверхность).

У моделирования с помощью фрагментов Безье есть ряд преимуществ, в сравнении с иными способами [17]:

·        Автоматически сглаживаются стыки между фрагментами, пользователь получает при этом плавные переходы от одних фрагментов к другим;

·        Манипуляторы Безье помогают управлять фрагментами;

·        Имеется возможность полностью управлять топологией лоскутов Безье, что дает на выходе сглаженную модель, имея при этом незначительные затраты;

·        Итоговой моделью является каркас без швов, легко поддающийся анимации.

При этом имеются и свои недостатки:

·        При моделировании какой-либо поверхности с изломом, автоматическое сглаживание является недостатком;

·        Фрагменты Безье большого размера, что усложняет работу с небольшими объектами.

Все вышеперечисленное является инструментами, которые были использованы при создании виртуальной модели Мультимедиа Арт музея. Далее происходит экспорт проекта из 3ds Max в Unity, в формате.fbx.

4.      Практическая часть


Данное мобильно приложение представляет собой виртуальную экскурсию по музею, созданному средствами 3D моделирования.

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

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

Чтобы повысить доступность виртуального тура, необходимо учесть размер итогового продукта, и провести оптимизацию 3D - модели в таких направлениях [18]:

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

)        Возможный отказ от создания источника света при использовании на устройствах пользователей, и заменить освещение наложением световой маски на текстуры объектов освещения.

На выходе должен получится музей, по которому пользователем осуществляется передвижение с помощью кнопки «вперёд» и вращения камеры. В музее содержаться экспонаты, которые были представлены в период работы над созданием. Информацию о некоторых экспонатах можно будет получить в соответствующем разделе.

4.1    Создание 3D - модели


Моделирование музея началось с изучения плана помещения (рис. 19,20).

Рис. 19 План первого этажа

Рис. 20 План второго и третьего этажей

Для работы в 3ds max план необходимо было видоизменить, а именно:

·        Обеспечить монохромность чертежа, чтобы он не имел белых цветов.

·        Нужно учесть масштаб, и сделать так, чтобы крайние сцены интерьера совпадали с границей всего изображения.

Создается Plane с размерами, соответствующими плану здания. Далее происходит перемещение чертежа из папки на модель, и конвертация Plane в Editable Poly. Последующая работа происходит с помощью инструмента Connect, который позволяет создавать дополнительные ребра, являющиеся в нашем случае стенами.

На следующем этапе работы происходит выдавливание стен и Plane инструментом Extrude. Перекрытия над окнами и дверными проемами добавляется инструментом Bridge.

Затем происходит создание объектов, лестниц, и наложение текстур. В итоге, мы получили готовый музей, со всеми картинами, объектами, текстурами (Рис. 21-25).

Рис. 21 Рендер. Вид на холл

Рис. 22 Рендер. Вид на экспозицию первого этажа

Рис. 23 Рендер. Вид с лестничного пролета

Рис. 23 Рендер. Вид на балкон

Рис. 24 Рендер. Выставочный зал

4.2    Работа с Unity


Следующим шагом работы стал экспорт созданного музея в Unity (рис. 25). Происходит это все вручную следующим образом [19]:

)        Сцена и объекты сохраняются в формате.fbx.

)        Файл.FBX копируется в проектную папку Unity.

)        При переключении обратно в Unity импорт файла.fbx происходит автоматически.

)        Затем перемещаем файл из окна Project в окно Scene.

Рис. 25 Экспорт 3D - модели в Unity

Экспортирование музея произошло без загрузки текстур и материалов, поэтому требуется их ручная загрузка (рис. 25).

Рис. 26 Демо-версия приложения. Объекты моделирования не текстурированы

Импортировать текстуру можно так:

1.      Создается папка на панели «Project», для дальнейшего хранения текстур;

2.      Выбрать текстуру можно с помощью клика правой кнопкой мыши «Import New Asset…» на панели «Project»;

.        Создание нового материала происходит в соответствующей папке;

.        Выбираем материал, и текстуру к нему, используя кнопку панели «Inspector»;

.        Присваиваем объектам созданные материалы.

В последнюю очередь прописываем скрипты, с помощью которых будет осуществляться передвижение. Реализовано это путем вращения камеры, и нажатия кнопки передвижения вперед.

Заключение


Дипломная работа посвящена созданию программы, представляющей собой виртуальный 3D-тур по Московскому Мультимедиа Арт музею.

Разработка музея проходила в два этапа: на первом этапе была создана 3D модель музея с помощью 3ds Max. Вторая часть - создание самого мобильного приложения при помощи игрового движка Unity.

На первом этапе были поставлены такие задачи, как рассмотрение основных понятий трехмерной графики, изучения инструментария и интерфейса 3ds Max.

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

Готовая 3D - модель была экспортирована в Unity3d, где было произведено текстурированные объектов, прописаны скрипты для передвижения. Для реальности была проведена работа с источниками света.

Итоговым продуктом стало мобильное приложение под Android. Операционная система, среда программирования, и игровой движок были выбраны н основе анализа, проведенного в первой главе.

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


1.   Антон Деникин. Звуковой дизайн в видеоиграх. Технологии «игрового» аудио для непрограммистов. 2013.

2.      Brian Greene, The Fabric of the Cosmos, Random House, New York, 2003, ISBN 0-375-72720-5 <https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BA%D0%BD%D0%B8%D0%B3/0375727205>.

3.      Дж. Ли, Б. Уэр. Трёхмерная графика и анимация. 2-е изд. М.: Вильямс <https://ru.wikipedia.org/w/index.php?title=%D0%92%D0%B8%D0%BB%D1%8C%D1%8F%D0%BC%D1%81_(%D0%B8%D0%B7%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE)&action=edit&redlink=1>, 2002. 640 с.

.        В. П. Иванов, А. С. Батраков. Трёхмерная компьютерная графика / Под ред. Г. М. Полищука. М.: Радио и связь <https://ru.wikipedia.org/w/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_%D0%B8_%D1%81%D0%B2%D1%8F%D0%B7%D1%8C&action=edit&redlink=1>, 1995. 224 с.

.        Алан Дж. Каламейа, Джон Х. Уилсон. Трехмерное (3D) моделирование в Autodesk AutoCAD 2004. Визуальный курс.

.        <http://tours.kremlin.ru/>.

.        http://www.louvre.fr/en/visites-en-ligne#tabs <http://www.louvre.fr/en/visites-en-ligne>.

.        <http://edu.hermitage.ru/catalogs>.

.        (<https://www.guggenheim.org/collection-online>.

.        <http://www.britishmuseum.org/research/collection_online/search.aspx>.

.        И.П. Норенков. Автоматизированное проектирование. Москва. 2000.

.        Бондаренко С.В., Бондаренко М.Ю. Autodesk 3ds Max 2008 за 26 уроков. 3D Studio max 2008. Диалектика, 2008.

.        Мортье Ш. 3ds Max 8 для «чайников».: Пер. с англ. М.: Издательский дом «Вильямс», 2006.

.        Бондаренко С.В., Бондаренко М.Ю. 3ds Max. Легкий старт. СПб.: Питер, 2005.

.        Билл Флеминг. Создание трехмерных персонажей. Уроки мастерства: пер. с англ. / М.: ДМК, 2005.

.        Верстак В.А. 3ds Max 8. Секреты мастерства. СПб.: Питер, 2006.

.        Келли Л. Мэрдок. Autodesk 3ds Max 9. Библия пользователя. 3D Studio MAX 9. Диалектика, 2008.

.        Крис Дикинсон. Оптимизация игр в Unity 5. Советы и методы оптимизации приложений.

.        Алан Торн. Искусство создания сценариев Unity.