Архивы: по дате | по разделам | по авторам

Трёхмерный веб - от VRML до WebGL

АрхивСтатьи
автор : Игорь Осколков   28.08.2009

В начале августа консорциум Khronos Group, который занимается разработкой целого ряда открытых стандартов (включая OpenGL), в рамках конференции SIGGRAPH’09 сообщил о скором выходе первой версии спецификаций новой технологии WebGL.

Идеи привнести в веб трёхмерность зародились, наверное, лет 15 назад. К тому моменту уже появилась привычная нам структура всемирной паутины, а игры неуклонно стремились стать истинно “объёмными”. В конце 1994 года появился так называемый язык моделирования виртуальной реальности - Virtual Reality Modeling Language (VRML). Изысканностью графики и богатством возможностей он не отличался, но, тем не менее, сумел снискать определённую популярность в научной и игровой средах. Увы, долго этот формат не продержался и к началу 2000-х практически полностью исчез. На данный момент он всё ещё применяется, но в узкоспециализированных областях. А ведь когда-то сам Тим Бернерс-Ли предрекал ему великое будущее. История, как вы только что узнали, распорядилась иначе. Причин гибели было, на мой взгляд, две: скудность графики вкупе с минимальной интерактивностью и необходимость установки дополнительного плагина, который существовал далеко не для всех браузеров и платформ. В поздних версиях отрисовка изображения могла аппаратно ускоряться за счёт DirectX или OpenGL. Сейчас VRML практически полностью вытеснен своим потомком X3D, который несколько лучше предка, но всё равно малопопулярен. Некоторое время разрабатывались и другие схожие технологии, но они очень быстро умерли.

Пример VRML

После этого про "трехмёрный веб" не вспоминали довольно долго, но пару лет назад эта идея опять стала возникать в умах, лишний раз подтверждая, что всё новое - хорошо забытое старое. Так, в недрах компании 3D Technologies R&D родился проект с громким названием 3D Markup Language for Web. 3DMLW создавался с учётом современных реалий - базируется на XML, может работать с несколькими распространёнными 3D-форматами, использует OpenGL для отрисовки графики (скоро будет поддержка DirectX) и предоставляет плагин ко всем современным браузерам. Правда, проект частично всё ещё проходит бета-тестирование. Изысканными трехмёрными ландшафтами 3DMLW порадовать не может, но у создателей большие планы по продвижению своего продукта в массы. Благо, лицензия для 3DMLW была выбрана открытая - GPL. Если появится мощное комьюнити разработчиков, то проект имеет все шансы на успех... Если только ему не помешает ещё одна разработка - на этот раз от всемогущего Google. O3D (Open-3D) был представлен публике всего несколько месяцев назад и представляет собой набор API для JavaScript, который позволяет посредством плагина напрямую работать c моделями, текстурами и т.д. В техническом плане O3D гораздо более продвинут, чем конкуренты: он имеет модульную структуру, что позволяет подключать, например, физический движок; плагин достаточно стабильно работает на всех популярных платформах и браузерах, хотя и носит статус экспериментального; основной формат данных (COLLADA) является открытым и поддерживается многими 3D-редакторами; он может достаточно тесно интегрироваться с HTML etc. Не стоит забывать и про хорошую документацию, просто-таки армию лояльных разработчиков и свободную BSD-лицензию. Демки, надо признать, выглядят довольно красиво. Но отсюда вытекает одно из главных ограничений - необходимо наличие достаточно современной видеокарты.

Демо O3D

Ну вот, с основными проектами по 3D-облагораживанию Интернета познакомились. У них между собой много общего, на самом деле. В первую очередь, недостатки! Во-первых, все вышеназванные проекты требуют установки специальных плагинов, которые не охватывают полностью всё разнообразие современного компьютерного мира. Во-вторых, ни один из них не является общепризнанным и популярным стандартом. В-третьих, нигде нет упоминания о возможности работы на мобильных устройствах. А ведь современные смартфоны, коммуникаторы, нетбуки etc. составляют немалый процент техники, с помощью которой выходят в Интернет. Есть ли универсальное, кроссплатформенное решение для мобильных трехмёрных веб-приложений? Увы, пока нет. Все лавры могли бы достаться Flash, но Adobe с NVIDIA и Broadcom пока не представили на этой ниве ничего действительно полезного.

В Khronos Group решили разом избавиться от всех недостатков текущих разработок и объявили о создании нового открытого стандарта WebGL. Основной задачей стандарта будет предоставление низкоуровнего доступа к ресурсам видеокарты через JavaScript API. В качестве краеугольного камня будет использоваться OpenGL ES 2.0, который подходит для работы как на мобильных терминалах, так и на многих десктопах. Для интеграции в веб-страницу будет использоваться тег < canvas >, который определён в спецификациях HTML5. В рабочую группу по разработке WebGL уже входят такие крупные компании, как AMD, NVIDIA, Ericsson. Они займутся разработкой "железной" составляющей и драйверов. Среди производителей браузеров участвуют Mozilla, Opera и Google. Последний не будет отказываться от планов по развитию O3D, так как это всё-таки несколько разные технологии. А вот Microsoft со своими IE и WM пока отмалчивается.

"Веб уже видел широкое распространение великолепных двумерных графических приложений, и мы думаем, что 3D - это следующий шаг для Firefox. Мы с нетерпением ждём появления нового класса веб-приложений с 3D, а также творческого сотрудничества OpenGL- и веб-разработчиков", - говорит Аран Ранганатан (Arun Ranganathan) из Mozilla. Мэтт Папакипос (Matt Papakipos) из Google разделяет его надежды: "Мы считаем, что WebGL является важным шагом к появлению высокопроизводительных 3D-возможностей в браузере".

Что WebGL даст пользователем? В первую очередь, важно само наличие единого стандарта для разработки новых приложений, которые в одинаковой степени хорошо подойдут для мобильных и обычных компьютеров вне зависимости от платформы. Такая универсальность ускоряет время разработки и позволяет выдавать потребителю более качественный продукт за короткие сроки. А пользователю, в свою очередь, не придётся думать о проблемах совместимости. Достаточно будет просто вбить адрес странички в браузере... И что мы там увидим? Принципиальных отличий от тех сайтов, что существуют сейчас, скорее всего, не будет. До полностью трёхмерной навигации, как мне кажется, ещё далеко. Не потому, что это технически трудно сделать, а потому, что непривычно для большинства людей. (Хотя для какого-нибудь промо-сайта это может оказаться интересным решением.) Зато есть возможность значительно расширить интерактивность странички без уменьшения производительности. Как? Например, внедрить 3D-фотогалерею на свою домашнюю страничку. А ещё лучше сделать для неё географические привязки к месту съёмки - некое подобие расширенной версии приложения Google Earth, которое, кстати говоря, тоже можно полностью перенести в веб. Но это так, просто размышления.

Вообще, самые очевидные области применения WebGL - развлекательные и образовательные сервисы. В первом случае следует, наверное, ожидать появления трехмёрных онлайн-игр. Сейчас есть только один похожий проект, который способен выдавать нормальную трёхмерную картинку без нагрузки на CPU и запускаться в популярных браузерах - Quake Live. Но он базируется на совершенно иной платформе. Для образования были бы интересны различные интерактивные модели, например, физических процессов, химических опытов, звёздных систем и т.п.

В мобильных устройствах WebGL сможет гармонично дополнить набирающую популярность концепцию Augmented Reality: онлайн-приложения с уклоном в геосоциальные сервисы, опять-таки, игры и развлечения, интерактивные информационные системы etc.

Быть может, второй приход 3D в веб окажется более удачным? Время покажет - спецификации WebGL версии 1.0 появятся в первой половине 2010 года.

© ООО "Компьютерра-Онлайн", 1997-2019
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.