WebGL - 维基百科,自由的百科全书
文章推薦指數: 80 %
WebGL是一種JavaScript API,用於在不使用外掛程式的情況下在任何相容的網頁瀏覽器中呈現交互式2D和3D圖形。
WebGL完全整合到瀏覽器的所有網頁標準中,可將影像處理和 ...
WebGL
Web浏览器中opengl的JavaScript绑定
語言
監視
編輯
WebGL是一種JavaScriptAPI,用於在不使用外掛程式的情況下在任何相容的網頁瀏覽器中呈現互動式2D和3D圖形[2]。
WebGL完全整合到瀏覽器的所有網頁標準中,可將影像處理和效果的GPU加速使用方式當做網頁Canvas的一部分。
WebGL元素可以加入其他HTML元素之中並與網頁或網頁背景的其他部分混合[3]。
WebGL程式由JavaScript編寫的控制代碼和OpenGLShadingLanguage(GLSL)編寫的著色器代碼組成,該語言類似於C或C++,並在電腦的圖形處理器(GPU)上執行。
WebGL由非營利KhronosGroup設計和維護[4]。
WebGL原作者Mozilla基金會開發者WebGLWorkingGroup初始版本2011年3月3日 (2011-03-03)[1]穩定版本2.0(2017年1月17日 (2017-01-17))
作業系統跨平台類型API網站www.khronos.org/webgl/
目次
1設計
2歷史
3支援
3.1桌面瀏覽器
3.2行動瀏覽器
4參考文獻
5外部連結
6參見
設計編輯
WebGL1.0基於OpenGLES2.0,並提供了3D圖形的API[5]。
它使用HTML5Canvas並允許利用文件物件模型介面。
WebGL2.0基於OpenGLES3.0,確保了提供許多選擇性的WebGL1.0擴充功能,並引入新的API[6]。
可利用部分Javascript實現自動記憶體管理[4]。
歷史編輯
WebGL起源於Mozilla員工弗拉基米爾·弗基西維奇一項稱為Canvas3D的實驗計畫。
2006年,弗基西維奇首次展示了Canvas3D的原型。
2007年底在Firefox[7]和Opera[8]被實作。
在2009年初,非營利技術聯盟KhronosGroup啟動了WebGL的工作組,最初的工作成員包括Apple、Google、Mozilla、Opera等[4][9]。
2011年3月發布WebGL1.0規範[1]。
截至2012年3月,工作組的主席由肯·羅素(KenRussell,全名「KennethBradleyRussell」)擔任。
WebGL的早期應用包括ZygoteBody[10][11]。
WebGL2規範的發展始於2013年,並於2017年1月完成[12]。
該規範基於OpenGLES3.0[13]。
首度實作在Firefox51、Chrome56和Opera43中[14]。
支援編輯
目前,WebGL在最新的瀏覽器中被廣泛支援。
然而,其可用性取決於其他因素,如GPU支援。
WebGL官方網站提供了一個簡單的測試頁[15]。
而第三方網站提供了更詳細的訊息(如瀏覽器使用的彩現器以及可用的擴展)[16][17]。
桌面瀏覽器編輯
GoogleChrome–從9.0開始支援預設啟用了WebGL[18][19]。
在Windows上,默認情況下,Chrome使用ANGLE彩現器將OpenGLES轉換為DirectX9.0c或11.0,後者具有更好的驅動程式支援[20]。
在Linux和MacOSX上,默認彩現器是OpenGL[21],也可以強制OpenGL作為Windows上的彩現器[20]。
2013年9月起,Chrome還推出了更新的Direct3D11彩現器,但需要更新的顯示卡[22][23]。
Chrome56+支援WebGL2.0。
InternetExplorer–從11開始支援[24]。
InternetExplorer11最初未能通過大多數官方的WebGL一致性測試,但微軟後來發佈了幾個更新,最新的0.94WebGL引擎目前通過了約97%的Khronos測試。
較舊的版本可以安裝第三方外掛程式來支援,如IEWebGL[25]。
MozillaFirefox–從4.0開始支援預設啟用[26]。
Firefox也通過ANGLE在Windows平臺上使用DirectX。
Firefox51+支援WebGL2.0。
Safari–在MacOSXSnowLeopard上的Safari5.1、OSXMountainLion、MacOSXLion上的Safari6.0或較新版本開始支援WebGL,預設情況下禁用[27][28][29][30][31]。
Safari版本12(在MacOSMojave中可用)支援WebGL2.0,目前作為"實驗性"功能。
Opera–需自行啟用[32][33]。
Opera43+支援WebGL2.0
MicrosoftEdge–對於MicrosoftEdgeLegacy,初始穩定版本支援WebGL版本0.95(context名稱:"experimental-webgl"),並帶有開源GLSL到HLSL轉譯器。
版本10240+支援以WebGL1.0為前綴。
最新的基於Chromium的Edge支援WebGL2.0行動瀏覽器編輯
FirefoxOS[34]
Firefoxformobile[35][34]
GoogleChrome[36]
OperaMobile[37]
Tizen[38]
UbuntuTouch
WebOS
iOS[39]參考文獻編輯
^1.01.1KhronosReleasesFinalWebGL1.0Specification.[2015-05-18].(原始內容存檔於2016-11-08).
^GreggTavares.WebGLFundamentals.HTML5Rocks.2012-02-09[2015-12-27].(原始內容存檔於2022-02-08).
^Parisi,Tony.WebGL:UpandRunning.O'ReillyMedia,Incorporated.2012-08-15[2017-06-11].(原始內容存檔於2013-02-01).
^4.04.14.2WebGL-OpenGLES2.0fortheWeb
^WebGLSpecification.Khronos.org.[2011-05-14].(原始內容存檔於2012-04-12).
^WebGL2.0Specification.Khronos.org.[2017-02-27].(原始內容存檔於2017-01-28).
^Canvas3D:GLpower,web-style.Blog.vlad1.com.[2011-05-14].(原始內容存檔於2011-07-17).
^Takingthecanvastoanotherdimension.My.opera.com.2007-11-26[2011-05-14].(原始內容存檔於2007-11-17).
^KhronosDetailsWebGLInitiativetoBringHardware-Accelerated3DGraphicstotheInternet.Khronos.org.2009-08-04[2011-05-14].(原始內容存檔於2012-04-12).
^GoogleBody–GoogleLabs.Bodybrowser.googlelabs.com.[2011-05-14].(原始內容存檔於2011-05-13).
^Bhanoo,SindyaN.NewFromGoogle:TheBodyBrowser.Well.blogs.nytimes.com.2010-12-23[2011-05-14].(原始內容存檔於2015-02-06).
^WebGL2Specification.khronos.org.2013-09-26[2013-10-28].(原始內容存檔於2017-08-08).
^存档副本.[2017-06-11].(原始內容存檔於2017-01-28).
^存档副本.[2017-06-11].(原始內容存檔於2017-08-28).
^WebGLtestpage.webgl.org.[2015-12-27].(原始內容存檔於2015-04-18).
^WebGLReport.webglreport.com.[2017-06-11].(原始內容存檔於2015-05-28).
^WebGLBrowserReport—WebGLDetection—WebGLTester—BrowserLeaks.browserleaks.com.[2017-06-11].(原始內容存檔於2015-05-20).
^PaulMah.GooglereleasesChrome9;comeswithGoogleInstant,WebGL–FierceCIO:TechWatch.FierceCIO.February8,2011[2012-03-20].(原始內容存檔於2011-10-25).
^WebGLinChromeStable!-LearningWebGL.learningwebgl.com.[2015-12-27].(原始內容存檔於2015-05-28).
^20.020.1(WebGL)HowtoEnableNativeOpenGLinyourBrowser(Windows)|Geeks3D.[2022-03-24].(原始內容存檔於2022-04-17)(美國英語).
^IntroducingtheANGLEProject.ChromiumBlog.[2022-03-24].(原始內容存檔於2022-04-22)(英語).
^WebGLaroundthenet,17Oct2013|LearningWebGL.web.archive.org.2014-08-08[2022-03-24].
^BrandonJones.Atlast!ChromeD3D11dayhascome!.[2022-03-24].(原始內容存檔於2022-04-19)(英語).
^WebGL(Windows).微軟.[2014-03-05].(原始內容存檔於2015-03-24).
^IEWebGL.Iewebgl.[2014-08-14].(原始內容存檔於2022-02-08).
^MozillaFirefox4ReleaseNotes.Mozilla.com.2011-03-22[2012-03-20].(原始內容存檔於2011-03-23).
^NewinOSXLion:Safari5.1bringsWebGL,DoNotTrackandmore.Fairerplatform.com.2011-05-03[2012-03-20].(原始內容存檔於2012-03-19).
^EnableWebGLinSafari.Ikriz.nl.2011-08-23[2012-03-20].(原始內容存檔於2012-03-04).
^GettingaWebGLImplementation.Khronos.org.2012-01-13[2012-03-20].(原始內容存檔於2015-05-28).
^Implementations/WebKit.Khronos.org.2011-09-03[2012-03-20].(原始內容存檔於2015-03-21).
^WebGLNowAvailableinWebKitNightlies.Webkit.org.[2012-03-20].(原始內容存檔於2012-03-08).
^WebGLandHardwareAcceleration.My.opera.com.2011-02-28[2012-03-20].(原始內容存檔於2011-03-03).
^IntroducingOpera12alpha.My.opera.com.2011-10-13[2012-03-20].(原始內容存檔於2011-10-15).
^34.034.1MobileHTML5compatibilityoniPhone,Android,WindowsPhone,BlackBerry,FirefoxOSandothermobiledevices.[2015-09-16].(原始內容存檔於2022-04-15).
^iclkevin.WebGLonMobileDevices.iChemLabs.2011-11-12[2011-11-25].(原始內容存檔於2013-03-12).
^Kersey,Jason.ChromeBetaforAndroidUpdate.ChromeReleasesBlog.Google.[2013-08-23].(原始內容存檔於2015-04-03).
^OperaMobile12.OperaSoftware.[27February2012].(原始內容存檔於2012年3月1日).
^HTML5test-HowwelldoesyourbrowsersupportHTML5?.[2015-09-16].(原始內容存檔於2022-04-15).
^Cunningham,Andrew.iOS8,ThoroughlyReviewed.ArsTechnica.2014-09-17[2014-09-19].(原始內容存檔於2014-09-20).
外部連結編輯
官方網站
WebGL(頁面存檔備份,存於網際網路檔案館)於MDNWebDocs參見編輯
HTML5
OpenGL
WebGPU
WebVR
取自「https://zh.wikipedia.org/w/index.php?title=WebGL&oldid=72287008」
延伸文章資訊
- 1WebGL - 维基百科,自由的百科全书
WebGL是一種JavaScript API,用於在不使用外掛程式的情況下在任何相容的網頁瀏覽器中呈現交互式2D和3D圖形。WebGL完全整合到瀏覽器的所有網頁標準中,可將影像處理和 ...
- 23D 入門
p5.js 預設的渲染器(render)是2D,基於HTML5,它也支援3D 渲染器,基於WebGL,如果你對WebGL 有興趣,我也撰寫了〈語言技術:WebGL〉可供參考。 在p5.js...
- 3[Day2] 為什麼是webGL 與Three.js? - iT 邦幫忙
3D 的世界:我們所看見的物體是如何構成的? 這一個章節,我們會來談談3D 的基礎,包含影像如何形成的,以及光線、camera、scene 等等在3D ...
- 4浏览器上的3D—WebGL和Three.js - 知乎专栏
WebGL是什么WebGL(全称Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0(OpenGL是最常用的跨平台...
- 5使用HTML5 和Babylon.js 的WebGL 3D 簡介 - Microsoft Docs
您有3D 遊戲的絕佳想法嗎? 如果您想要使用用來建立一個相同開放原始碼架構來建置它,請參閱這個令人興奮的課程! Babylon.js是免費的開放原始碼遊戲架構,可簡化WebGL ...