Панорама Boeing-747. Оренбургские авиалинии
Панорама работает по аналогии с предыдущим аналогом, используя виртуальные панорамы в качестве предоставления информации. Отличительной чертой является наличие информации при переходе между сценами в соответствии с рисунком 2. Панорама устроена следующим образом: в ней реализовано несколько сцен, которые представлены одной виртуальной панорамой, имеющие уникальное описание [6].
Рисунок 2 – Пример панорамной визуализации
-
Интерактивная 3D презентация гостиницы «Галакт»
Для представления информации презентация использует рендеринг трёхмерной графики в соответствии с рисунком 3. Интерактивная связь с пользователем осуществляется при помощи мыши. Пользователь свободно перемещается по виртуальному миру, взаимодействуя с различными объектами, которые предоставляют информацию о себе при взаимодействии [7].
Рисунок 3 – Пример системы визуализации с применением рендера
Схожесть рассмотренных систем заключается в детальном представлении сцены с различных состояний панорамной или виртуальной камеры.
Различаются системы:
наличием интерактивной связи с пользователем
видом представления информации
В отличие от 3D тура, интерактивная презентация способна выполнять следующие задачи:
подгрузка собственных ресурсов
реализация интерактивной связи
меньшая нагрузка на CPU
Так как в проекте предусматривается интерактивная связь с пользователем и внедрение анимации, чтобы обратная связь выглядела ещё более информативно, интерактивная презентация рассматривается в качестве основного аналога.
2. Анализ средств разработки
Важным этапом в разработке системы визуализации является выбор средств разработки. Это может повлиять на такие свойства системы как структурность и функциональность.
Существует множество библиотек, которые отличаются своей сложностью, направленностью, архитектурой построения. Одними из самых распространённых являются Ogre 3D, UnrealEngine и OpenSceneGraph.
OGRE (Object-Oriented Graphics Rendering Engine) – объектно-ориентированный графический движок с открытым исходным кодом, написанный на C++. Автором OGRE является Стив Стриитинг (англ. Steve Streeting). интерфейс рендеринг программный
Ogre 3D является графическим движком для рендеринга трехмерной графики. Большую популярность движок получил за счет своей гибкости, что позволяет интегрировать его со многими другими библиотеками (физика – ODE, Newton, PhysX, Bullet; звук, сеть, графический интерфейс и т. д.).
Для реализации графического интерфейса пользователя (англ. GUI – Graphical User Interface) могут применяться как стандартные функции графического интерфейса OGRE, так и импортироваться сторонние библиотеки (OpenGUI, MyGUI).
Ogre 3D обладает следующими возможностями: поддержка платформ Windows, Linux и Mac OS X, Android, iOS; скриптовая система управления материалами (мультитекстурирование, мультипроходное смешивание); экспортеры для основных коммерческих и свободных пакетов 3D моделирования; система управления ресурсами; поддержка Direct3D, OpenGL; сложная скелетная анимация (анимация тела), анимация гибких форм, морфинг (анимация лица), анимация пути (камера, перемещение) [1].
UnrealEngine – игровой движок, написанный на языке С++, разрабатываемый и поддерживаемый компанией EpicGames. Он позволяет создавать игры для большинства операционных систем и платформ, а также для различных портативных устройств. Например, для устройств Apple (iPad, iPhone), управляемых системой iOS. Впервые работа с iOS была представлена в 2009 году. В 2010 году продемонстрирована работа движка на устройстве с системой webOS.
Для упрощения портирования движок использует модульную систему зависимых компонентов, а также поддерживает различные системы рендеринга: Direct3D, OpenGL, S3, PowerVR; воспроизведения звука: EAX, OpenAL, DirectSound3D; средства голосового воспроизведения текста, распознавание речи, модули для работы с сетью и поддержки различных устройств ввода[3].
OpenSceneGraph – это открытое программное обеспечение для разработки высокопроизводительных 3D приложений, используемое разработчиками для компьютерных игр, программ виртуальной реальности, компьютерного моделирования.
Инструментарий написан на C++ с использованием библиотек OpenGL. OpenSceneGraph поддерживает большинство популярных операционных систем: Windows, Mac OS X, Linux, IRIX, Solaris и FreeBSD.
В особенности библиотеки входит: полнофункциональная поддержка промышленной графической сцены; поддержка большого количества 2D изображений и 3D форматов, благодаря 34 импортеров из таких индустриальных форматов как OpenFlight, TerraPage, OBJ, 3DS, JPEG, PNG и GeoTIFF; система частиц; поддержка кадрового буфера, пиксельного буфера и буфера рендеринга в текстуры; поддержка библиотек, позволяющих внешне воздействовать на приложение, выполнять запросы на получение и передачу данных и оперировать всеми классами в графической сцене[2].
При выборе движка для реализации проекта нужно провести анализ их качеств и выбрать оптимальный вариант. Можно выделить следующие критерии выбора:
Открытый исходный код – возможность использовать готовый исходный код движка для просмотра, редактирования, изучения.
Поддержка операционных систем – возможность запуска готового приложения под определённой платформой.
Поддержка различных 3D API – возможность интегрировать интерфейсы программирования приложений.
Распространённость – широкая область применения в разработке 3D приложений.
Коммерция – возможность коммерческой реализации готового продукта.
Community – доступность документации для изучения.
Соответствие рассматриваемых движков выбранным критериями представлено в таблице 1.
Таблица 1 – Критерии выбора 3D библиотеки для разработки
Критерии
|
Ogre 3D
|
UnrealEngine
|
OpenSceneGraph
|
Открытый исходный код
|
+
|
-
|
+
|
Поддержка ОС Windows, Mac OS, Linux, iOS, Android
|
+
|
+
|
+
|
Поддержка различных 3D API (DirectX, OpenGL)
|
+
|
+
|
-
|
Распространённость
|
+
|
+
|
-
|
Коммерция
|
+
|
-
|
+
|
Community
|
+
|
+
|
+/-
|
На основе результатов анализа качеств 3D движков для программной реализации проекта в образовательных целях можно сделать вывод, что оптимальной средой разработки является Ogre 3D.
Ogre 3D представляет собой объектно-ориентированный фреймворк, который включает все части процесса рендеринга в объектной модели. С объектно-ориентированным подходом к рендерингу геометрии, необходимость во взаимодействии с ней напрямую совершенно отпадает.
Используется версия библиотеки Ogre SDK 1.81 – наиболее стабильная версия движка.
Исходя из того, что библиотека Ogre3D написана на языке С++, языком разработки приложения является С++. Наиболее удобной средой разработки под С++ является Visual Studio. Так как выбранная версия библиотеки успешно компилируется на компиляторе версии Visual Studio 2010, используется компилятор версии 100 под обёрткой Visual Studio 2012.
Далее необходимо выбрать стороннюю графическую библиотеку для удобства разработки graphical user interface (GUI). Наиболее распространённой и практичной библиотекой, которая работает с Ogre3D, является CEGUI (Crazy Eddie’s GUI). Используется версия CEGUI 0.79, так как она успешно интегрируется с выбранной версией движка.
Для разработки 3D моделей и их анимаций используется Blender 3D, так как Ogre имеет ресурс для экспорта (blender2ogre) 3D моделей с дальнейшей возможностью использования в движке. Исходя из совместимости экспортёра с версией Blender 0.79, используется данная версия.
В итоге, для разработки используются следующие средства:
Ogre SDK 1.81
Visual Studio 2012 (С++)
CEGUI 0.79
Blender 3D version 2.66
Blender2ogre 0.6 (export)
|