WebGL
![]() |
|
| Тип | |
|---|---|
| Автор | |
| Разработчик | |
| Операционная система | |
| Последняя версия | |
| Тестовая версия |
2.0[2] (26 сентября 2013) |
| Лицензия |
Various |
| Сайт | |
WebGL (Web-based Graphics Library) — программная библиотека для языка программирования JavaScript, позволяющая создавать на JavaScript интерактивную 3D-графику, функционирующую в широком спектре совместимых с ней веб-браузеров. За счёт использования низкоуровневых средств поддержки OpenGL, часть кода на WebGL может выполняться непосредственно на видеокартах. WebGL — это контекст элемента canvas HTML, который обеспечивает API 3D графику без использования плагинов[3]. Спецификация версии 1.0 была выпущена 3 марта 2011 года. Проект по созданию библиотеки управляется некоммерческой организацией Khronos Group.
Содержание
Принципы[править | править вики-текст]
Библиотека построена на основе OpenGL ES 2.0 и обеспечивает API для 3D-графики[4], использует HTML5-элемент canvas, также оперирует с DOM. Автоматическое управление памятью предоставляется языком JavaScript[3].
Реализация[править | править вики-текст]
- Mozilla Firefox — WebGL был включён во все платформы, у которых есть нужная графическая карта с актуальными драйверами, начиная с версии 4.0[5].
- Google Chrome — WebGL включён по умолчанию во все версии начиная с 9[6].
- Safari — экспериментально поддерживает WebGL начиная с версии 5.1, полная поддержка реализована и включена по умолчанию в версии 8.0.
- Opera — WebGL реализован в версии Opera 12.00, но отключён по умолчанию.
- Internet Explorer — начиная с Internet Explorer 11 WebGL официально поддерживается[7]. До выхода 11 версии независимыми разработчиками были выпущены плагины Chrome Frame и IEWebGL, предусматривающие опции, необходимые для поддержки WebGL в Internet Explorer.
Мобильные браузеры[править | править вики-текст]
- Maemo 5 — WebGL доступен во встроенном браузере microB начиная с версии прошивки PR1.2 (май 2011)[8].
- BlackBerry PlayBook — WebGL доступен посредством WebWorks и браузера в PlayBook OS 2.0[9].
- Google Chrome — WebGL доступен для Android-устройств в бета-версиях начиная с января 2013[10].
- Firefox for mobile — WebGL доступен для Android устройств в бета-версиях с начала 2011[11].
- Sony Ericsson Xperia — многие устройства на базе Android имеют поддержку WebGL после обновления прошивки[12].
- Opera Mobile 12 final поддерживает WebGL (только на Android)[13].
- Safari для iOS — поддержка реализована в версии 8.0[14].
Рабочая группа[править | править вики-текст]
В состав рабочей группы, разрабатывающей стандарт, входят: Khronos Group, разработчики браузеров Apple Safari, Google Chrome, Mozilla Firefox и Opera, а также специалисты AMD и Nvidia[15].
История[править | править вики-текст]
WebGL возник из экспериментов над Canvas 3D Владимира Вукичевича (Vladimir Vukićević) из Mozilla, разработавшего прототип Canvas 3D в 2006 году. В конце 2007 года и Mozilla[16], и Opera[17] создали свои собственные отдельные реализации.
В начале 2009 года Mozilla и Khronos организовали рабочую группу WebGL[18], 10 декабря 2009 года консорциум опубликовал первую черновую спецификацию WebGL[15][19]. Председатель группы Арун Ранганатан, заявил, что завершение работы над спецификацией ожидается в первом квартале 2010 года[15][19]. Окончательная ревизия первой редакции спецификаций была представлена 3 марта 2011 года в Сан-Франциско[20][21]. В мае 2011 года было обнаружено, что в WebGL имеются существенные слабые места в безопасности, такие как отказ в обслуживании и разрешение скриптовых атак[22].
Безопасность[править | править вики-текст]
В мае 2011 года служба безопасности Context Information Security опубликовала отчёт, который детально разбирает несколько проблем с безопасностью в текущих реализациях WebGL от Google Chrome и Mozilla Firefox, и вообще в самой спецификации WebGL как таковой. Согласно отчёту, WebGL позволяет полным по Тьюрингу программам, появившимся на компьютере из Интернета, добраться до привилегированного режима графических драйверов и оборудования. Отчёт также снабжен ссылками на примеры действий, создающих проблемы с безопасностью; эти действия способны вызывать отказ от обслуживания и воровство меж-доменных изображений. Отчёт завершается тем, что «браузеры, в которых WebGL встроен и включен по умолчанию, подвергают пользователя риску, созданному благодаря данным проблемам»[23].
Позже United States Computer Emergency Readiness Team (US-CERT) опубликовала предупреждение о том, что «WebGL содержит множество существенных проблем с безопасностью. Влияние этих проблем включает в себя произвольное выполнение кода, отказ от обслуживания и меж-доменные атаки.» US-CERT также призывал «пользователей и администраторов просмотреть отчёт Context и отключать WebGL, чтобы постараться уменьшить риск»[24].
Группа Khronos, в которую входят представители Mozilla и Google Chrome, ответила на беспокойства, предлагая возможные решения и будущие методы разработки[25]. После просмотра отчёта Context Mozilla решила убрать поддержку меж-доменных изображений в Firefox; в это время группа Khronos обновила спецификацию WebGL, чтобы улучшить защиту от отказа от обслуживания и атак на открытые ресурсы[26]. В настоящее время предложенные решения все ещё находятся на стадии разработки и не распространены повсеместно производителями GPU[27].
Context была не довольна решением группы Khronos сделать шаг, зафиксировав WebGL, и решила, что это решение не эффективно по отношению к поставленным проблемам[28]. В последующей статье Context снабжает читателей ещё большим количеством примеров уязвимости системы безопасности в последних реализациях WebGL на различных платформах. Признаки этих проблем стоят в ряду неисправностей начиная с разрушения системы и заканчивая утечкой информации. Context продолжает задавать вопрос, была ли WebGL специфицирована, разработана и реализована с учётом службы безопасности[26].
В июне 2011 года Microsoft заявил, что они не могут одобрить WebGL в его текущей форме с точки зрения безопасности. Исследование, проведенное командой инженеров MSRC, привело к заключению, что поддержка WebGL в продуктах Microsoft имела бы трудности с исполнением требований Security Development Lifecycle — стандарты безопасности для программного обеспечения, принятые внутри Microsoft. Microsoft ссылается на чрезмерно позволенную незащищенность функциональности оборудования и непроверенные возможности защиты от отказа от обслуживания, как на их ключевые проблемы[29].
Apple показали, что они не откроют доступ WebGL в основные страницы Интернета на iOS5. WebGL будет доступен только через iAds, который должен быть утверждён для каждой реализации Apple[30].
Известные независимые эксперты по безопасности и графике (в частности Джон Кармак[31] и Дэн Каминский[32]) утверждают, что WebGL — это серьёзный риск для безопасности и будет тяжело это изменить.
Вице-президент по техническим стратегиям Mozilla Марк Шавер забраковал критику Microsoft. В посте своего блога он написал, что Mozilla работала над проблемами с адресацией в спецификации WebGL и реализации для Firefox. Он подчеркнул, что веб нуждался в 3D возможностях, и заявил, что проблемы с безопасностью присущи новым технологиям. Он рекомендовал работу Microsoft над Direct3D API, используемый в Silverlight 5, которую он оценил как надёжную, но добавил, что та же технология могла бы быть перенесена со стороны Microsoft и на реализацию WebGL[33].
Библиотеки[править | править вики-текст]
Для разработки WebGL используется несколько библиотек. Первой общедоступной стала библиотека WebGLU[34][35]. Среди других библиотек для WebGL — GLGE, C3DL, Copperlicht[36], SpiderGL, gwt-g3d[37] (обёртка для GWT), SceneJS, X3DOM, Processing.js, Three.js, Turbulenz, OSGJS[38], XB PointStream и CubicVR.js[39].
ANGLE (Almost Native Graphics Layer Engine)[40] — программа, выпущенная под лицензией BSD, которая позволяет переводить содержимое WebGL в OpenGL ES 2.0, вызывать API DirectX 9, которые взаимодействуют с платформами Microsoft Windows без необходимости в дополнительных драйверах OpenGL.
См. также[править | править вики-текст]
Примечания[править | править вики-текст]
- ↑ WebGL Specification
- ↑ WebGL 2 Specification
- ↑ 1 2 WebGL - OpenGL ES 2.0 for the Web. Khronos.org. Проверено 14 мая 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ WebGL Specification. Khronos.org. Проверено 14 мая 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ Mozilla Firefox 4 Release Notes
- ↑ Google releases Chrome 9; comes with Google Instant, WebGL — FierceCIO:TechWatch
- ↑ WebGL (Windows)
- ↑ 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 (November 29, 2011). Проверено 5 декабря 2011. Архивировано из первоисточника 12 марта 2013.
- ↑ Opera Mobile 12. Opera Software. Проверено 27 февраля 2012. Архивировано из первоисточника 12 марта 2013.
- ↑ WebGL on iOS 8 Safari and webview.
- ↑ 1 2 3 Khronos опубликовала черновой вариант WebGL // Lenta.ru, 11.12.2009
- ↑ 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.
- ↑ 1 2 WebGL 3D web standard reaches draft stages // 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. Архивировано из первоисточника 12 апреля 2012.
- ↑ Context. Contextis.co.uk (9 мая 2011). Проверено 14 мая 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ Forshaw, James WebGL - A New Dimension for Browser Exploitation. Context Information Security (8 мая 2011). Проверено 11 мая 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ WebGL Security Risks. US-CERT (10 мая 2011). Проверено 11 мая 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ WebGL - Security. Khronos Group (17 июня 2011). Проверено 19 июня 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ 1 2 WebGL – More WebGL Security Flaws. Context Information Security (16 июня 2011). Проверено 16 июня 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ WebGL Security. Khronos Group (9 мая 2011). Проверено 11 мая 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ Context WEbGL security FAQ. Context Information Security. Проверено 16 мая 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ WebGL Considered Harmful. Microsoft (16 июня 2011). Проверено 16 июня 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ Microsoft, Apple Dis WebGL. InformationWeek (16 июня 2011). Проверено 20 июня 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ Carmack, John Tweet (17 июня 2011). Проверено 20 июня 2011. Архивировано из первоисточника 21 февраля 2012.
- ↑ Kaminsky, Dan Tweet (16 июня 2011). Проверено 20 июня 2011. Архивировано из первоисточника 21 февраля 2012.
- ↑ Mozilla rejects Microsoft criticism of WebGL. The Inquirer (20 июня 2011). Проверено 29 июня 2011. Архивировано из первоисточника 12 апреля 2012.
- ↑ 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.
- ↑ angleproject - ANGLE: Almost Native Graphics Layer Engine - Google Project Hosting. Проверено 14 марта 2013. Архивировано из первоисточника 16 марта 2013.
Ссылки[править | править вики-текст]
- Официальный сайт (англ.).
- Preview of WebGL (англ.) на YouTube.
- WebGL interactive models (англ.)
- Демо-приложение: человеческое тело (англ.)
- www.DoesMyBrowserSupportWebGL.com
Для улучшения этой статьи желательно?:
|
| Стандарты The Khronos Group | |
|---|---|
| COLLADA · EGL · OpenCL · OpenGL · OpenGL ES · OpenGL SC · OpenKODE · OpenMAX · OpenML · OpenSL ES · OpenVG · OpenWF · WebGL · WebCL |


