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.