WebGL | это... Что такое WebGL? (original) (raw)

WebGL

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.

Содержание

Дизайн

WebGL построена на основе OpenGL ES 2.0 и обеспечивает API для 3D графики.[5] Она использует элемент HTML5 canvas, также ей доступен интерфейс Document Object Model. Автоматическое управление памятью предоставляется языком JavaScript.[3]

Реализация

Компьютерные браузеры

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

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. 1 2 Khronos Releases Final WebGL 1.0 Specification (англ.). Khronos (3 марта 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 4 марта 2011.
  2. Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet
  3. 1 2 WebGL - OpenGL ES 2.0 for the Web. Khronos.org. Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
  4. Khronos Releases Final WebGL 1.0 Specification. Архивировано из первоисточника 12 апреля 2012. Проверено 3 марта 2011.
  5. WebGL Specification. Khronos.org. Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
  6. Mozilla Firefox 4 Release Notes
  7. Google releases Chrome 9; comes with Google Instant, WebGL — FierceCIO:TechWatch
  8. New in OS X Lion: Safari 5.1 brings WebGL, Do Not Track and more | FairerPlatform
  9. suihkulokki WebGL on N900. Suihkulokki.blogspot.com (7 июня 2010). Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
  10. 1 2 3 Khronos опубликовала черновой вариант WebGL // Lenta.ru, 11.12.2009
  11. Canvas 3D: GL power, web-style. Blog.vlad1.com. Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
  12. Taking the canvas to another dimension. My.opera.com (26 ноября 2007). Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
  13. Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet. Khronos.org (4 августа 2009). Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
  14. 1 2 WebGL 3D web standard reaches draft stages // Techradar
  15. Kurt Bakke WebCL To Enable GPU-Accelerated Web Apps (англ.). ConceivablyTech (3 марта 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 4 марта 2011.
  16. Accent Khronos публикует спецификации WebGL 1.0 — ускорение 3D-графики для web-страниц без подключаемых модулей (рус.). iXBT.com (3 марта 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 4 марта 2011.
  17. Context. Contextis.co.uk (9 мая 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.
  18. Forshaw, James WebGL - A New Dimension for Browser Exploitation. Context Information Security (8 мая 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 11 мая 2011.
  19. WebGL Security Risks. US-CERT (10 мая 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 11 мая 2011.
  20. WebGL - Security. Khronos Group (17 июня 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 19 июня 2011.
  21. 1 2 WebGL – More WebGL Security Flaws. Context Information Security (16 июня 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 16 июня 2011.
  22. WebGL Security. Khronos Group (9 мая 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 11 мая 2011.
  23. Context WEbGL security FAQ. Context Information Security. Архивировано из первоисточника 12 апреля 2012. Проверено 16 мая 2011.
  24. WebGL Considered Harmful. Microsoft (16 июня 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 16 июня 2011.
  25. Microsoft, Apple Dis WebGL. InformationWeek (16 июня 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 20 июня 2011.
  26. Carmack, John Tweet (17 июня 2011). Архивировано из первоисточника 21 февраля 2012. Проверено 20 июня 2011.
  27. Kaminsky, Dan Tweet (16 июня 2011). Архивировано из первоисточника 21 февраля 2012. Проверено 20 июня 2011.
  28. Mozilla rejects Microsoft criticism of WebGL. The Inquirer (20 июня 2011). Архивировано из первоисточника 12 апреля 2012. Проверено 29 июня 2011.
  29. Benjamin DeLillo First WebGLU release. Bjartr.blogspot.com (2 октября 2009). Архивировано из первоисточника 12 апреля 2012. Проверено 14 мая 2011.

Ссылки

Просмотр этого шаблона Стандарты The Khronos Group
COLLADA · EGL · OpenCL · OpenGL · OpenGL ES · OpenGL SC · OpenKODE · OpenMAX · OpenML · OpenSL ES · OpenVG · OpenWF · WebGL