Вы используете крайне устаревший браузер, который не поддерживает технологические решения, используемые на данном сайте. Кроме того, работа в сети Интернет с использованием устаревшего браузера крайне опасна для вашего компьютера. Настоятельно рекомендуем обновить ваш браузер, установив один из перечисленных ниже с сайта его производителя:
---------------------------------------------------------------------------
You are using a very old browser that does not support the technological solutions used on this site. In addition, working in the Internet using an outdated browser is very dangerous for your computer. We strongly recommend you to upgrade your browser to one of the following from the site of its manufacturer:
Р.А. Барышев М.В. Румянцев Н.О. Пиков И.Н. Рудов
Методические рекомендации (МР) по созданию виртуальных реконструкций, адаптированных для визуализации в реальном времени, обобщают опыт проведения виртуальных исторических реконструкций специалистами Гуманитарного института Сибирского федерального университета.
Техники моделирования, представленные в МР, могут применяться в учебно-образовательном процессе в качестве дополнительного материала к курсу «Основы трехмерного моделирования».
Технология 3D-engine (3D-движок), появившись в середине 1990-х гг. прошлого века, к настоящему времени является одной из наиболее перспективных в области трехмерной графики. Данная технология наделяет интерактивностью заранее созданное трехмерное пространство, позволяя совершить по нему виртуальную прогулку, взаимодействовать с предметами, персонажами и др.
Наиболее активно в XXI веке технология 3D-engine применяется в индустрии компьютерных игр, реже в кинематографе. Однако, с некоторых пор, область применения трехмерных движков расширяется и в настоящее время технология применяется в самых разнообразных проектах, в том числе в проектах, связанных с сохранением историко-культурного наследия.
Следует отметить, что необходимость применения 3D-технологий в данной области проявилась ещё в 1990-х гг. XX века и была связана с появлением специализированного программного обеспечения моделирования трехмерных объектов. В этот период появляются виртуальные исторические реконструкции храма Св. Петра в Иордании М.С. Жуковского (M.S. Joukowsky, Браунский университет, США), реконструкция Ватиканского дворца эпохи Возрождения, предпринятая в 1998 году группой немецких исследователей под руководством профессора Дармштадского университета Манфреда Кооба, реконструкция буддийского храмового комплекса Сазаедо (Япония), разработанная коллективом исследователей (J. Abouaf, C.W. Vilbrand, J.R. Goodwin, T. Ikedo), активно сотрудничающих с японскими университетами в 1999 г.
В целом, в конце 1990-х гг. в мировой практике уже имелся опыт реализации крупных проектов в области сохранения историко-культурного наследия с применением технологий трехмерного моделирования, которые выполнялись специалистами Германии, Польши, Италии, Великобритании, Швейцарии и Франции [3].
Данная проблематика неоднократно становилась предметом международных конференций. Так, в 2000 году состоялась первая совместная конференция «Computing archaeology for understanding the past» (Любляна, Словения), которую организовали международные сообщества археологов CAA (Computer Applications and Quantitative Methods in Archaeology) и UISPP (Union International des Sciences Prehistorique et Protohistorique). На конференции были представлены и обсуждены доклады, в которых рассматривались различные аспекты применения трехмерных технологий в археологических изысканиях: инструменты трехмерного моделирования, технологии и методики создания виртуальных моделей археологических памятников и т. д.
В России проблематика применения технологий трёхмерного моделирования в исторических исследованиях получила развитие в рамках работы ассоциации «История и компьютер». Первые публикации по данной теме относятся к 2003-2004 гг. В этот период появляются работы теоретического характера, в которых выделяется необходимость в исторических исследованиях визуализировать социальные системы посредством математических моделей и моделей-образов. Так, в перечне этапов реконструкции социальных систем, профессор кафедры историографии и источниковедения ДНУ (Днепропетровского университета) В.В. Подгаецкий [5] выделяет три составляющие, в которые входит и визуализация исторических объектов.
Таким образом, в настоящее время наблюдается тенденция к возрастанию «критической массы» применения информационных технологий в научных исследованиях, а применение программ трехмерного проектирования и моделирования представляет собой неотъемлемую часть исторического познания.
Параллельно с развитием программных средств моделирования трехмерных объектов происходили прогрессивные трансформации технологии 3D-engine.
Так как на заре своего развития работа с 3D-движками являлась уделом высокопрофессиональных программистов, то в этот период характерна их применяемость в основном в индустрии компьютерных игр (Game development), что, конечно, связано с финансовой привлекательностью данной области для частных предпринимателей. Однако с середины 2000-х гг. формируются условия, благоприятствующие взаимной интеграции технологий моделирования и технологий визуализации в областях, не связанных с игростроительством, это в первую очередь наука, медицина, искусство и др.
Статичные картинки на плоскости и видеоролики, получаемые путем рендера (render) в программных пакетах 3D-моделирования и анимации, теряют свою актуальность в пользу интерактивных ИТ-решений, так как их (плоскостных визуализаций и видеороликов) становится недостаточно для воссоздания исторических и культурных объектов и процессов. В то же время на рынок выходят недорогие объектно-ориентированные трехмерные движки (UDK, Unity3D, Quest3D и др.), не требующие высококвалифицированных специалистов в области программирования.
В результате, в настоящий момент в мире реализуется множество проектов в области сохранения историко-культурного наследия с применением технологии 3D-engine, в которых реализовано моделирование элементов быта прошлых поколений, архитектурных сооружений и т. п. Большая часть подобных проектов разрабатывается коллективами западных частных организаций и университетов, наиболее известные из которых – это Digital Design Research Group (США), Knauf (Германия), LAND Lab Pastscapes 3D Archaeological Reconstruction Company (Англия) и др.
В России разработка таких проектов ограничена, и происходит точечно в западной части страны. Тем не менее, существуют проекты, например, частных российских компаний (Virtual Environment Group, 3DreamTeam), а также коллективов Алтайского университета, Тамбовского государственного университета, МГУ и др.
Первостепенной задачей информационной части трехмерной виртуальной реконструкции является выбор соответствующего программного обеспечения и технических средств, необходимых для ее проведения. Сюда входят редакторы трехмерной графики для моделирования объектов реконструкции и редакторы двухмерной графики для подготовки текстур.
На сегодняшний день разработано большое количество программного обеспечения для работы с трехмерной графикой. Лидерами в этой области являются кампании Autodesk (3d Studio Max, Maya, Cad-программы), The Blender Foundation (Blender), MAXON (Cinema 4D), Google (Google Sketch Up). Каждый из перечисленных программных продуктов позволяет создавать достаточно сложные трехмерные модели, однако наиболее функциональным считается программный пакет 3d Studio Max (далее по тексту 3dsMax).
3dsMax включает в себя средства для точного трехмерного проектирования и моделирования твердых поверхностей любой сложности, моделирования различных органических объектов, анимации, рендеринга, системы для имитации физики, а также большое количество подпрограмм (плагинов), разработанных для выполнения специализированных задач.
Программный пакет включает в себя встроенную систему рендеринга (визуализации) Mental Ray и совместим с другими распространенными визуализаторами (V-ray, Brazil).
Обширный инструментарий, который предлагает 3dsMax определил целесообразность его применения для создания трехмерных сцен виртуальной реконструкции.
Несмотря на наличие широкого выбора двумерных редакторов, для создания и подготовки текстур чаще всего используется программа Adobe Photoshop, так как является общепризнанным лидером для работы с двухмерной графикой.
Любой трехмерный объект состоит из треугольников, для визуализации видеоадаптер просчитывает положение вершин треугольника по трем координатным осям и заливает пространство, ограниченное прямыми, проведенными через его вершины, заданным цветом. Таким образом, массив треугольников составляет трехмерный объект. При повороте камеры относительно объекта видеоадаптер просчитывает новое положение вершин треугольников, сохраняя их взаимное расположение, это позволяет увидеть объект с любой стороны.
Современное CG-сообщество выделяет несколько основных подходов к моделированию трехмерных объектов: моделирование на основе примитивов, моделирование посредством булевых операций, полигональное моделирование, rhino- и nurbs-моделирование, скульпинг. Наиболее универсальным подходом считается полигональное моделирование – моделирование посредством редактирования сетки объекта, состоящей из треугольников. Для упрощения моделирования трехмерных объектов происходит редактирование четырехугольников, которые называются полигонами, один полигон состоит из двух треугольников и ограничен 4-мя вершинами и 4-мя гранями.
В 3dsMax, для того чтобы начать работу с полигональной сеткой, необходимо преобразовать любой созданный объект в Editable Poly (редактируемый полигон). В этом режиме будет доступно несколько методов выделения на уровне подобъекта: Vertex – вершина, Edge – грань, Border – граница (грани, пространство между которыми не залито полигоном), Polygon (полигон), Element (выделение объекта ограниченного со всех сторон полигонами). На каждом уровне выделения возможно редактирование выделенного фрагмента модели (перемещение, скалирование, вращение и инструменты Editable Poly) (рис. 1).
Полигональное моделирование широко распространено в игровой индустрии и характеризуется стремлением минимизировать число треугольников в моделях, сохранив при этом равномерность полигональной сетки. Реалистичность объекта в этом случае достигается за счет применения высококачественных текстур. В некоторых случаях, полигональное моделирование не будет соответствовать той степени точности, которая необходима в виртуальных трехмерных реконструкциях (рис 2-3).
Исходя из требований к точности моделирования, предъявляемых к моделированию объектов виртуальной реконструкции, коллектив проекта разработал алгоритм, при котором любой архитектурный элемент сооружения моделируется в объеме (альтернативу представляет метод normal-mapping’а). Этот подход определил принцип сочетания высокополигонального и низкополигонального моделирования в ущерб равномерности полигональной сетки.
В игровой индустрии правильным считается тот объект, который полностью состоит из треугольников или четырехугольников, что в случае с точным воссозданием в трехмерном виде православного храма или другого достаточно сложного архитектурного сооружения, приведет к огромному количеству полигонов, и полученную модель невозможно будет использовать, например, в качестве элемента интерактивной сцены на базе 3D-engine. Суть предложенного принципа сводится к экономии полигонов в тех местах, где уровень детализации небольшой, и максимальному их количеству для моделирования деталей объекта.
Моделирование объекта – православного храма – начинается с построения несущих элементов в соответствии с общим планом (рис. 4). На этом этапе очень важно выделить все ключевые элементы сооружения. В случае с православной церковью это – притвор, колокольня, трапезная, приделы, храм, алтарь. Это необходимо для того, чтобы в дальнейшем стало возможно провести тщательный анализ относительных пропорции частей сооружения в соответствии с архитектурными принципами и православными канонами (в случае если объект является полностью утраченным).
Далее, на основе подготовленных профессиональным архитектором чертежей фасадов определяются высоты (рис. 5). На этом этапе проводится тщательный анализ пропорций объекта в соответствии с чертежами, текстовой информацией и графическими источниками.
На следующем этапе, в виде отдельных объектов, моделируются все элементы сооружения (окна, декор, двери и т.д.). Параллельно с этим проводится моделирование общего каркаса сооружения. Каркас сооружения моделируется с максимальной экономией количества полигонов.
Для моделирования отдельных деталей объекта применяется высокополигональный метод моделирования, необходимый для сохранения всех стилистических особенностей той или иной архитектурной формы (рис. 6).
Далее, игнорируя равномерность сетки, из полученных моделей вытягиваются 4 грани, для того чтобы элемент можно было «вшить» в общий каркас сооружения (рис. 7).
Результатом такого моделирования является единая модель, включающая в себя все архитектурные элементы сооружения (рис. 8).
После того, как объект полностью смоделирован, он разбивается на составные части по 35-40 тысяч треугольников и им присваиваются текстурные координаты и текстуры, имитирующие те или иные материалы. Текстуры подготавливаются заранее на основе фотоизображений и архивных документов (рис. 9).
В большинстве современных 3d-приложений используются детальные текстуры diffuse-канала (несут в себе информацию о цвете объекта), текстуры bump- и normal-каналов, имитирующие высотные перепады на объекте, текстуры specular-канала (несут информацию об отражающей способности объекта) и lightmap текстуры (несут информацию об освещенности объекта). Такое количество текстур, как правило, обусловлено стремлением минимизировать число полигонов и показать все с помощью текстур.
В случае с методом моделирования, который применяется для виртуальной реконструкции, все детали смоделированы в виде объемной геометрии. Таким образом, необходимы текстуры, имитирующие фактуру различных материалов (diffuse-канал) и текстуры, которые несут информацию об освещенности (lightmap) (рис. 10).
Таким же образом моделируется окружающая объект реконструкции среда: близлежащие постройки, растительность и пр. Однако здесь применяется метод снижения детализации, т.е. чем дальше объект расположен от ключевого сооружения виртуальной реконструкции (православной церкви), тем меньше деталей моделируется (рис. 11-12).
Немаловажной частью создания трехмерной сцены для виртуальной реконструкции является моделирование ландшафта. Для создания трехмерного ландшафта в среде редактора 3dsMax применяется метод Displacement (смещение) и соответствующий модификатор Displacement.
Метод Displacement’a заключается в изменении топологии трехмерного объекта в соответствии с двумерной картой высот выполненной в градациях серого. (RGB – 0,0,0 – соответствует нулевому уровню, т.е. без изменений топологии, RGB – 255, 255, 255 – соответствует максимальному возможному уровню изменения топологии).
Карта высот создается на основе топографической съемки местности (рис. 13), которую необходимо смоделировать с учетом количества топографических линий, крайних значений высот, перепадов высот между линиями. Далее палитра RGB разделяется на некоторое количество градаций, заданных в соответствии с топографической картой, и прорисовывается в графическом редакторе Adobe Photoshop (рис. 14).
В 3dsMax создается примитивный объект plane (плоскость) с плотностью сетки, соответствующей сложности рельефа будущего ландшафта, и размерами в соответствии с картографической съемкой, к нему применяется модификатор displacement, с загруженной картой высот, и задается значение strenght (сила), равное разнице между крайними значениями высот на топографической съемке местности (рис. 15).
Метод Displacement’a позволяет добавлять различные детали к полученному трехмерному ландшафту за счет изменения карты высот в соответствии с фотоизображениями и текстовой информацией.
Концепция виртуальной реконструкции в рамках данного проекта предполагает создание интерактивной среды, потому следующий этап разработки связан с внедрением трехмерной сцены в среду трехмерного движка (3d-engine). Используемый метод моделирования позволяет экспортировать трехмерные модели в среду 3d-engine без адаптации и переработки, за исключением карт теней (lightmap), которые создают иллюзию рассеянного света без дополнительно просчета и предварительно создаются в пакете трехмерного моделирования. Необходимость в «запекании» карт теней возникает вследствие того, что рассчитать детализированные тени в трехмерном движке в режиме реального времени невозможно из-за большого количества полигонов в моделях, используемых в виртуальной реконструкции. Положительным моментом заранее просчитанной информации о свете выступает значительная экономия аппаратных ресурсов при визуализации, однако это затрудняет процесс внесения изменении в конечную сцену, так как при внедрении новых объектов или перемещении существующих необходимо заново «запекать» карты теней.
«Запекание» текстурных карт, в данном случае карт теней, это процесс снятия с поверхности модели данных об освещенности пикселей, результатом которого является плоская развертка модели с соответственно затененными или освещенными участками. Для большего реализма «запекание» карт теней проводится в системе высококачественного рендеринга V-Ray 1.4 c просчетом траекторий фотонов (рис. 16).
Вышеописанный принцип моделирования объектов виртуальной реконструкции способствует созданию высококачественных карт освещения, так как на плоской развертке, создаваемой в автоматическом режиме, все крупные объекты, например, такие как общий каркас сооружения, занимают достаточно большое пространство в отличие от небольших деталей, которые разбиваются на подобъекты и занимают площадь не более 10х10 пикселей, при общем размере кары 1024х1024 пикселя.
Любая трехмерная модель может обладать любым количеством текстурных координат. В данном случае используются 2 канала текстурных координат: первый для карт diffuse, второй для lightmap карт.
При работе с детализированными моделями используются тайловые текстуры для карт diffuse (бесшовное изображение, например, известки, которое можно повторять любое количество раз). Таким образом, отпадает необходимость развертки объекта на плоскости и применяется модификатор UVWmap.
Создание канала разверстки карт теней происходит с использованием модификаторов Automatic flatten mapping в тех случаях, где достаточно автоматической разверстки и модификатора Unwrap UVW, если необходимо ручная корректировка разверстки.
Итогом моделирования объекта для виртуальной реконструкции является трехмерная модель сооружения, трехмерная модель ландшафта, трехмерная модель окружающего пространства. Все модели включают в себя карты diffuse и lightmap. Далее происходит интеграция всей трехмерной сцены в среду 3д-движка Quest 3d.
3D-engine (3д-движок) – программное ядро комплексной программной системы (игры), содержащее базовую функциональность игры, но, при этом, не включающее код, специфичный для геймплейной функциональности конкретной игры.
Данная технология является наиболее прогрессивной на сегодняшний день и предлагает:
Иногда игровой движок разделяется на графический движок, физический движок, звуковой движок и т.д. Каждая из таких компонент, является частью игрового движка. Игровые движки являются более неспециализированными, чем конкретная игра, что позволяет повторно использовать их в разных проектах. Тем не менее, некоторые разработчики игр называют движком весь исходный код игры.
Различают как специализированные движки (графические (2D/3D), физические, звуковые), так и совмещающие в себе особенности нескольких таких типов.
Создание приложений основанных на технологии 3D-engine весьма трудоёмкий процесс, подразумевающий необходимость решения целого ряда специфических задач. К числу таких задач относятся разработка соответствующих графических ресурсов, их экспорт в подходящий 3D-формат и последующая визуализация на клиентском уровне. При этом процесс визуализации должен быть достаточно эффективен для того, чтобы обеспечить приемлемый для пользователя уровень интерактивности, если этого требуют задачи проекта.
Подготовка графических ресурсов приложения обычно осуществляется дизайнерами и аниматорами в рамках тех или иных специализированных средств разработки. Наиболее часто для этого используются 3dsMax или Maya. После того как работа над ресурсами окончена, они должны быть выгружены (экспортированы) в формат графической оболочки. Для решения этой задачи в рамках 3D-engine были созданы соответствующие программные средства, использующие SDK 3dsMax и SDK Maya. При этом в целях контроля качества экспорта, а также в целях обеспечения разработчиков информацией о структуре сцены и используемых в ней ресурсах 3D-Engine предоставляет специальную программу Viewer, позволяющую визуализировать полученные в процессе экспорта результаты.
3D-Engine можно разделить на три большие категории:
К первой группе относятся 3D-engine Quest3D – движок, разработанный нидерландской компанией Act-3D в 2001 году.
Quest3D – это готовое комплексное решение для создания 3D-интерактивных приложений. Главной особенностью программы является возможность создавать достаточно сложные 3D-приложения без глубоких знаний программирования, будь то 3D-архитектурные интерактивные демонстрации, симуляторы, игры, приложения виртуальной реальности или что-либо ещё. В Quest3D имеется большое количество различных функций, которые позволяют использовать практические все необходимые технологии, для реализации качественных интерактивных 3D-приложений.
К данной группе следует отнести и 3D-engine Unity 3D, разработанный компанией Unity Technologiesто (США, 2005 год).
Unity 3D – кросплатформенный 3D-engine, предназначенный для разработки игр и полностью удовлетворяющий требованиям для создания архитектурных интерактивных демонстраций. Редактор работает под Windows и MacOS. Выпускаемые приложения на этом 3D-engine работают под Windows, MacOS, iPhone, Wii; имеется платформонезависимый web-плеер Unity (подключается к браузеру как плагин).
Группа игровых 3D-Engine представлена достаточным количеством программных решений, вероятно, в связи с высокой популярностью и востребованностью 3D-Engine в индустрии видеоигр.
Наиболее технологичные игровые движки: CryEngine (Германия, 2006 год), X-Ray (Украина, 2001 год), Valve Source Engine (США, 2004 год), Unreal Engine (США, 1998 год).
Существуют также попытки сравнить параметры движков между собой. Одной из них является классификация Д.И. Жеребятьева, который обобщил информацию о ряде 3D-Engines по таким параметрам как удобство в освоении, понятный интерфейс, визуализация, совместимость с 3D-редакторами, дополнительные модули и кроссплатформенность, цена и представил результаты, оценив возможности 3D-Engines по 10-балльной шкале (таблица 1).
Таблица 1 – Характеристики 3D-Engines
Название | Удобство в освоении | Понятный интерфейс | Визуализация | Совместимость с 3d редакторами | Дополнит. модули и кроссплатформенность | Цена |
---|---|---|---|---|---|---|
Unreal Engine | 3 | 4 | 9 | 8 | 1 | Бесп. |
BlitzMax | 6 | 8 | 3 | 5 | 1 | 2,639 руб. |
Quest3D | 5 | 5 | 6 | 5 | 1 | 1250 - 10000 € |
Torque Game Engine Advanced 3D | 7 | 7 | 8 | 7 | 3 | $295 |
Unity 3D | 8 | 8 | 8,5 | 7 | 7 | Бесп. |
Indie Pro | 8 | 8 | 9 | 7 | 7 | $1499 |
3DGame Studio | 9 | 9 | 3 | 5 | 1 | 3255 - 29659 руб. |
Leadwerks Engine 2.0. | 7 | 8 | 5 | 5 | 1 | $200 |
Virtools | 6 | 6 | 7 | 7 | 2 | Бесп. |
Blender | 8 | 8 | 4 | 5 | 6 | Бесп. |
Nebula Device | 3 | 4 | 8,5 | 5 | 1 | Бесп. |
The Zombie Engine | 3 | 4 | 8,5 | 5 | 1 | Бесп. |
NeoAxis Engine | 4 | 4 | 5 | 5 | 1 | $395 |
Genesis3D | 4 | 4 | 3 | 4 | 1 | Бесп. |
Кроме того, автором был проведен сравнительный анализ графических характеристик по ряду технологических составляющих (рис. 17).
На основе проведенного анализа был выбран Quest3D, что в первую очередь обусловлен его преимуществами, к которым относятся универсальность, визуальное программирование, поддержка графических библиотек таких, как OpenGL и DirectX и практически всех известных программ 3D-моделирования. Также немало важным преимуществом является то, что данный 3D-Engine не имеет ограничений по количеству полигонов 3D-модели.
Пользовательский интерфейс Quest3D предоставляет широкий набор мощных возможностей. Программа содержит ряд «Разделов», чтобы упорядочить все для как можно более удобной работы. Три наиболее важные составляющие Quest3D описаны ниже.
Раздел Channels (Каналы) – это «сердце» Quest3D. Этот раздел отображается при запуске Quest3D. В разделе Channels строится фундамент создаваемого проекта (рис. 18).
Раздел Animation (Анимация) – в нем располагаются и анимируются 3D-модели, камеры и источники освещения. Раздел содержит широкое обзорное окно, прекрасно подходящее для тестирования проектов (рис. 19).
Раздел Object (Объект) – здесь подготавливаются и настраиваются 3D объекты. Quest3D предлагает широкий диапазон опций для настройки свойств поверхности объекта, Например, настройку цвета и текстуры (рис. 20).
Меню File предоставляет опции для загрузки и сохранения проектов, импортирования 3D-объектов из других программ и публикации проектов Quest3D (рис. 21).
Рассмотрим элементы интерфейса в различных секциях. Так, например, секция Channel включает в себя окно Animation 3D View (3D Обзор Анимации). Это окно того же типа, что и в секции Animation. Окно Animation 3D View показывает обзор проекта в реальном времени. Изменения и дополнения в программе, сделанные в Channel Graph (Графе Каналов) будут незамедлительно отображены в окне Animation 3D View (рис. 22).
Quest3D имеет множество окон, обладающих закладками. Самыми главными закладками в секции Channels являются Template list (Список шаблонов), Channel list (Список каналов) и Search window (Окно поиска) (рис. 23).
Доступ к различным разделам в Quest3D может быть получен несколькими путями. Основной метод – использование меню Application menu (Приложения) или кнопки выбора секций в инструментальной панели (рис. 24).
Channel Graph это окно, в котором выполняется строительство всех структур каналов. Программы Quest3D создаются с помощью строительных блоков. Эти строительные блоки называются channels (каналами). Каждый канал имеет определенную функцию (рис. 25).
Маленькие черные квадраты выше и ниже канала называются квадратами связи. Каналы могут быть соединены друг с другом, между верхними и нижними квадратами связи (рис. 26).
На рисунке 26 верхний канал называется родительским. Нижний канал называется Потомком. Потомки обычно используются, как входящие или выходящие данные для Родителей.
Входящий квадрат связи, без присоединенного к нему Потомка, данных не получает. Обычно, значения пустых квадратов связи устанавливаются равными нулю.
Структура соединенных каналов называется Группой Каналов (Channel Group). Проект Quest3D состоит из одной или более Групп Каналов. Например, одна группа может отображать на экране комнату, в то время, как другая может отображать персонаж. Две Группы Каналов могут быть совмещены для отображения персонажа в комнате.
Имя канала может быть изменено с помощью команды Основные Настройки (General Properties). Выбор опции Channel Properties вызывает то же окно, что и двойное нажатие мыши на канале.
Ярлыки каналов работают так же, как и ярлыки к программам или папкам в Windows. В Quest3D могут быть созданы только ярлыки к каналам, не к папкам.
Ярлыки каналов могут быть созданы с помощью Контекстного Меню канала. Также могут быть созданы с помощью нажатия правой кнопки мыши на стрелке связи между двумя каналами. Появится меню с одной опцией (рис. 27).
Ярлыки являются ссылками на оригинальный канал. Их целью является придание Групп Каналов (Channel Groups) более высокой удобности.
Программа Quest3D начинается с канала Start Channel (рис. 28).
Опция – назначить канал как стартовый (Set as start channel) в контекстном меню канала может быть использована для определения начала программы в Quest3D.
Проект Quest3D запускается активно только когда открыто окно Animation 3D View (рис. 29).
Кадры (Frames)Quest3D работает в реальном времени. Это значит, что он постоянно запускает проект полностью и обновляет обзорный вид. Один полный цикл структуры каналов называется кадром (frame). Обработка всех конечных результатов называется визуализацией (rendering).
Частота кадров (framerate) определяет, сколько раз в секунду запускается программа. Частота кадров зависит от сложности проекта и аппаратных средств компьютера, используемых для визуализации сцены.
Программный поток (Program flow) Вызов канала в Quest3D означает одинарный вызов всей функциональности канала, опирающийся на любой ввод, полученный от его потомков. Точные результаты вызова канала зависят от его Типа (Type).
Канал Channel Caller вызывает своих потомков в порядке слева направо. Сначала вызывается канал Caller 1, отображая кубический объект (box) на экране. Далее вызывается канал Caller 2, визуализируя объект огня (рис 30).
Шаблон – предварительно подготовленный канал или группа каналов, разработанных для ускорения рабочего потока.
Шаблоны (templates) могут быть использованы в сцене незамедлительно. Преимущество работы с шаблонами заключается в том, что вы не обязаны понимать каждый из компонентов. Также можно создавать собственные шаблоны.
3D объекты играют важную роль в большинстве программ Quest3D. 3D-объекты могут быть импортированы из любого пакета 3D моделирования. Также существует возможность использовать один из 3D объектов, сопровождающих Quest3D.
Как и в кино, сцена Quest3D нуждается в камере и одном или большем количестве источников освещения.
Канал Render используется для отображения 3D объектов на экране.
Канал Start 3D Scene используется для инициализации 3D окружения. Помимо всего прочего, он контролирует разрешение экрана и цвет фона.
Каналы Start 3D Scene, Render, Camera, 3D Object и Light комбинированы в следующую структуру каналов (рис. 31).
Quest3D позволяет быстро и качественно разработать 3D-приложения без глубоких знаний программирования. В Quest3D имеется большое количество различных функций, которые позволяют использовать практические все необходимые технологии для реализации качественных интерактивных 3D-приложений.
Подготовка и экспорт моделей и текстур в движок – важный этап, на котором следует определить требования движка к количеству полигонов, оптимальные поддерживаемые форматы 3d-моделей и текстур.
Учитывая технологические особенности рендеринга Quest3D, необходимо разделить 3D-модель на равные по количеству полигонов части. Экспериментальным путем было выявлено, что для оптимальной работы приложения на среднем по своей аппаратной мощности компьютере, одна часть модели не должна превышать 10 тысяч полигонов (рис. 32).
После разбивки необходимо выбрать подходящий формат для экспорта. Стоит отметить, что не существует единого стандарта. Конвертирование 3D-моделей – один самых сложных этапов, идеального решения пока не существует. При экспорте моделей всегда имеют место мелкие конверсионные ошибки, а иногда и вовсе неожиданные результаты.
В Quest3D трехмерные модели можно загрузить следующими способами.
Наиболее простой вариант – экспортировать созданные модели в 3DS X или LWO-файлы и напрямую подгрузить их в Quest3D. Встроенные импортеры 3D-объектов позволяют подгружать в редактор затекстурированные модели, с закрепленной за ними skinning-анимацией.
Можно использовать для перегонки специальную программу Polytrans, интегрированную в Quest3D. Программа работает с огромным количеством форматов, но есть своя проблема: не все форматы идеально адаптируются под движок.
Также есть специальный плагин под 3dsMax для экспорта моделей в формат движка Quest3D. Но данный плагин, пока не совсем отлажен.
Самый, оптимальный по своим характеристикам, является экспортер Collada, с разрешение DAE. Он поддерживает экспорт затекстурированных моделей, а также анимированных, при этом, практически не нарушая их геометрии.
COLLADA был разработанный для обмена между 3D приложениями. Управляется некоммерческой организацией Khronos Group. Использует открытый стандарт XML для обмена форматами, которые в противном случае были бы несовместимы. COLLADA задуман как промежуточный формат для переноса файлов. Реализована поддержка таких программ, как Maya; 3ds Max; Poser; Lightwave 3D; Cinema 4D; Softimage XSI; Houdini; MeshLab; CityScape, CityEngine, SketchUp, Blender, modo и Strata 3D, Adobe Photoshop, Unreal engine и Torque 3D, Quest3D.
Для экспорта, необходим выделить желаемый объект перейти в меню Меню File > Export > Export Selected (рис. 33).
В появившемся окне выбираем каталог, в который будет сохранена модель в формате DAE. Устанавливаем нужные настройки для экспорта статичного меша и нажимаем Ok (рис. 34).
Модель экспортирована из трехмерного редактора и готова к импорту в движок, но перед импортом необходимо подготовить текстуры.
Текстура – растровое изображение, накладываемое на поверхность полигона, из которых состоят 3D-модели, для придания ей цвета, окраски или иллюзии рельефа. Понятие «текстура» является одним из основных в 3D-моделировании, поскольку позволяет воспроизвести малые объекты поверхности, создание которых полигонами оказалось бы чрезмерно ресурсоёмким, а также придать трехмерному объекту реалистичность.
Качество поверхности текстуры определяется текселями, количеством пикселей на минимальную единицу текстуры. Так как сама по себе текстура является изображением, разрешение текстуры и ее формат играют большую роль, которая впоследствии сказывается на общем впечатлении от качества графики в 3D-приложении.
С помощью текстур добиваются совершенно разных эффектов от рифлености бумаги до лунного свечения, от дуновения холодного ветра до волнения теплых пустынных песков. Также текстуры используют для нанесения на части тела при визуализации человека, например для придания некой «узорчатости» лицу. От качества текстур напрямую зависит качество визуализации 3D-сцены.
Этап подготовки текстур требует лишь программу Adobe Photoshop и плагин DDS, разработанный компанией Nvidia.
После того, как текстура открыта в программе Adobe Photoshop, ее нужно пересохранить в формат DDS. Формат DDS (DirectDraw Surface) –формат хранения данных, разработанный корпорацией Майкрософт для использования в DirectX SDK. Чаще всего используется для хранения текстур и применяется во множестве 3D приложений, а также в современных 3D играх. Позволяет хранить текстуры как в сжатом, так и не в сжатом виде.
Импорт моделей происходит следующим образом. После того как 3D-модель экспортирована из 3D Studio Max в формат Collada она импортируется в Quest3D. Для этого нажимаем Меню File > Import либо сочетание клавиш CTRL+I. В появившемся окне открываем директорию, в которую была экспортирована 3D-модель, выбираем нужный файл и нажимаем открыть. Далее окно свойств потребует ввести внутреннее имя канала, оставим такое же имя, что использовали при экспорте. После в окне настройки импорта Collada importer выбираем Import type > Flatten hierarchy и вводим значение Scale factor равное 1, нажимаем кнопку Import. 3D модель импортирована и готова к дальнейшим действиям (рис. 35).
Если все 3D-модели импортированы, то следует перейти к тектстурированию объектов, для этого переходим в раздел Object (Объект) для настройки цвета, излучения цвета, зеркальности, альфа смешивания и подключения карт теней. К каждой 3D модели применяются свои настройки.
Для моделей не имеющих бликов и других специфических свойств, применяется текстура поверхности и в закладке Properties устанавливаются следующие значения: Difuse 1,1,1; Emesive 1,1,1; Specular 0,0,0; Specular power 0; Alpha 0; Texture factor 1 (рис. 36).
После того как все значения установлены подключаем карту теней, для этого загружаем ее в Quest3D. В правой части раздела Object (Объект) нажимаем на кнопку Load, в появившемся окне открываем директорию, в которую была сохранена карта теней после запекания в 3D Studio Max, открываем ее. В закладке текстурных стадий Textures Stages нажимаем на вкладку Stage 2 и в левой части экрана, из выпадающего списка Mapping, выбераем UV set1 и нажимаем по предварительно загруженной карте теней. Последовательность действий подключения карт теней повторяется для всех моделей на которые была запечена карта теней.
Настройки модели ландшафта. Для придания большего реализма данной модели применяем к ней настройку альфа смешивания, перед этим заранее нарисуем альфа изображение в Adobe Photoshop. Перейдем в раздел Каналы (Channels), в левом нижнем углу из секции Grups выбираем импортированную модель ландшафта, дважды нажимаем левой кнопкой мыши для того, чтобы группа каналов отобразилась в рабочем окне. Копируем канал Surface со всеми его потомками, присваиваем ему имя Grass и подключаем его к каналу 3D Object Terrain. Далее переходим в закладку Каналы (Channels), из списка каналов, выбираем канал Texture, перетягиваем его на рабочее поле, дважды нажимаем на него левой кнопкой мыши. В появившемся окне нажимаем на кнопку Load и выбираем заранее заготовленную текстуру травы. Подключим его к каналу Grass. Повторим эти же действия, только за место кнопки Load нажмем на кнопку Load alpha и выберем альфа изображение. После переходим в раздел Объект (Object) выбираем объект Grass и в закладке Surface из выпадающего списка Transparency выбираем Texture Alpha Image(last stage) (рис. 37).
Для моделей растительности применяем следующие настройки в разделе Объект (Object) в закладке Surface из выпадающего списка Transparency выбираем Texture Alpha Image(last stage), нажимаем на кнопку Advanced, в появившемся окне настроек Alpha Blending ставим галочку перед надписью Reject Alpha Pixels и вводим значение Ref равное 80 (рис. 38).
Подключения сцены к системе рендеринга. После того как все 3D-объекты импортированы и оттекстурированы, переходим на этап подключения сцены к системе рендеринга.
Как говорилась ранее, сцена Quest3D нуждается в камере и одном или нескольких источниках освещения.
Камера определяет точку обзора, с которой представляется сцена. Выбор для проекта правильной камеры важен, так как это непосредственно влияет на пользовательские впечатления, получаемые от сцены.
В проекте используется 2 камеры: анимированная камера (Animation Camera) и камера хождения (Walkthrough Camera). Анимированная камера использована для того, чтобы провести пользователя по сцене. Она подобна обычной реальной кинокамере из жизни. Камера хождения обычно используется для качественной архитектурной визуализации, чтобы придать пользователю эффект присутствия. Камера хождения представляет сцену на привычном уровне глаз, и позволяет пользователю свободно перемещаться вокруг. Так как обзорный вид близок к реальной жизни, этот тип камеры предоставляет наиболее высокий уровень погружения в сцену.
Правильное освещение важно для убедительной виртуальной сцены. Освещение и тени дают пользователю визуальные впечатления об окружении. Без контраста между светом и тенью намного сложнее добиться глубины в сцене. В Quest3D доступен ряд техник освещения: обычное внешнее освещение, самосвечение, направленное освещение. Обычное внешнее освещение подразумевает источник света, излучающий свет на 3D-модели в сцене. В Quest3D, источники освещения являются каналами, обладающими рядом привязанных к ним потомков. Источники освещения в Quest3D могут быть трех типов: точечный (point), прожектор (spot) и направленный (directional), они показаны на изображении ниже. Точечный источник освещения (point) излучает свет во всех направлениях. Прожектор (spotlight) определяется внутренним и внешним углами конуса, что приводит к эффекту рассеивания. Направленный источник (directional) - это просто вращаемый вектор, по которому источник излучает свет. Все лучи направленного источника света параллельны друг другу. В данном проекте используется один источник света, точечный (point).
Также для подключения сцены к системе рендеринга используются каналы Render и Start 3D Scene. Канал Render служит для отображения 3D-моделей на экране. Как уже известно, канал Start 3D Scene служит для инициализации 3D окружения, помимо всего прочего, он контролирует разрешение экрана и цвет фона. Все перечисленное выше можно найти в разделе программы Каналы (Channels).
Камеры, источник света, 3D-модели, а также Render, Start 3D Scene добавлены в рабочее поле раздела Каналы (Channels). Поочередно подключаем их в последовательности (рис 39).
В данной точке разработка практически завершена и готова для экспортирования из редактора в доступный для целевой аудитории формат. Из предлагаемых форматов был выбран «Stand-alone programs» с расширением «exe».
Публикация полностью автоматизирована и не требует от пользователя специфических знаний ПК, что является основным достоинством выбранного формата.
Для публикации в пользовательском меню выбираем File > Publish. В появившемся окне General properties (рис. 40).
Вводим «SBMM»(название приложения) в боксе названия Title.
Выбираем в типе публикации (Publish type) Executable
Нажимаем на кнопку Browse для задания директории сохраняемого проекта, далее нажимаем Next.
В окне Select the files to be published отмечаем все боксы (рис. 41).
Далее следует нажать кнопку Finish. Появится линия показывающая прогресс создания программы, после заполнения которой приложение становится опубликованным, (компилируется exe-файл со сценой). Теперь оно готово к использованию.