WebGL

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 24 декабря 2024 года; проверки требуют7 правок.
Перейти к навигацииПерейти к поиску
WebGL
Логотип программы WebGL
ТипAPI
АвторMozilla Foundation
РазработчикKhronos Group
Операционная системаКроссплатформенность
Дата выпуска3 марта2011
Последняя версия2.0[1] (30 августа2018)
ЛицензияVarious
Сайтkhronos.org/webgl/
Логотип Викисклада Медиафайлы на Викискладе
HTML

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

Содержание

Принципы

[править |править код]

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

Версии

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

Реализация

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

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

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

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

[править |править код]

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

История

[править |править код]

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

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

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

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

[править |править код]

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

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

Библиотеки

[править |править код]

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

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

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

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

[править |править код]

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

См. также

[править |править код]

Примечания

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

Ссылки

[править |править код]
У этой статьиесть 2 проблемы, помогите их исправить:
Стиль этой статьинеэнциклопедичен или нарушает нормы литературного русского языка.
Статью следует исправить согласностилистическим правилам Википедии.(8 марта 2013)
Необходимопроверитькачество перевода c неуказанного языка,исправить содержательные и стилистические ошибки.
Вы можете помочьулучшить эту статью (см. такжерекомендации по переводу).
Оригинал не указан. Пожалуйста, укажите его.
(8 марта 2013)
Пожалуйста, после исправления проблемы удалите соответствующий шаблон. Узнать, как это сделать, можно насправочной странице.
Перейти к шаблону «Стандарты Khronos Group»
СтандартыThe Khronos Group
Активные
Неактивные
Источник —https://ru.wikipedia.org/w/index.php?title=WebGL&oldid=149879203
Категории:
Скрытые категории: