BC/NW 2016 № 1 (28):7.1
ТЕХНОЛОГИИ ПРЕДСТАВЛЕНИЯ СЛОЖНЫХ ТРЕХМЕРНЫХ ПРОСТРАНСТВЕННЫХ ДАННЫХ В ИНТЕРНЕТ БРАУЗЕРАХ
Ромашов Г.А.
Современный период экономического и социального развития нашей страны ставит перед горнодобывающей отраслью задачи укрепления и расширения минерально-сырьевой базы страны, повышения эффективности и качества подготовки к освоению разведанных запасов полезных ископаемых. Этим обусловлено значение геологии в научно-техническом прогрессе горнодобывающей промышленности, в охране и рациональном использовании недр и природы в целом.
На данный момент все большая часть предприятий, занимающихся вопросами геологической разведки и изысканий, используют в своей работе специальные программные средства и информационные системы. Использование подобных систем позволяет значительно ускорить процесс обработки и анализа информации. Такие системы позволяют автоматизировать процессы обработки и интерпретации данных геологоразведки, а также использовать их для моделирования месторождений и выполнения всевозможных расчетов и оценок.
С недавних пор профессиональное программное обеспечение (ПО) начало выходить за рамки устаревших стандартов и развивается в новом направлении — предоставление программного обеспечения как сервиса посредством использования сети Internet. В результате программным обеспечением научного, бизнес или образовательного направления может воспользоваться каждый, не устанавливая программы на персональные устройства, а просто воспользовавшись интернет ресурсами. Единственным требованием для персонального устройства является установленный веб-браузер, а одним из основных преимуществ данных систем является их мобильность.
В ближайшей перспективе специализированное программное обеспечение по моделированию месторождений так же ждет миграция в сеть и изменение формата использования на SaaS (software as a service — программное обеспечение как услуга). В связи с этим перед разработчиками такого ПО встает нетривиальная задача представления больших объемов пространственных данных с помощью интернет браузера. В качестве примера можно рассмотреть модель среднего по размерам месторождения имеющего следующие размеры 3000x2000x1000 метров.
Трехмерная модель месторождений полезных ископаемых должна представлять геологическую структуру месторождения самым наглядным и подробным образом. Это касается не только объемного облика рудного объекта, но и возможности рассматривать его под разными ракурсами и произвольными разрезами. В связи с этим модель месторождения разбивается на блоки. Учитывая соотношение масштаба модели месторождения (3000х2000х1000 м) к единице разбиения — блоку (1х1х1 м), при построении модели месторождения генерируется 6 миллиардов блоков или 36 миллиардов полигонов в терминах компьютерной графики. Даже применение специальных алгоритмов по отсечению невидимых блоков и полигонов не решает проблему, принципиально-стандартные средства отображения интернет браузеров не способны обработать и отобразить такое количество данных. Очевидно, что для отображения такого количества данных необходимо применять специальные технологии.
Одним из новых и прогрессивно растущих направлений моделирования пространственных данных является 3D движки, встроенные в браузер [7].
3D движок — это центральный программный компонент компьютерных или других интерактивных приложений с графикой, обрабатываемой в реальном времени. Для отображения 3D в браузере используется несколько вариантов реализации, первым из которых является использование встроенной технологии браузера [10]. Вторым вариантом является работа через плагин (дополнительное ПО устанавливаемое в браузер).
В интернет ресурсах 3D движков, ориентированных под веб не так много. Для сравнения характеристик и выбора наиболее оптимальных движков для моделирования пространственных данных был проделан сравнительный анализ [1]. Для проведения сравнения был выбран следующий список 3D движков с разными технологиями и решениями, такие как VRML, Java, Flash, 3DMLW, O3D, WebGL, Unity.
Рассмотрим детально каждый из выбранных движков.
VRML (Virtual Reality Modeling Language) — язык моделирования виртуальной реальности, стандартный формат файлов для демонстрации трёхмерной интерактивной векторной графики, чаще всего используется в веб-технологиях. VRML предназначен для описания трехмерных изображений и оперирует объектами, описывающими геометрические фигуры и их расположение в пространстве. Vrml-файл представляет собой обычный текстовый файл, интерпретируемый браузером. VRML — трехмерный графический аналог языка Hypertext Markup Language (HTML), который применяется в гипертекстовой системе сети Интернет, что позволяет с помощью текстового редактора создавать и передавать через Web объемные изображения, подобно тому как HTML дает возможность строить, компоновать и пересылать по Интернет текст и графику. В настоящее время с помощью VRML во всем мире разрабатываются сотни объемных систем виртуальной реальности для Web, начиная с простых трехмерных графических сред, ориентированных на обычные компьютеры, и кончая продуктами, полностью погружающими пользователя в киберпространство, для которых требуются электронные очки и перчатки [5].
Преимуществами VRML является:
• 3D веб-приложения не требуют установки;
• Приложение обновляется без участия пользователя;
• 100 % открытый исходный код;
• Vrml является основоположником 3D визуализаций в браузере и считается одним из старых продуктов;
• Редактором может быть обычный блокнот, а также большое количество коммерческих редакторов.
Недостатки VRML:
• Поддерживают не все браузеры;
• При скорости модема меньше 28.8 Кбод и объёме оперативной памяти меньше 16 МВ VRML-программы, получаемые из Internet, работают медленно, неустойчиво и с ошибками.
• Качество прорисовываемых из документа VRML изображений заметно ниже.
Java. В платформу Java также включена графическая библиотека Java 3D. Библиотека Java 3D позволяет создавать 3D-апплеты и Java-приложения, использующие трехмерную графику. С Java 3D можно эффективно конструировать виртуальные миры, создавая отдельные графические элементы и затем соединяя их в древовидные структуры. Библиотека Java 3D — это результат синтеза лучших идей, взятых из таких технологий, как Direct3D, OpenGL, QuickDraw3D и XGL [2, с. 20].
Преимуществами Java являются:
• Кроссплатформенность;
• Апплет поддерживается большинством браузеров;
• В новой версий Java 3D апплет полностью отделен от процесса браузера и связан с ним через небольшой асинхронный клиент, который находится в процессе браузера. Это призвано гарантировать что зависание апплета не приведет к зависанию самого браузера;
• Возможность использовать сторонние библиотеки и подгружать их для апплета.
Недостатки Java:
• Требует установки Java-расширения (plug-in), которое не во всех браузерах доступно по умолчанию;
• Нет возможности запуститься до тех пор, пока не запустится виртуальная Java-машина, и это может занять значительное время при первом запуске;
• Создание и дизайн хорошего пользовательского интерфейса с использованием апплетов считается более сложной задачей, чем с помощью технологии, основанной на HTML;
• Апплеты могут потребовать использование определенного Java Runtime Environment (минимальная реализация виртуальной машины, необходимая для исполнения Java-приложений).
Flash. Мультимедийная платформа компании Adobe для создания веб-приложений или мультимедийных презентаций. Начиная с версий Flash Player 10.1, поддерживает 3D технологий.
Adobe Flash позволяет работать с векторной, растровой и с трёхмерной графикой используя при этом GPU (graphics processing unit — графический процессор), а также поддерживает двунаправленную потоковую трансляцию аудио и видео. Для карманных персональных компьютеров и других мобильных устройств выпущена специальная «облегчённая» версия платформы Flash Lite, функциональность которой ограничена в расчёте на возможности мобильных устройств и их операционных систем.
Преимущества:
• Приложение поддерживается большинством браузеров;
• Приложение обновляется без участия пользователя;
• Поддержка GPU и возможность выбора между GPU и CPU (central processing unit — Центральный процеессор).
Недостатки:
• Требуется установка флэш-плеера;
• Сайты реализованные на флеш плохо индексируются в поисковых системах;
• Основной недостаток flash-приложений — чрезмерная нагрузка на центральный процессор, связанная с неэффективностью виртуальной машины Flash Player;
• Важный недостаток flash-приложений заключается в недостаточном контроле ошибок, что приводит к частым отказам как самих приложений, так, в некоторых случаях, и всего браузера. Возможность flash-приложений нарушать работу всего браузера неоднократно вызывала критику со стороны разработчиков браузеров;
• Flash противопоказан крупным информационным сайтам с большой посещаемостью.
3DMLW. 3D Markup Language for Web это базирующийся на XML (eXtensible Markup Language — расширяемый язык разметки) формат файла для передачи в Интернете трёхмерного (3D) и двухмерного (2D) интерактивного содержания.
Для просмотра 3DMLW на компьютере должен быть установлен плагин 3DMLW, видеокарта должна поддерживать OpenGL (Open Graphics Library — открытая графическая библиотека, графическое API). Плагин 3DMLW разработан фирмой “3D Technologies R&D” для наиболее распространённых веб-браузеров (Internet Explorer, Mozilla Firefox, Opera и т. д.).
Платформа 3DMLW может быть использована практически везде, когда есть необходимость показывать динамический 3D-контент. Благодаря собственным языкам сценариев, он также предлагает ряд уникальных возможностей для разработки программного обеспечения и, благодаря поддержке 3D-моделью различных форматов, он может быть использован как инструмент 3D-интеграции.
Главной новинкой для пользователей является возможность доставки трехмерного контента. Без каких-либо конкретных требований к опыту каждый дизайнер может публиковать 3D-объекты в Интернете, и эти объекты могут быть просмотрены пользователями в Интернете, не требуя никакого специального программного обеспечения.
Преимущества:
• Приложение поддерживается большинством браузеров;
• 3DMLW похож на XHTML и легкий для понимания;
• Поддержка скриптов для динамического и интерактивного контента;
• Поддержка общих форматов 3D моделей (включая COLLADA, OBJ, 3DS, SketchUp);
• Платформа с открытым кодом.
Недостатки:
• Для отображения 3DMLW необходим либо плагин для браузера, либо самостоятельный 3DMLW браузер;
• Редактором 3DMLW на данный момент является Quantum Hog, который распространяется не бесплатно.
O3D. Созданный Google Inc. для разработки интерактивных 3D-приложений, запущенных в браузере. O3D может использоваться в сфере приложений, динамической рекламы, моделировании, системах мониторинга и других.
Система O3D представляет собой плагин для браузера, после установки которого ваш браузер сможет отображать и позволит вам взаимодействовать с 3D приложениями. Причем это возможно на Windows, Macintosh, и Linux (TBP) платформах [9].
WebGL. Web-based Graphics Library — программная библиотека для языка программирования JavaScript, позволяющая создавать на JavaScript интерактивную 3D-графику, функционирующую в широком спектре совместимых с ней веб-браузерах. За счёт использования низкоуровневых средств поддержки OpenGL, часть кода на WebGL может выполняться непосредственно на видеокартах. Эта совместимость с OpenGL является большим преимуществом WebGL. Проект по созданию библиотеки управляется некоммерческой организацией Khronos Group [8].
Преимущество WebGL перед его аналогами (VRML, 3DMLW, O3D) заключается в высокой скорости работы, за счет того, что всё содержимое сайта подгружается изначально, и ничего не догружается в процессе использования. Это удобно, и позволяет быстро работать с приложением. Скорость работы этого приложения зависит только от характеристик вашей видеокарты, т. к. приложение в браузере фактически работает как обычное графическое приложение и использует ресурс видеокарты, установленной на компьютере, но его отображение происходит в браузере [6].
Преимущества:
• 3D веб-приложения не требуют установки;
• Поддерживается большинством браузеров;
• WebGL использует набор биндингов OpenGL ES 2.0 для JavaScript, что делает его легким для понимания и освоения;
• Поддержка мобильных браузеров IOS Mobile Safari, Android Browser, Firefox Mobile for Android, Blackberry PlayBook 2.0 Browser;
• Редактором может быть обычный блокнот, а также большое количество коммерческих редакторов.
Недостатки:
• Поддерживает технологию WebGL только 11 версия Internet Explorer;
• WebGL очень мало документации.
Unity. Мультиплатформенный инструмент для разработки двух- и трёхмерных приложений, работающий под операционными системами Windows и OS X. Созданные с помощью Unity приложения работают под операционными системами Windows, OS X, Android, Apple iOS, Linux. Есть возможность создавать интернет-приложения с помощью специального подключаемого к браузеру модуля Unity, а также с помощью экспериментальной реализации в рамках модуля Adobe Flash Player. Позже от поддержки Flash отказались. Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL [4].
Unity является полноценным 3D движком, который набирает популярность с каждым годом. Данный 3D движок является коммерческим продуктом, и поставляется с набором решений как свой IDE редактор, Unity Asset Server (используется командами, члены которых вместе удалённо работают над проектом с разных компьютеров) и база данных PostgreSQL. Так же можно отметить возможности для скриптинга, в отличие от UDK (Unreal Developer's Kit), в котором писать можно только на встроенном самописном языке, в Unity доступны три языка: JavaScript, C#, и диалект питона под названием Boo [3].
В Unity есть так же бесплатная лицензия с ограниченным функционалом. Для работы через браузер требуется установка плагина.
Преимущества:
• Поддерживает большинство браузеров;
• Поддержка мобильные браузера IOS Mobile Safari, Android Browser, Firefox Mobile for Android, Blackberry PlayBook 2.0 Browser;
• Есть встроенный редактор IDE.
Недостатки:
• Требуется установка плагина;
• Коммерческий продукт, требуется покупки лицензий.
По результатам сравнения можно подвести итоги характеристик рассмотренных 3D движков:
Таблица 1.
Характеристики 3D движков
Возможности |
VRML |
Java |
Flash |
3DMLW |
WebGL |
Unity |
Двумерная графика |
Да |
Да |
Да |
Да |
Да |
Да |
Трёхмерная графика |
Да |
Да |
Да |
Да |
Да |
Да |
Поддержка Windows XP/Vista/7 |
Да |
Да |
Да |
Да |
Да |
Да |
Поддержка Mac OS X |
Да |
Да |
Да |
Да |
Да |
Да |
Поддержка Linux |
Да |
Да |
Да |
Да |
Да |
Да |
Поддержка OpenGL |
Да |
Да |
Да |
Да |
Да |
Да |
Поддержка DirectX |
Да |
Да |
Да |
Нет |
Да |
Да |
Поддержка анимации |
Да |
Да |
Да |
Да |
Да |
Да |
Поддержка исполнения скриптов JavaScript |
Да |
Да |
Да |
Да |
Да |
Да |
Растровые форматы рисунков (GIF, JPEG, PNG, TIF) |
Да |
Да |
Да |
Да |
Да |
Да |
Звуковые форматы (WAV, MP3). |
Да |
Да |
Да |
Да |
Да |
Да |
Установка плагина |
Не требу ется |
Требу ется |
Требу ется |
Требу ется |
Не требу ется |
Требу ется |
Открытый исходный код продукта |
Да |
Да |
Нет |
Да |
Да |
Нет |
Поддержка мобильных устройств Android, Apple iOS |
Нет |
Да |
Да |
Нет |
Да |
Да |
Скорость работы на мобильных устройстве |
Нет |
Средняя |
Средняя |
Нет |
Средняя |
Средняя |
Internet Explorer версия 11 |
Да |
Да |
Да |
Да |
Да |
Да |
Mozilla Firefox |
Да |
Да |
Да |
Да |
Да |
Да |
Opera |
Да |
Да |
Да |
Да |
Да |
Да |
Google Chrome |
Да |
Да |
Да |
Да |
Да |
Да |
Safari |
Да |
Да |
Да |
Да |
Да |
Да |
Общее удобство работы над проектом по десятибалльной шкале |
8 |
7 |
7 |
6 |
9 |
8 |
На основании сравнительного анализа 3D движков, проведенного по всем характеристикам, наиболее оптимальным 3D движком для моделирования пространственных данных в браузере можно считать WebGL. Движок является открытым в распространении, по скорости работы на мобильных устройствах не уступает другим продуктам и при этом наиболее удобен при работе.
Литература
1.Будущее 3D в Интернете: Flash или WebGL? 2011г. // [Электронный ресурс] — Режим доступа. — URL: http://w3pro.ru/news/budushchee-3d-v-internete-flash-ili-webgl (дата обращения: 20.04.2016).
2.Машнин Т.С. Современные JAVA технологий на практике. 2010. — 20 с.
3.Подлесный А.О. Научный руководитель — Шмагрис Ю.В. Сибирский Федеральный Университет. WEBGL–ТЕХНОЛОГИЯ WEB-СОВМЕСТИМОЙ 3D-ГРАФИКИ. // [Электронный ресурс] — Режим доступа. — URL: http://conf.sfu-kras.ru/sites/mn2012/thesis/s012/s012-144.pdf (дата обращения: 23.04.2016).
4.Сравнение UNITY и UDK. 2012 г. // [Электронный ресурс] — Режим доступа. — URL: http://habrahabr.ru/post/145525/ (дата обращения: 03.04.2016).
5.Технология виртуальной реальности VRML. // [Электронный ресурс] — Режим доступа. — URL: http://bourabai.kz/graphics/vrml.htm (дата обращения: 10.04.2016).
6.Ходаковский К. Работа над спецификациями WebGL 1.0 завершена. 2011 г // [Электронный ресурс] — Режим доступа. — URL: http://www.3dnews.ru/news/spetsifikatsii-webgl-10-zaversheni-gde-microso... (дата обращения: 25.04.2016).
7. Дж. Ли, Б. Уэр. Трёхмерная графика и анимация. — 2-е изд. — 2002. — 640 с.
8. Э. Энджел. Интерактивная компьютерная графика. Вводный курс на базе OpenGL. — 2-е изд. — 2001. — 592 с.
9. Королев А.Л. Компьютерное моделирование / А.Л. Королев. - М.: БИНОМ. ЛЗ, 2013. - 230 c.
10. Петелин А.Ю. 3D-моделирование в Google Sketch Up - от простого к сложному. Самоучитель / А.Ю. Петелин. - М.: ДМК Пресс, 2012. - 344 c.