WebGL | |
---|---|
| |
Тип | API |
Автор | Mozilla Foundation |
Разработчик | Khronos Group |
Операционная система | Cross-platform |
Первый выпуск | 3 марта 2011 |
Последняя версия | 2.0[1] (30 августа 2018) |
Лицензия | Various |
Сайт | khronos.org/webgl/ |
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].
В состав рабочей группы, разрабатывающей стандарт, входят: 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 (Almost Native Graphics Layer Engine)[37] — библиотека, выпущенная под лицензией BSD, которая позволяет переводить содержимое WebGL в OpenGL ES 2.0, вызывать API DirectX 9 и 11, которые взаимодействуют с платформами Microsoft Windows без необходимости в дополнительных драйверах OpenGL. Используется по умолчанию в браузерах Google Chrome и Firefox.
Для улучшения этой статьи желательно: |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .