Что такое WebGL?

Для того, чтобы внедрить 3D-графику в браузере используют API (прикладной программный Интерфейс ) веб-графики WebGL.

Данный API использовать рендеринг интерактивной 2d и 3D графики в любом совместимом веб-браузере без использования дополнительных плагинов.  

  1. Что такое WebGL?

  2. Примеры использования WebGL

  3. Некоторые задачи, где может использоваться WebGL

  4. Преимущества WebGL

  5. Создание контента и его воспроизведение с помощью WebGl:

  6. Как включить WebGL

  7. Как подключить WebGL в других браузерах: Google Chrome, FireFox, Opera

  8. Подборки книг по WebGL

Что такое WebGL?

WebGL (web-графическая библиотека) - это библиотека программного обеспечения, связанная с графикой, которая предназначена для интеграции расширенного языка программирования JavaScript с OpenGL ES (OpenGL для встроенных систем) для создания ускоренной 3D-графики.

WebGL предоставляет 3D-графические API-интерфейсы для HTML5 без каких-либо плагинов для браузера. WebGL-это мощный API, который включен в состав Firefox, Chrome и Safari. Этот API обеспечивает привязку JavaScript к функциям Open GL ES, что позволяет обеспечить аппаратное ускорение 3D-контента на веб-странице. Использование этого мощного API требует значительного понимания 3D-программирования и 3D-математики. Веб-разработчики могут обнаружить проблемы из-за его низкого уровня. Один из способов упростить использование веб-разработчиками WebGL заключается в предоставлении API среднего уровня.

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

WebGL можно соединять с HTML элементами и комбинировать с другими частями веб-страницы или фона страницы. 

Примеры использования WebGL

3д модель обуви

3d модель обуви

игра

Игра бластер от Mozilla VR

 Konterball  WebGl

настрольный теннис

Галерея VR у Вас в браузер

3D галлерея

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

Некоторые задачи, где может использоваться WebGL:

  • браузерные игры - весь игровой процесс происходит непосредственно в окне браузера;
  • медицина - различные виды хирургии, стоматологии и других отраслей - врач дистанционно может ознакомиться с моделью проблемной области пациента, проводить виртуальные операции и др;
  • презентации на сайте - позволит пользователю подробно показать план объектов строительства, с возможностью осуществления виртуального тура;
  • on-line проектирование - 3D-проектирование, с возможностью одновременной работы нескольких пользователей.

Преимущества WebGL:

  • работает в браузере без установки стороннего программного обеспечения (плагинов)
  • кроссплатформенность (работа в различных операционных системах, в том числе мобильных);
  • открытость стандарта;
  • основан на технологии OpenGL;
  • интегрируется с другими браузерной технологиями;
  • вы можете заниматься разработкой приложений трехмерной графики, используя только текстовый редактор и браузер;
  • вы можете использовать всю широту возможностей браузеров.
  • привязка к популярному языку программирования Javascript
  • высокая производительность из-за использования ресурсов видео карты
  • автоматическое управление памятью

Кроме того, существует множество библиотек и игровых движков, использующих WebGL. Они позволяют не создавать весь 3D контент с нуля и упрощают разработку приложения.

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

Создание контента и его воспроизведение с помощью WebGl:

Использование WebGL API может очень утомлять если не использовать некоторые полезные библиотеки например созданные для легкой работы с шейдерами, или для загрузки графических сцен и 3D объектов в популярных на сегодняшний день форматах. JavaScript библиотеки встроенные (или портированные в WebGL) обеспечивают дополнительными функциональными возможностями. Неполный перечень библиотек, которые предоставляют много высокотехнических возможностей: three.js, O3D, OSG.JS, CopperLicht и GLGE.

Также развиваются игровые движки на WebGL, включая Unreal Engine 4 и 5. Stage3D /Flash-based Away3D— библиотека высокого уровня, также имеет порт на WebGL реализован на TypeScript. Существуют и более простые библиотеки, предоставляющие только векторные и матричные математические возможности для шейдеров — sylvester.js. Иногда она используется в сочетании с расширением WebGL — glUtils.js.

Есть также некоторые 2D библиотеки, построенные на основе WebGL, такие как Cocos2d-х или Pixi.js, которые были реализованы для повышения производительности (так же, как Starling Framework отношении Stage3D в мире Flash). Когда WebGL не доступен, решение задач 2D библиотек переводится на HTML5 сanvas.

Удаление ошибок рендеринга через предоставление почти полного доступа к GPU ограничивает производительность реализаций JavaScript. Некоторые из них были переадресованы на asm.js. (Точно так же, как внедрение Stage3D открыло проблемы производительности в пределах ActionScript, которые были рассмотрены в рамках проектов, таких как CrossBridge).

Создание контента для WebGL сцен часто означает, использование стандартных 3D инструментов для создания и экспорта сцен, воспроизведение их в соответствующих форматах для внешних программ. Например, в авторском программном обеспечении для 3D, таком как Blender или Autodesk Maya. Но существует также некоторое специфическое WebGL обеспечения, например, CopperCube и онлайн редактор Clara.io на основе WebGL. Онлайн платформы, такие как Sketchfab и Clara.io позволяют пользователям напрямую загружать свои 3D модели и изображать их с помощью встроенного WebGL браузера.

Кроме того, Mozilla Firefox реализовала инструменты со встроенным WebGL, начиная с версии 27, которые позволяют редактирование vertex и фрагменты шейдеров.Появился также ряд других инструментов для отладки и профилирования проектов.

X3D также выполнили проект под названием X3DOM для создания X3D и VRML контента, что работает на WebGL. 3D модель размещают между XML тегами <X3D > в HTML5, а интерактивный скрипт использует JavaScript и DOM для отображения. BS Content Studio вместе с InstantReality X3D экспортером может экспортировать X3D в HTML и обработать его на WebGL.

Как включить WebGL

как включить webgl

Рассмотрим на примере Яндекс - браузера

1. Откройте яндекс - браузер

2. Найдите адресную строку и наберите там следующую команду  browser://flags  и нажмите на клавиатуре "Enter"

3. В открывшемся окне обратите внимание на строку поиска. Пишем туда: WebGL

4.  Далее, напротив найденных результатов нужно поставить "Enabled" (по умолчанию было Disabled).

5. Перезапустите браузер. 

Теперь библиотеки WebGL подключены.

Если вам нужно подключить WebGL в других браузерах, то действия практически похожи:

  1. Для Google Chrome делаете все тоже самое, что и для Яндекс Браузера

  2. Для Оperа напишите в адресной строке:  "OPERA:CONFIG#ENABLE%20WEBGL" и этого будет достаточно

  3. Для FireFox в адресной строке пишите:  about:config, затем ищите webgl.force-enabled и ставите true

Подборки книг по WebGL

WebGL: программирование трехмерной графики (на русском языке)

]]>книга по webgl на русском]]>

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

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

Издание предназначено для программистов, желающих научиться использовать в своих веб-проектах 3D-графику.

Professional WebGL Programming. Developing 3D Graphics for the Web (на английском)

]]>webgl книга на аглийском]]>

Вторник, 21 декабря, 2021

Материал подготовил Леонид Кузнецов