WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
WebGL
Тип API
Автор Mozilla Foundation
Разработчик Khronos Group
Операционная система Cross-platform
Первый выпуск 3 марта 2011
Последняя версия 2.0[1] (30 августа 2018)
Лицензия Various
Сайт khronos.org/webgl/
 WebGL на Викискладе
⚙️  HTML

WebGL (Web-based Graphics Library) — кроссплатформенный API для 3D-графики в браузере, разрабатываемый некоммерческой организацией Khronos Group. WebGL использует язык программирования шейдеров GLSL. WebGL исполняется как элемент HTML5 и поэтому является полноценной частью объектной модели документа (DOM API) браузера. Может использоваться с любыми языками программирования, которые умеют работать с DOM API, например, JavaScript, Rust, Java, Kotlin и другими. Все ведущие разработчики браузеров Google (Chrome), Opera (Opera), Mozilla (Firefox), и Apple (Safari), являются членами Khronos и реализуют WebGL в своих браузерах. За счёт использования низкоуровневых средств поддержки OpenGL часть кода на WebGL может выполняться непосредственно на видеокартах. WebGL — это контекст элемента canvas HTML, который обеспечивает API 3D графики без использования плагинов[2]. Первая спецификация была выпущена 3 марта 2011 года. Современная версия 2.0 (несовместима с версией 1.0) доступна с 27 февраля 2017 года .

Принципы

API построена на основе OpenGL ES 2.0 и даёт возможность реализации 3D-графики[3] в браузере, использует HTML5-элемент canvas, также оперирует с DOM. Автоматическое управление памятью предоставляется языком JavaScript[2].

Версии

  • WebGL 1.0 — Построена на основе OpenGL ES 2.0, для шейдеров поддерживается язык GLSL ES версии 1.00[4].
  • WebGL 2.0 — Построена на основе OpenGL ES 3.0, для шейдеров поддерживается язык GLSL ES версии 1.00 и 3.00[5].

Реализация

  • Mozilla Firefox — WebGL был включён на всех платформах, у которых есть нужная графическая карта с актуальными драйверами, начиная с версии 4.0[6].
  • Google Chrome — WebGL включён по умолчанию во всех версиях, начиная с 9[7].
  • Safari — экспериментально поддерживает WebGL, начиная с версии 5.1, полная поддержка реализована и включена по умолчанию в версии 8.0.
  • Opera — WebGL реализован в версии Opera 12.0, но отключён по умолчанию.
  • Internet Explorer — начиная с Internet Explorer 11 WebGL официально поддерживается[8]. До выхода 11 версии независимыми разработчиками были выпущены плагины Chrome Frame и IEWebGL, предусматривающие опции, необходимые для поддержки WebGL в Internet Explorer.

Мобильные браузеры

  • Maemo 5 — WebGL доступен во встроенном браузере microB начиная с версии прошивки PR1.2 (май 2011)[9].
  • BlackBerry PlayBook — WebGL доступен посредством WebWorks и браузера в PlayBook OS 2.0[10].
  • Google Chrome — WebGL доступен для Android-устройств в бета-версиях начиная с января 2013[11].
  • Firefox for mobile — WebGL доступен для Android устройств в бета-версиях с начала 2011[12].
  • Sony Ericsson Xperia — многие устройства на базе Android имеют поддержку WebGL после обновления прошивки[13].
  • Opera Mobile 12 final поддерживает WebGL (только на Android)[14].
  • Safari для iOS — поддержка реализована в версии 8.0[15].

Рабочая группа

В состав рабочей группы, разрабатывающей стандарт, входят: Khronos Group, разработчики браузеров Apple Safari, Google Chrome, Mozilla Firefox и Opera, а также специалисты AMD и Nvidia[16].

История

WebGL возник из экспериментов над Canvas 3D Владимира Вукичевича (Vladimir Vukićević) из Mozilla, разработавшего прототип Canvas 3D в 2006 году. В конце 2007 года и Mozilla[17], и Opera[18] создали свои собственные отдельные реализации.

