原作者 | Mozilla基金会 |
---|---|
开发者 | WebGL Working Group |
首次发布 | 2011年3月3日[1] |
稳定版本 | 2.0 (2017年1月17日 ) |
操作系统 | 跨平台 |
类型 | API |
网站 | www.khronos.org/webgl/ |
HTML |
---|
比较 |
WebGL是一种JavaScript API,用于在不使用外挂程序的情况下在任何兼容的网页浏览器中呈现交互式2D和3D图形[2]。WebGL完全集成到浏览器的所有网页标准中,可将影像处理和效果的GPU加速使用方式当做网页Canvas的一部分。WebGL元素可以加入其他HTML元素之中并与网页或网页背景的其他部分混合[3]。WebGL程序由JavaScript编写的句柄和OpenGL Shading Language(GLSL)编写的着色器代码组成,该语言类似于C或C++,并在电脑的图形处理器(GPU)上执行。WebGL由非营利Khronos Group设计和维护[4]。
设计
WebGL 1.0基于OpenGL ES 2.0,并提供了3D图形的API[5]。它使用HTML5 Canvas并允许利用文档对象模型接口。WebGL 2.0基于OpenGL ES 3.0,确保了提供许多选择性的WebGL 1.0扩充功能,并引入新的API[6]。可利用部分Javascript实现自动记忆体管理[4]。
历史
WebGL起源于Mozilla员工弗拉基米尔·弗基西维奇一项称为Canvas 3D的实验计划。2006年,弗基西维奇首次展示了Canvas 3D的原型。2007年底在Firefox[7]和Opera[8]被实作。
在2009年初,非营利技术联盟Khronos Group启动了WebGL的工作组,最初的工作成员包括Apple、Google、Mozilla、Opera等[4][9]。2011年3月发布WebGL 1.0规范[1]。截至2012年3月,工作组的主席由肯·罗素(Ken Russell,全名“Kenneth Bradley Russell”)担任。
WebGL的早期应用包括Zygote Body[10]。
WebGL 2规范的发展始于2013年,并于2017年1月完成[11]。该规范基于OpenGL ES 3.0[12]。首度实作在Firefox 51、Chrome 56和Opera 43中[13]。
支持
目前,WebGL在最新的浏览器中被广泛支持。然而,其可用性取决于其他因素,如GPU支持。WebGL官方网站提供了一个简单的测试页[14]。而第三方网站提供了更详细的讯息(如浏览器使用的渲染器以及可用的扩展)[15][16]。
桌面浏览器
- Google Chrome – 从9.0开始支持预设启用[17][18]。
- Internet Explorer – 从11开始支持[19]。较旧的版本可以安装第三方外挂程序来支持,如IEWebGL[20]。
- Mozilla Firefox – 从4.0开始支持预设启用[21]。
- Safari – 在Mac OS X Snow Leopard上的Safari 5.1、OS X Mountain Lion、Mac OS X Lion上的Safari6.0或较新版本开始支持WebGL,预设情况下禁用[22][23][24][25][26]。
- Opera – 需自行启用[27][28]。
行动浏览器
- Firefox OS[29]
- Firefox for mobile[29][30]
- Google Chrome
- Opera Mobile[31]
- Tizen[32]
- Ubuntu Touch
- WebOS
- iOS[33]
参考文献
- ↑ 1.0 1.1 Khronos Releases Final WebGL 1.0 Specification. [2015-05-18].
- ↑ Gregg Tavares. WebGL Fundamentals. HTML5 Rocks. 2012-02-09.
- ↑ Parisi, Tony. WebGL: Up and Running. O'Reilly Media, Incorporated. 2012-08-15 [2017-06-11].
- ↑ 4.0 4.1 4.2 WebGL - OpenGL ES 2.0 for the Web
- ↑ WebGL Specification. Khronos.org. [2011-05-14].
- ↑ WebGL 2.0 Specification. Khronos.org. [2017-02-27].
- ↑ Canvas 3D: GL power, web-style. Blog.vlad1.com. [2011-05-14].
- ↑ Taking the canvas to another dimension. My.opera.com. 2007-11-26 [2011-05-14].
- ↑ Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet. Khronos.org. 2009-08-04 [2011-05-14].
- ↑ Google Body – Google Labs. Bodybrowser.googlelabs.com.
- ↑ WebGL 2 Specification. khronos.org. 2013-09-26 [2013-10-28].
- ↑ WebGL 2.0 Specification
- ↑ WebGL: 2D and 3D graphics for the web - Web APIs | MDN
- ↑ WebGL test page. webgl.org.
- ↑ WebGL Report. webglreport.com.
- ↑ WebGL Browser Report — WebGL Detection — WebGL Tester — BrowserLeaks. browserleaks.com.
- ↑ Paul Mah. Google releases Chrome 9; comes with Google Instant, WebGL – FierceCIO:TechWatch. FierceCIO. 2011-02-08 [2012-03-20].
- ↑ WebGL in Chrome Stable! - Learning WebGL. learningwebgl.com. [2015-12-27].
- ↑ WebGL (Windows). 微软. [2014-03-05].
- ↑ IEWebGL. Iewebgl. [2014-08-14].
- ↑ Mozilla Firefox 4 Release Notes. Mozilla.com. 2011-03-22 [2012-03-20].
- ↑ New in OS X Lion: Safari 5.1 brings WebGL, Do Not Track and more. Fairerplatform.com. 2011-05-03 [2012-03-20].
- ↑ Enable WebGL in Safari. Ikriz.nl. 2011-08-23 [2012-03-20].
- ↑ Getting a WebGL Implementation. Khronos.org. 2012-01-13 [2012-03-20].
- ↑ Implementations/WebKit. Khronos.org. 2011-09-03 [2012-03-20].
- ↑ WebGL Now Available in WebKit Nightlies. Webkit.org. [2012-03-20].
- ↑ WebGL and Hardware Acceleration. My.opera.com. 2011-02-28 [2012-03-20].
- ↑ Introducing Opera 12 alpha. My.opera.com. 2011-10-13 [2012-03-20].
- ↑ 29.0 29.1 Mobile HTML5 compatibility on iPhone, Android, Windows Phone, BlackBerry, Firefox OS and other mobile devices. [2015-09-16].
- ↑ iclkevin. WebGL on Mobile Devices. iChemLabs. 2011-11-12 [2011-11-25].
- ↑ Opera Mobile 12. Opera Software. [2012-02-27].
- ↑ HTML5test - How well does your browser support HTML5?. [2015-09-16].
- ↑ Cunningham, Andrew. iOS 8, Thoroughly Reviewed. Ars Technica. 2014-09-17 [2014-09-19].