WebGL
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]。
原作者 | Mozilla基金会 |
---|---|
開發者 | WebGL Working Group |
初始版本 | 2011年3月3日[1] |
穩定版本 | 2.0 (2017年1月17日 ) |
操作系统 | 跨平台 |
类型 | API |
网站 | www.khronos.org/webgl/ |
HTML |
---|
比较 |
設計
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][11]。
WebGL 2規範的發展始於2013年,並於2017年1月完成[12]。該規範基於OpenGL ES 3.0[13]。首度實作在Firefox 51、Chrome 56和Opera 43中[14]。
支援
目前,WebGL在最新的瀏覽器中被廣泛支援。然而,其可用性取決於其他因素,如GPU支援。WebGL官方網站提供了一個簡單的測試頁[15]。而第三方網站提供了更詳細的訊息(如瀏覽器使用的渲染器以及可用的擴展)[16][17]。
桌面瀏覽器
- Google Chrome – 從9.0開始支援預設啟用[18][19]。
- Internet Explorer – 从11开始支持[20]。較舊的版本可以安裝第三方外掛程式來支援,如IEWebGL[21]。
- Mozilla Firefox – 從4.0開始支援預設啟用[22]。
- Safari – 在Mac OS X Snow Leopard上的Safari 5.1、OS X Mountain Lion、Mac OS X Lion上的Safari6.0或較新版本開始支援WebGL,預設情況下禁用[23][24][25][26][27]。
- Opera – 需自行啟用[28][29]。
参考文献
- . [2015-05-18]. (原始内容存档于2016-11-08).
- Gregg Tavares. . HTML5 Rocks. 2012-02-09.
- Parisi, Tony. . O'Reilly Media, Incorporated. 2012-08-15 [2017-06-11]. (原始内容存档于2013-02-01).
- WebGL - OpenGL ES 2.0 for the Web
- . Khronos.org. [2011-05-14]. (原始内容存档于2012-04-12).
- . Khronos.org. [2017-02-27].
- . Blog.vlad1.com. [2011-05-14]. (原始内容存档于2011-07-17).
- . My.opera.com. 2007-11-26 [2011-05-14]. (原始内容存档于2007-11-17).
- . Khronos.org. 2009-08-04 [2011-05-14]. (原始内容存档于2012-04-12).
- . Bodybrowser.googlelabs.com. [2011-05-14]. (原始内容存档于2011-05-13).
- Bhanoo, Sindya N. . Well.blogs.nytimes.com. 2010-12-23 [2011-05-14].
- . khronos.org. 2013-09-26 [2013-10-28].
- https://www.khronos.org/registry/webgl/specs/latest/2.0/
- https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API
- . webgl.org.
- . webglreport.com.
- . browserleaks.com.
- Paul Mah. . FierceCIO. February 8, 2011 [2012-03-20]. (原始内容存档于2011-10-25).
- . learningwebgl.com. [2015-12-27]. (原始内容存档于2015-05-28).
- . 微软. [2014-03-05].
- . Iewebgl. [2014-08-14].
- . Mozilla.com. 2011-03-22 [2012-03-20]. (原始内容存档于2011-03-23).
- . Fairerplatform.com. 2011-05-03 [2012-03-20]. (原始内容存档于2012-03-19).
- . Ikriz.nl. 2011-08-23 [2012-03-20]. (原始内容存档于2012-03-04).
- . Khronos.org. 2012-01-13 [2012-03-20].
- . Khronos.org. 2011-09-03 [2012-03-20].
- . Webkit.org. [2012-03-20]. (原始内容存档于2012-03-08).
- . My.opera.com. 2011-02-28 [2012-03-20]. (原始内容存档于2011-03-03).
- . My.opera.com. 2011-10-13 [2012-03-20]. (原始内容存档于2011-10-15).
- . [2015-09-16].
- iclkevin. . iChemLabs. 2011-11-12 [2011-11-25]. (原始内容存档于2013-03-12).
- Kersey, Jason. . Chrome Releases Blog. Google. [2013-08-23].
- . Opera Software. [27 February 2012]. (原始内容存档于2012年3月1日).
- . [2015-09-16].
- Cunningham, Andrew. . Ars Technica. 2014-09-17 [2014-09-19]. (原始内容存档于2014-09-20).