В начале 2009 года Mozilla и Khronos организовали рабочую группу WebGL[19], 10 декабря 2009 года консорциум опубликовал первую черновую спецификацию WebGL[16][20]. Председатель группы Арун Ранганатан заявил, что завершение работы над спецификацией ожидается в первом квартале 2010 года[16][20]. Окончательная ревизия первой редакции спецификаций была представлена 3 марта 2011 года в Сан-Франциско[21][22].

Разработка следующей версии спецификации началась в 2013 году. Стандарт WebGL 2.0, базирующийся на OpenGL ES 3.0, был ратифицирован консорциумом Khronos в январе 2017 г.[23]. Новая версия стандарта была реализована в браузерах Firefox 51, Chrome 56 и Opera 43[24].

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

В июне 2011 года корпорация Microsoft выразила свою обеспокоенность с точки зрения безопасности технологии WebGL, сославшись на чрезмерные по её мнению права доступа к оборудованию и ненадёжность механизмов защиты от отказа от обслуживания (DoS).[25] Вице-президент Mozilla Марк Шавер отверг критику Microsoft, назвав представленные аргументы преувеличенными. Он также отметил наличие у Microsoft собственной 3D веб-технологии Silverlight 5, основанной на тех же принципах, что и WebGL, которую, тем не менее, Microsoft считает достаточно надёжной.[26] Позднее Microsoft изменила своё отношение к технологии WebGL, реализовав её поддержку в своём браузере Internet Explorer 11.[27]

Корпорация Apple, несмотря на затягивания решения о поддержке WebGL в браузере Safari по причинам безопасности, объявила о принятии такого решения на конференции WWDC в 2014 г.[28]

Библиотеки

Для упрощения разработки WebGL-приложений существуют различные фреймворки и библиотеки. Первой общедоступной стала библиотека WebGLU[29][30]. Среди других библиотек для WebGL — GLGE, C3DL, Copperlicht[31], SpiderGL, gwt-g3d[32] (обёртка для GWT), SceneJS, X3DOM, Processing.js, Babylon.js, Three.js, Turbulenz, OSGJS[33], XB PointStream и CubicVR.js[34].

Blend4Web позволяет визуально редактировать контент для WebGL в открытом пакете 3D моделирования и анимации Blender и экспортировать его для работы в браузерах за одну операцию[35].

Verge3D - WebGL рендерер, экспортирующий сцены напрямую из стандартных редакторов (поддерживаются Autodesk 3ds Max и Blender) с возможностью добавления интерактивных сценариев без программирования[36].

Слой совместимости ANGLE

ANGLE (Almost Native Graphics Layer Engine)[37] — библиотека, выпущенная под лицензией BSD, которая позволяет переводить содержимое WebGL в OpenGL ES 2.0, вызывать API DirectX 9 и 11, которые взаимодействуют с платформами Microsoft Windows без необходимости в дополнительных драйверах OpenGL. Используется по умолчанию в браузерах Google Chrome и Firefox.

См. также

