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.