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