Примечания

  1. WebGL 2.0 Specification
  2. 1 2 WebGL - OpenGL ES 2.0 for the Web. Khronos.org. Проверено 14 мая 2011. Архивировано 12 апреля 2012 года.
  3. WebGL Specification. Khronos.org. Проверено 14 мая 2011. Архивировано 12 апреля 2012 года.
  4. WebGL Specification
  5. WebGL 2 Specification
  6. Mozilla Firefox 4 Release Notes
  7. Google releases Chrome 9; comes with Google Instant, WebGL — FierceCIO:TechWatch
  8. WebGL (Windows)
  9. suihkulokki. WebGL on N900. Suihkulokki.blogspot.com (7 июня 2010). Проверено 14 мая 2011. Архивировано 12 апреля 2012 года.
  10. Halevy, Ronen PlayBook OS 2.0 Developer Beta Includes WebGL, Flash 11, & AIR 3.0. BerryReview. Проверено 15 ноября 2011. Архивировано 12 марта 2013 года.
  11. Brandon Jones. Get WebGL working on the Android Chrome Beta. Tojicode (10 января 2013). Проверено 12 февраля 2013. Архивировано 12 марта 2013 года.
  12. iclkevin. WebGL on Mobile Devices. iChemLabs (12 ноября 2011). Проверено 25 ноября 2011. Архивировано 12 марта 2013 года.
  13. Xperia™ phones first to support WebGL™ – Developer World. blogs.sonyericsson.com. The Sony Ericsson Developer Program (November 29, 2011). Проверено 5 декабря 2011. Архивировано 12 марта 2013 года.
  14. Opera Mobile 12. Opera Software. Проверено 27 февраля 2012. Архивировано 12 марта 2013 года.
  15. WebGL on iOS 8 Safari and webview.
  16. 1 2 3 Khronos опубликовала черновой вариант WebGL // Lenta.ru, 11.12.2009
  17. Canvas 3D: GL power, web-style. Blog.vlad1.com. Проверено 14 мая 2011. Архивировано 12 апреля 2012 года.
  18. Taking the canvas to another dimension. My.opera.com (26 ноября 2007). Проверено 14 мая 2011. Архивировано 12 апреля 2012 года.
  19. Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet. Khronos.org (4 августа 2009). Проверено 14 мая 2011. Архивировано 12 апреля 2012 года.
  20. 1 2 WebGL 3D web standard reaches draft stages // Techradar
  21. Kurt Bakke. WebCL To Enable GPU-Accelerated Web Apps (англ.). ConceivablyTech (3 марта 2011). Проверено 4 марта 2011. Архивировано 12 апреля 2012 года.
  22. Accent. Khronos публикует спецификации WebGL 1.0 — ускорение 3D-графики для web-страниц без подключаемых модулей. iXBT.com (3 марта 2011). Проверено 4 марта 2011. Архивировано 12 апреля 2012 года.
  23. WebGL 2 Specification. khronos.org (5 июля 2017). Проверено 16 августа 2017.
  24. WebGL - Web APIs. MDN.
  25. WebGL Considered Harmful. Microsoft (16 июня 2011). Проверено 16 июня 2011. Архивировано 12 апреля 2012 года.
  26. Mozilla rejects Microsoft criticism of WebGL. The Inquirer (20 июня 2011). Проверено 29 июня 2011. Архивировано 12 апреля 2012 года.
  27. Microsoft (Finally) Confirms WebGL Support For Internet Explorer 11. TechCrunch (26 июня 2013). Проверено 7 июля 2015.
  28. Safari On iOS8 Supports WebGL - The New Era Can Now Commence. I Programmer (4 июня 2014). Проверено 7 июля 2015.
  29. OneGeek/WebGLU · GitHub. Проверено 15 марта 2013. Архивировано 16 марта 2013 года.
  30. Benjamin DeLillo. First WebGLU release. Bjartr.blogspot.com (2 октября 2009). Проверено 14 мая 2011. Архивировано 12 апреля 2012 года.
  31. CopperLicht - JavaScript 3D Engine using WebGL. Проверено 14 марта 2013. Архивировано 16 марта 2013 года.
  32. gwt-g3d - 3D library for GWT - Google Project Hosting. Проверено 14 марта 2013. Архивировано 16 марта 2013 года.
  33. OSG.JS by cedricpinson. Проверено 14 марта 2013. Архивировано 16 марта 2013 года.
  34. cjcliffe/CubicVR.js · GitHub. Проверено 14 марта 2013. Архивировано 16 марта 2013 года.
  35. Официальный сайт Blend4Web - О проекте. Blend4Web.com. Проверено 3 июля 2015.
  36. Verge3D. Soft8Soft. Проверено 14 июня 2018.
  37. angleproject - ANGLE: Almost Native Graphics Layer Engine - Google Project Hosting. Проверено 14 марта 2013. Архивировано 16 марта 2013 года.

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии