WebGL для потребителя

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


Пора 3D-ускоряться

WebGL - это стандарт, который всё ещё находится в процессе становления, и поэтому интерес к нему проявляют, в первую очередь, веб-программисты. Соответственно, в Сети много материалов, туториалов именно для разработчиков.

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

Например, совсем недавно в Google Web Store появилась игра Angry Birds для обычного браузера, которая задействует многие функции WebGL. Наиболее впечатляющим примером использования этой технологии может быть анатомический атлас человеческого тела Google Body Browser. Как видим, Google и тут пытается быть на острие прогресса.

В связи с появлением таких программ не лишним будет знать основы теории и практики WebGL. Хотя бы чтобы не пугаться надписи "Could not initialise WebGL, sorry :-( " при посещении страниц с 3D-контентом.


Теория

WebGL - это технологический стандарт, разработанный промышленной группой Khronos, который дает возможность создавать в браузере на веб-странице при помощи JavaScript трёхмерные интерактивные сцены, аналогичные сценам в компьютерных играх. Причём для этого не требуется устанавливать в браузер какие-либо внешние расширения или плагины.

WebGL - это технологический стандарт, разработанный промышленной группой Khronos, который дает возможность создавать в браузере на веб-странице при помощи JavaScript трёхмерные интерактивные сцены, аналогичные сценам в компьютерных играх.

Стандарт WebGL, в свою очередь, базируется на OpenGL ES 2.0 и, соответственно, требует доступа браузера к системному аппаратному ускорению 3D-графики. То есть для полноценной работы этой технологии в операционной системе должны быть драйверы видеоустройства с поддержкой ускорения OpenGL.

Хотя в некоторых случаях можно задействовать библиотеку Mesa, которая способна реализовать API OpenGL без поддержки видеокарты только силами центрального процессора. Но об этом чуть ниже.

Стандарт OpenGL ES 2.0 предназначен для встраиваемых систем. Это значит, что приложение WebGL может быть запущено не только на десктопном браузере, но и на различных мобильных устройствах - смартфонах, планшетах и т.д.

На данный момент поддержка WebGL в той или иной степени имеется в новых версиях браузеров Opera, Firefox, Chrome. Браузеры Safari и Internet Explorer пока не спешат поддерживать эту технологию. Хотя в силу экспериментального статуса и проблем с безопасностью отключение в браузере WebGL тоже имеет свой резон.


Безопасность

Про безопасность скажем чуть подробнее. Так как WebGL является не только новой, но и сложной технологией уровня Adobe Flash, то реализация этого стандарта в браузере может иметь много проблем с безопасностью. Здесь сравнение с Adobe Flash очень уместно, так как плагин "флэш", как известно, до сих пор является одним из уязвимых компонентов современного браузера.

И хотя реализация WebGL является для браузера нативной, а не в виде отдельного внешнего плагина, здесь используется доступ к низкоуровневым функциям видеодрайвера, что при уязвимостях в этих драйверах может привести к различным хакерским атакам, включая удаленное выполнение вредоносного кода. Об этом, например, утверждается в специальном исследовании, которое недавно провела независимая консалтинговая компания Context Information Security.

В ответ на это исследование, комментируя проблему, представитель разработчиков Google Chrome заявил, что в его компании работают не только над безопасностью своего браузарного стека WebGL, но и активно сотрудничают с разработчиками видеокарт.

Поэтому в некоторых случаях поддержка WebGL в браузере действительно может быть отключена. Исходя, например, из требований корпоративной безопасности.


Включение

Но хакеров бояться - в Angry Birds не играть. Рассмотрим некоторые особенности включения и работы WebGL в браузерах, поддерживающих эту технологию.

Стоит обязательно сказать, что дальнейшая информация носит текущий характер. С новыми версиями браузеров, скорее всего, будут меняться и настройки WebGL, а представленная информация - устаревать.

Полноценно поддерживают WebGL последние стабильные версии Chrome 11 и Firefox 4 для всех десктопных операционных систем. Что же касается браузера Opera, то поддержка WebGL имеется только в экспериментальной версии 11.50 и только для Windows.

Если в системе установлены драйверы видеокарты с поддержкой OpenGL 2.0 и выше, то в перечисленных выше браузерах поддержка трёхмерной графики на веб-страницах включается по умолчанию и не нужно делать каких-то дополнительных телодвижений. Я проверил Chrome 11, Firefox 4 и Opera 11.50 на системе Windows XP с официальным драйвером видеокарты ATI 3650 - WebGL заработал без необходимости что-то включать в настройках браузера.

Однако если в компьютере нет аппаратной поддержки OpenGL 2.0 и выше, как, например, в ноутбуках со встроенной графикой Intel, или же драйвер видеокарт занесен разработчиками в "чёрный список", то всё равно WebGL можно во многих случаях включить. И если на странице показывается окошко о том, что ваш браузер не поддерживает WebGL, то можно включить его специальными опциями.

Например, в случае Google Chrome, в строку запуска этого браузера в свойствах ярлыка или при запуске через консоль нужно добавить параметр --ignore-gpu-blacklist. Вот, например, как будет выглядеть в этом случае строка запуска хрома в Ubuntu:

/opt/google/chrome/chrome --ignore-gpu-blacklist

Что же касается Firefox 4 на системах с отсутствием OpenGL 2.0, то этот браузер поддерживает софтовый режим Mesa, при котором функции OpenGL обрабатываются не видеокартой, а центральным процессором.

Для этого в Ubuntu нужно сделать следующее:

1. Установить библиотеку libosmesa6.

sudo apt-get install libosmesa6

2. Открыть в браузере страницу about:config и отфильтровать свойства по параметру "webgl.osmesalib". После чего вписать в этот параметр строку

/usr/lib/libOSMesa.so.6

3. Перезагрузить браузер.

Что же касается софтового режима для Windjws, то у меня не получилось через параметр "webgl.osmesalib" подключить к Firefox 4 библиотеку OSMESA32.DLL, как рекомендовали на некоторых сайтах.

Следует учитывать, что софтовый режим OpenGL работает значительно медленнее, чем видеокарта. Но это всё-таки лучше, чем ничего.


"Пузомерки"

Вопрос производительности WebGL, естественно, будет волновать многих пользователей. Поэтому здесь будут уместны различные тесты производительности трёхмерной графики в браузере.

В качестве одного такого теста предложу демо-приложение "Аквариум". Это трёхмерная сцена с плавающими рыбами имеет и счётчик кадров в секунду, позволяющий оценить скорость работы WebGL в браузере.

Для примера с видеокартой ATI 3650 в разрешении 1024х768 браузеры Chrome и Firefox продемонстрировали около 30 кадров в секунду. А в софтовом режиме на нетбуке с видеокартой Intel GMA 3150 получился всего 1 кадр в секунду.

Так что запускать трёхмерные динамические сцены WebGL на нетбуке - не лучшая идея. Но трёхмерные шахматы в браузере нетбук вполне потянет.

Запускать трёхмерные динамические сцены WebGL на нетбуке - не лучшая идея.

Михаил АСТАПЧИК

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!