WebGL | это... Что такое WebGL? (original) (raw)
WebGL
Тип | API |
Автор | Mozilla Foundation |
Разработчик | Khronos Group |
Операционная система | Cross-platform |
Тестовая версия | 1.0[1] (18 февраля 2011) |
Лицензия | Various |
Сайт | www.khronos.org/webgl/ |
HTML |
---|
HTML и HTML5 Динамический HTML XHTML XHTML Mobile Profile и CHTML Canvas Кодировки символов Document Object Model Семейство шрифтов Редактор HTML Элементы HTML Мнемоники в HTML Фреймы HTML HTML5 audio и HTML5 video Скрипты в HTML Браузерный движок Quirks mode Таблицы стилей Каскадные таблицы стилей Unicode и HTML W3C и WHATWG Цвета HTML Web Storage WebGL Сравнение языков разметки документов браузеров браузерных движков для HTML HTML5 HTML5 Canvas HTML5 Media XHTML (1.1) |
WebGL[2] (Web-based Graphics Library) — это библиотека для программного обеспечения, которая расширяет возможности языка программирования JavaScript, позволяя ему создавать интерактивную 3D графику внутри любого совместимого с ней веб-браузера. Код на WebGL выполняется с помощью видеокарты.
WebGL — это контекст элемента canvas HTML, который обеспечивает API 3D графику без использования плагинов.[3] Спецификация версии 1.0 была выпущена 3 марта 2011 года.[4] Некоммерческая Khronos Group управляет работой WebGL.
Содержание
- 1 Дизайн
- 2 Реализация
- 3 Рабочая группа
- 4 История
- 5 Электронные учебные пособия
- 6 Безопасность
- 7 Библиотеки
- 8 См. также
- 9 Примечания
- 10 Ссылки
Дизайн
WebGL построена на основе OpenGL ES 2.0 и обеспечивает API для 3D графики.[5] Она использует элемент HTML5 canvas, также ей доступен интерфейс Document Object Model. Автоматическое управление памятью предоставляется языком JavaScript.[3]
Реализация
Компьютерные браузеры
- Mozilla Firefox — WebGL был включен во все платформы, у которых есть нужная графическая карта с обновленными драйверами, начиная с версии 4.0.[6]
- Google Chrome — WebGL включен по умолчанию во все версии начиная с 9.[7]
- Safari — Safari поддерживает WebGL, но поддержка отключена по умолчанию.[8]
- Opera — WebGL реализован в последней версии Opera 12.00
- Internet Explorer — Microsoft не заявляла об официальной поддержке WebGL. Плагины Chrome Frame и IEWebGL предусматривают опции, необходимые для поддержки WebGL в Internet Explorer.
- Maemo 5 — официально функционирует в стандартном браузере Maemo 5 с выходом Maemo 5 PR1.2 в мае 2011 года.
Мобильные браузеры
Nokia N900 — WebGL доступен в обновленном встроенном ПО PR 1.2.[9] Mag200 - WebGL доступен в прошивке 0.2.12.
Рабочая группа
В состав рабочей группы, разрабатывающей стандарт, входят: Khronos Group, разработчики браузеров Apple Safari, Google Chrome, Mozilla Firefox и Opera, а также специалисты AMD и Nvidia[10].
История
WebGL возник из экспериментов над Canvas 3D, которые устраивал Vladimir Vukićević из Mozilla. Vladimir Vukićević впервые продемонстрировал прототип Canvas 3D в 2006 году. В конце 2007 года и Mozilla[11], и Opera[12] создали свои собственные отдельные реализации.
В начале 2009 года Mozilla и Khronos организовали рабочую группу WebGL.[13] 10 декабря 2009 года консорциум опубликовал первую черновую спецификацию WebGL[10][14]. Председатель группы Арун Ранганатан, заявил, что завершение работы над спецификацией ожидается в первом квартале 2010 года[10][14]. Окончательная ревизия первой редакции спецификаций была представлена 3 марта 2011 года в Сан-Франциско[1][15][16]. Было показано в мае 2011, что в WebGL имеются существенные слабые места в безопасности, такие как отказ в обслуживании и разрешение скриптовых атак.[17]
Электронные учебные пособия
Для изучения WebGL можно воспользоваться такими учебными пособиями, как Mozilla Developer Network и Learning WebGL (eng) (русский перевод).
Безопасность
В мае 2011 года служба безопасности Context Information Security опубликовала отчет, который детально разбирает несколько проблем с безопасностью в текущих реализациях WebGL от Google Chrome и Mozilla Firefox, и вообще в самой спецификации WebGL как таковой. Согласно отчету, WebGL позволяет полным по Тьюрингу программам, появившимся на компьютере из Интернета, добраться до привилегированного режима графических драйверов и оборудования. Отчет также снабжен ссылками на примеры действий, создающих проблемы с безопасностью; эти действия способны вызывать отказ от обслуживания и воровство меж-доменных изображений. Отчет завершается тем, что «браузеры, в которых WebGL встроен и включен по умолчанию, подвергают пользователя риску, созданному благодаря данным проблемам.»[18]
Позже United States Computer Emergency Readiness Team (US-CERT) опубликовала предупреждение о том, что «WebGL содержит множество существенных проблем с безопасностью. Влияние этих проблем включает в себя произвольное выполнение кода, отказ от обслуживания и меж-доменные атаки.» US-CERT также призывал «пользователей и администраторов просмотреть отчет Context и отключать WebGL, чтобы постараться уменьшить риск».[19]
Группа Khronos, которая включает в себя Mozilla и Google Chrome, ответила на беспокойства, предлагая возможные решения и будущие методы разработки.[20] После просмотра отчета Context Mozilla решила убрать поддержку меж-доменных изображений в Firefox; в это время группа Khronos обновила спецификацию WebGL, чтобы улучшить защиту от отказа от обслуживания и атак на открытые ресурсы.[21] В настоящее время предложенные решения все еще находятся на стадии разработки и не распространены повсеместно производителями GPU.[22]
Context была не довольна решением группы Khronos сделать шаг, зафиксировав WebGL, и решила, что это решение не эффективно по отношению к поставленным проблемам.[23] В последующей статье Context снабжает читателей еще большим количеством примеров уязвимости системы безопасности в последних реализациях WebGL на различных платформах. Признаки этих проблем стоят в ряду неисправностей начиная с разрушения системы и заканчивая утечкой информации. Context продолжает задавать вопрос, была ли WebGL специфицирована, разработана и реализована с учетом службы безопасности.[21]
В июне 2011 года Microsoft заявил, что они не могут одобрить WebGL в его текущей форме с точки зрения безопасности. Исследование, проведенное командой инженеров MSRC, привело к заключению, что поддержка WebGL в продуктах Microsoft имела бы трудности с исполнением требований Security Development Lifecycle — стандарты безопасности для программного обеспечения, принятые внутри Microsoft. Microsoft ссылается на чрезмерно позволенную незащищенность функциональности оборудования и непроверенные возможности защиты от отказа от обслуживания, как на их ключевые проблемы.[24]
Apple показали, что они не откроют доступ WebGL в основные страницы Интернета на iOS5. WebGL будет доступен только через iAds, который должен быть утвержден для каждой реализации Apple.[25]
Известные независимые эксперты по безопасности и графике (в частности Джон Кармак[26] и Дэн Каминский[27]) утверждают, что WebGL — это серьёзный риск для безопасности и будет тяжело это изменить.
Вице-президент по техническим стратегиям Mozilla Марк Шавер забраковал критику Microsoft. В посте своего блога он написал, что Mozilla работала над проблемами с адресацией в спецификации WebGL и реализации для Firefox. Он подчеркнул, что веб нуждался в 3D возможностях, и заявил, что проблемы с безопасностью присущи новым технологиям. Он рекомендовал работу Microsoft над Direct3D API, используемый в Silverlight 5, которую он оценил как надежную, но добавил, что та же технология могла бы быть перенесена со стороны Microsoft и на реализацию WebGL.[28]
Библиотеки
Для разработки WebGL используется несколько библиотек. Библиотека WebGLU была первой, которая была сделана общедоступной.[29] Другие библиотеки, объединенные в WebGL, включают в себя GLGE, C3DL, Copperlicht, SpiderGL, gwt-g3d — G3D (обертка WebGL) для GWT (Google Web Toolkit), SceneJS, X3DOM, Processing.js, Three.js, Turbulenz, OSGJS, XB PointStream и CubicVR.js.
ANGLE (Almost Native Graphics Layer Engine) — это текущий общедоступный проект, выпущенный под лицензией BSD, которая позволяет переводить содержимое WebGL в OpenGL ES 2.0, вызывать API DirectX 9, которые взаимодействуют с платформами Microsoft Windows без необходимости в дополнительных драйверах OpenGL.
См. также
Примечания
- ↑ 1 2 Khronos Releases Final WebGL 1.0 Specification (англ.). Khronos (3 марта 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 4 марта 2011.
- ↑ Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet
- ↑ 1 2 WebGL - OpenGL ES 2.0 for the Web. Khronos.org. Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
- ↑ Khronos Releases Final WebGL 1.0 Specification. Архивировано из первоисточника 12 апреля 2012. Проверено 3 марта 2011.
- ↑ WebGL Specification. Khronos.org. Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
- ↑ Mozilla Firefox 4 Release Notes
- ↑ Google releases Chrome 9; comes with Google Instant, WebGL — FierceCIO:TechWatch
- ↑ New in OS X Lion: Safari 5.1 brings WebGL, Do Not Track and more | FairerPlatform
- ↑ suihkulokki WebGL on N900. Suihkulokki.blogspot.com (7 июня 2010). Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
- ↑ 1 2 3 Khronos опубликовала черновой вариант WebGL // Lenta.ru, 11.12.2009
- ↑ Canvas 3D: GL power, web-style. Blog.vlad1.com. Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
- ↑ Taking the canvas to another dimension. My.opera.com (26 ноября 2007). Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
- ↑ Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet. Khronos.org (4 августа 2009). Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
- ↑ 1 2 WebGL 3D web standard reaches draft stages // Techradar
- ↑ Kurt Bakke WebCL To Enable GPU-Accelerated Web Apps (англ.). ConceivablyTech (3 марта 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 4 марта 2011.
- ↑ Accent Khronos публикует спецификации WebGL 1.0 — ускорение 3D-графики для web-страниц без подключаемых модулей (рус.). iXBT.com (3 марта 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 4 марта 2011.
- ↑ Context. Contextis.co.uk (9 мая 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
- ↑ Forshaw, James WebGL - A New Dimension for Browser Exploitation. Context Information Security (8 мая 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 11 мая 2011.
- ↑ WebGL Security Risks. US-CERT (10 мая 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 11 мая 2011.
- ↑ WebGL - Security. Khronos Group (17 июня 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 19 июня 2011.
- ↑ 1 2 WebGL – More WebGL Security Flaws. Context Information Security (16 июня 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 16 июня 2011.
- ↑ WebGL Security. Khronos Group (9 мая 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 11 мая 2011.
- ↑ Context WEbGL security FAQ. Context Information Security. Архивировано из первоисточника 12 апреля 2012. Проверено 16 мая 2011.
- ↑ WebGL Considered Harmful. Microsoft (16 июня 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 16 июня 2011.
- ↑ Microsoft, Apple Dis WebGL. InformationWeek (16 июня 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 20 июня 2011.
- ↑ Carmack, John Tweet (17 июня 2011). Архивировано из первоисточника 21 февраля 2012. Проверено 20 июня 2011.
- ↑ Kaminsky, Dan Tweet (16 июня 2011). Архивировано из первоисточника 21 февраля 2012. Проверено 20 июня 2011.
- ↑ Mozilla rejects Microsoft criticism of WebGL. The Inquirer (20 июня 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 29 июня 2011.
- ↑ Benjamin DeLillo First WebGLU release. Bjartr.blogspot.com (2 октября 2009). Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
Ссылки
- Официальный сайт (англ.).
- The Khronos Group: Open Standards, Royalty Free, Dynamic Media Technologies (англ.).
- Спецификация WebGL (англ.) (В настоящее время, черновик от 08 августа 2011 года).
- Preview of WebGL (англ.) на YouTube.
- WebGL interactive models (англ.)
- Демо-приложение: человеческое тело (англ.)
- www.DoesMyBrowserSupportWebGL.com
- WebGL Demo from Google Chromium
- WebGL Demo from Google Chromium (old site)
- EndlessForms.com See the power of WebGL by comparing this site (where you can evolve objects) in Chrome and Safari.
Стандарты The Khronos Group |
---|
COLLADA · EGL · OpenCL · OpenGL · OpenGL ES · OpenGL SC · OpenKODE · OpenMAX · OpenML · OpenSL ES · OpenVG · OpenWF · WebGL |