ТЕХНОЛОГИИ И ИНСТРУМЕНТЫ 3D МОДЕЛИРОВАНИЯ
В БРАУЗЕРЕ Ковтунов Д.С. Email: [email protected]
Ковтунов Дмитрий Сергеевич - студент, кафедра космических информационных систем, Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Московский технологический университет, г. Москва
Аннотация: благодаря научно-техническому прогрессу за последнее десятилетие объемы передаваемой по сети интернет информации существенно возросли. Увеличилась также и скорость обработки больших объёмов информации на локальных компьютерах пользователей интернета. Эти два фактора не могли не оказать влияния на развитие браузерной графики. В статье проводится обзор существующих на данный момент различных технологий, инструментов и библиотек, предназначенных для моделирования трёхмерной графики в браузерах. Ключевые слова: 3D моделирование, OpenGL, WebGL, Three.js.
TECHNOLOGIES AND TOOLS FOR 3D MODELING IN A BROWSER Kovtunov D.S.
Kovtunov Dmitry Sergeevich - Student, SPACE INFORMATION SYSTEMS DEPARTMENT,
FEDERAL STATE BUDGET EDUCATIONAL INSTITUTION OF HIGHER PROFESSIONAL EDUCATION MOSCOW TECHNOLOGICAL UNIVERSITY, MOSCOW
Abstract: for the last ten years due to scientific progress an amount of information which is sent by internet is significantly increased. Speed of a big amount of information processing also increased. This two factors are influenced on browser graphics. Different technologies, tools and libraries that are existing in this moment and are intended for 3D modeling are reviewing in this article. This article not proposes exhaustive view or detailed manual. It gives only superficial review of considered topic. Keywords: 3D modeling, OpenGL, WebGL, Three.js.
УДК 004.94
Веб-технологии прочно вошли в нашу повседневную жизнь. Индустрия услуг и развлечений в сети Интернет стремительно развивается, ведущие разработчики программного обеспечения улучшают поддержку трехмерной графики в своих продуктах. Благодаря росту производительности персональных компьютеров и расширению возможностей браузеров стало возможным создание и отображение трехмерной графики с применением веб-технологий.
Наиболее распространенными технологиями отображения компьютерной графики на персональных компьютерах являются Direct3D и OpenGL.
Direct3D — составная часть пакета технологий Microsoft DirectX.
Альтернативная ей технология OpenGL, благодаря ее открытости, получила гораздо более широкое распространение. Реализации OpenGL доступны для различных операционных систем и аппаратных платформ. Спецификация OpenGL была разработана компанией Silicon Graphics Inc. и опубликована как открытый стандарт в 1992 году. Технология оказала огромное влияние на развитие трехмерной графики.
WebGL уходит корнями в OpenGL, однако назвать его прямым потомком нельзя. Непосредственным прототипом WebGL принято считать OpenGL ES (for Embedded Systems для встраиваемых систем), создана в 2003--2004 годах.
WebGL (Web-based Graphics Library) — программная библиотека для языка программирования JavaScript, позволяющая создавать на JavaScript интерактивную 3D-графику, функционирующую в широком спектре совместимых с ней веб-браузеров. За счёт использования низкоуровневых средств поддержки OpenGL, часть кода на WebGL может выполняться непосредственно на видеокартах.
В начале 2009 года некоммерческий промышленный консорциум Khronos Group учредил рабочую группу WebGL и запустил процесс стандартизации WebGL на основе OpenGL ES 2.0. Спецификация WebGL версии 1.0 была выпущена 3 марта 2011 года. Корпорация Apple приняла решение о поддержке WebGL в браузере Safari на конференции WWDC в 2014 году [1].
WebGL предназначена для использования в веб-страницах и не требует установки специализированных расширений или библиотек.
Создание технологии WebGL позволило отображать и манипулировать трехмерной графикой на веб-страницах с помощью JavaScript. При помощи WebGL разработчики могут создавать совершенно новые пользовательские интерфейсы, трехмерные игры и использовать трехмерную графику для визуализации различной информации. Несмотря на внушительные возможности, WebGL отличается от других технологий доступностью и простотой использования, что способствует ее быстрому распространению.
В настоящий момент WebGL поддерживается следующими браузерами:
Десктопные браузеры
• Mozilla Firefox (с 4-й версии)
• Google Chrome (с 9-й версии)
• Safari (с 6-й версии, по умолчанию поддержка WebGL отключена)
• Opera (с 12-й версии, по умолчанию поддержка WebGL отключена)
• IE (с 11 -й версии, для других версий можно воспользоваться сторонними плагинами, например, IEWebGL)
Мобильные браузеры и платформы
• Android-браузер (поддерживает WebGL только на некоторых устройствах)
• Opera Mobile (начиная с 12-й версии и только для ОС Android)
• IOS (полная поддержка с версии 8.1)
• Firefox for mobile (с 4-й версии)
• Google Chrome для Android (с 25-й версии)
Преимуществами использования WebGL являются:
• Кроссбраузерность и отсутствие привязки к определенной платформе. Windows, MacOS, Linux — все это неважно, главное, чтобы ваш браузер поддерживал WebGL.
• Использование языка JavaScript, который достаточно распространен.
• Автоматическое управление памятью. В отличие от OpenGL, в WebGL не надо выполнять специальные действия для выделения и очистки памяти.
• Поскольку WebGL для рендеринга графики использует графический процессор на видеокарте (GPU), для этой технологии характерна высокая производительность, которая сравнима с производительностью нативных приложений.
Технология WebGL использует низкоуровневое API, этот аспект облегчает внедрение технологии разработчиками браузеров в свои продукты, но создает достаточно большие трудности при создании интерфейсов. Существует несколько реализаций WebGL - ниже будут приведены основные [2].
Библиотека WebGLU.
Первой общедоступной библиотекой стала WebGLU — набор утилит низкого и высокого уровня для разработки приложений на WebGL. WebGLU сконструирован
таким образом, что разработчик может сосредоточиться на конечном результате с минимумом суеты и кода, но библиотека не ограничивает разработчиков, которые хотят больше контроля. Это достигается за счет возможности использования низкоуровневых функций для работы с WebGL API.
Среди функций стоит отметить:
• Все компиляции и компоновки обрабатываются автоматически
• Автоматическая установка любой проекции и вида модели
• Поддерживает иерархии объектов
• Статические изображения и видео текстуры
• Поддержка процедурной и покадровой анимации
• Возможность смешивать типы анимации и иерархию объектов [3]
Библиотека GLGE
Достаточно именитая библиотека для разработки приложений с использованием WebGL. Библиотека ориентирована больше на динамическое изменение сцены.
Имеющиеся функции:
• Анимирование материалов
• Скелетная анимация
• Поддержка карт смещения
• Рендеринг текста
• 2d фильтры
• Поддержка LOD — уровни детализации объекта
• Физика
• Покадровая анимация
• Поддержка карты нормалей
Библиотека three.js
three.js — это библиотека с открытым исходным кодом. Библиотека three.js упрощает использование программного интерфейса WebGL API для создания 3D-графики на странице веб-браузера.
В ней реализовано множество математических функций, с эффективными алгоритмами решения, чтобы веб-приложения работали с минимальными затратами ресурсов. Описаны часто используемые функции и методы, для построения трехмерной графики.
Библиотека three.js автоматизирует рутинные операции и предоставляет высокоуровневый программный интерфейс, позволяющий оперировать такими привычными понятиями компьютерной графики как сцена, графический объект и камера.
three.js определяет класс THREE, инкапсулирующий классы сцены, камеры, освещения, материалов, текстур и др.
Чтобы визуализировать что-либо с помощью three.js, сначала необходимо создать сцену, добавить камеру и настроить рендерер.
Обладает рядом функций:
• Добавление и удаление объектов в режиме реального времени
• Перспективная или ортографическая камеры
• Каркасная анимация, различные виды кинематики, покадровая анимация
• Несколько типов источников света — внешний, направленный, точечный
• Объекты — сети, частицы, спрайты, линии, скелетная анимация и так далее
• Множество предустановленных типов геометрии — плоскость, куб, сфера, тор, 3D текст и так далее
Наиболее популярная и активно развивающаяся библиотека на сегодняшний день. Подробная и доступная документация и огромное количество рабочих примеров.
Библиотека babylon.js
Библиотека с открытым исходным кодом для создания полноценных 3D приложений и игр, работающих в веб-браузере без использования сторонних плагинов и расширений. babylon.js по своим возможностям близок к three.js [2]. Список функций:
• Сглаживание
• Анимационный движок
• Звуковой движок
• Аппаратное масштабирование
• Пошаговая загрузка сцены
• Автоматическая оптимизация сцены
• Панель отладки
• 4 источника освещения — точечный, излучаемый повсюду, прожектор и реалистичное
• Пользовательские материалы и шейдеры
• Широкие возможности текстурирования
Повсеместное внедрение компьютерной графики требует от разработчиков освоения новых горизонтов. Однако всех объединяет желание создать качественные, легкие и производительные веб-приложения, активно использующие возможности трехмерной графики. WebGL и библиотека three.js в частности, являются мощным инструментом в руках как профессионалов, так и начинающих специалистов.
Список литературы /References
1. ЯковлевЕ.А. Биометрические технологии и системы контроля в управлении / В сб.: Экономика и управление в XXI веке: тенденции развития. Сб. материалов XXXVI Межд. науч.-практ. конф., 2017. С. 223-228.
2. Максимов Р.Л., Рафиков А.Г. Разработка автоматической СКУД повышенной безопасности на базе типового решения СКУД Biosmart с использованием автоматного подхода / Вопросы кибербезопасности, 2015. № 5 (13). С. 73-80.
3. Смолин М.Ю., Борисов А.П. К вопросу об использовании систем биометрической защиты при обучении студентов / В сб.: Современные технологии в мировом научном пространстве. Сб. статей Межд. научно-практ. конф.: в 6 ч., 2017. С. 165-167.
4. Денисьев С.А. Биометрия в УИС / В сборнике: Актуальные проблемы деятельности подразделений УИС сборник материалов Всероссийской научно -практической конференции. ФКОУ ВПО «Воронежский институт ФСИН России», 2012. С. 43-48.
5. Арсениев А.Н., Балаев А.К., Макаренко Ю.А. Методы биометрической идентификации: потенциал применения в системах контроля и управления доступом / Новая наука: Проблемы и перспективы, 2016. № 121-3. С. 148-152.