WebAR | 關於WebGL標準

WebGL是HTML5 canvas元素的擴展,現已廣泛用於開發需要3D可視化的Web應用程序。它是一種3D圖形API,基於OpenGL ES 2.0。爲了簡化開發,市面上有一些流行的基於WebGL的框架:

  • Three.js:Three.js是一個基於JavaScript的庫,它以低複雜度在Web瀏覽器上創建3D內容,是輕量級的,可以在HTML5 canvas,SVG和WebGL的幫助下執行渲染。

  • Scene.js:Scene.js是基於WebGL的庫,它使用JavaScript在Web瀏覽器上進行3D可視化。它與Three.js不同,因爲它旨在快速呈現大量可單獨拾取的對象。此功能使該庫可用於工程和數據可視化應用程序。

 

誰開發了WebGL?一位名叫Vladimir Vukicevic的美裔塞爾維亞軟件工程師完成了基礎工作,並領導了WebGL的創建。在2007年,Vladimir開始爲HTML文檔的Canvas元素開發OpenGL原型。2011年3月,Kronos Group創建了WebGL。

主流瀏覽器(例如Google Chrome,Mozilla Firefox,Safari和Opera)都支持它,有些瀏覽器(例如Internet Explorer 11)並不完全支持WebGL。此外,WebGL是一種低級API,因爲它被設計爲直接與圖形卡進行交互。因此,具有低圖形卡內存的設備可能會帶來嚴重的性能問題。

1、WebGL與OpenGL之間的主要區別

  • WebGL基於OpenGL ES,它缺少常規OpenGL具有的許多功能,例如僅支持頂點和片段着色器。OpenGL具有WebGL所不具備的功能,例如幾何體着色器,曲面細分着色器和計算着色器。

  • WebGL主要用於瀏覽器。OpenGL確實需要本機驅動程序,並且主要用於安裝軟件。

  • WebGL用於Web應用程序,而OpenGL用於許多視頻遊戲。

  • WebGL更易於學習和開發應用程序。如果你熟悉WebGL,則可以輕鬆學習OpenGL。

  • 在WebGL中,它可以使用2D紋理來僞造3D紋理。在OpenGL中,不需要這樣做,因爲它具有很多功能,例如幾何體和着色器。

  • 在WebGL中,從一開始就被迫學習使用着色器和緩衝區。在OpenGL中,並非如此。

  • WebGL具有較少的功能,因此學習曲線較少。OpenGL具有更大的學習曲線,因爲它具有包括WebGL在內的許多功能。

  • WebGL基於OpenGL ES 2,而不是純OpenGL。OpenGL ES是OpenGL的子集。OpenGL ES具有較少的功能,並且對用戶來說非常簡單。OpenGL具有很多功能並且難以使用。

2、桌面瀏覽器支持情況

  • Google Chrome瀏覽器 :自2011年2月發佈第9版以來,所有具有圖形卡且驅動程序已更新的平臺均已啓用WebGL 1.0。在Windows上,默認情況下,Chrome使用ANGLE(幾乎本機圖形層引擎)渲染器來翻譯OpenGL ES Direct X 9.0c或11.0,具有更好的驅動程序支持。在Linux和Mac OS X上,默認渲染器爲OpenGL,但是也可以將OpenGL強制爲Windows上的渲染器。自2013年9月以來,Chrome還擁有更新的Direct3D 11渲染器,但需要更新的圖形卡。

  • Mozilla Firefox瀏覽器 :從4.0版開始,所有具有圖形卡且驅動程序已更新的平臺均已啓用WebGL 1.0。自2013年以來,Firefox還通過ANGLE在Windows平臺上使用DirectX。

  • Safari:在OS X Mountain Lion,Mac OS X Lion和Mac OS X Snow Leopard上的Safari 5.1上安裝的Safari 6.0和更高版本實現了對WebGL 1.0的支持,在Safari 8.0之前默認情況下已禁用。Safari 12版(在macOS Mojave中可用)具有對WebGL 2.0的支持,目前作爲“實驗”功能。

  • Opera :WebGL 1.0已在Opera 11和Opera 12中實現,但在2014年默認情況下已禁用。Opera43+支持WebGL 2.0。

  • Internet Explorer — Internet Explorer部分支持WebGL 1.0。最初,它沒有通過大多數正式的WebGL一致性測試,但後來Microsoft發佈了一些更新。最新的0.94 WebGL引擎目前已通過Khronos測試的約97%。也可以使用第三方插件(例如IE WebGL)將WebGL支持手動添加到Internet Explorer的早期版本中。

  • Microsoft Edge:最初的穩定版本支持WebGL 0.95版(上下文名稱:“ experimental-WebGL”),以及從GLSL到HLSL轉譯器的開源GLSL。版本10240+支持WebGL 1.0作爲前綴。在將來的版本中,WebGL 2.0被計劃爲中等優先級。

3、手機瀏覽器支持情況

  • BlackBerry 10:從OS 10.00版開始,WebGL 1.0可用於BlackBerry設備。

  • BlackBerry PlayBook:WebGL 1.0可通過WebWorks和PlayBook OS 2.00中的瀏覽器獲得

  • Android瀏覽器 :基本上不受支持,但是在固件升級後,索尼愛立信Xperia系列的Android智能手機具有WebGL功能。三星智能手機還啓用了WebGL(已在Galaxy SII(4.1.2)和Galaxy Note 8.0(4.2)上進行了驗證)。Google Chrome支持此功能,該功能已取代了許多手機中的Android瀏覽器(但不是新的標準Android瀏覽器)。

  • Internet Explorer : Windows Phone 8.x(11+)上提供了WebGL 1.0

  • 移動版Firefox:從Firefox 4開始,WebGL 1.0就可用於Android和MeeGo設備。

  • Google Chrome瀏覽器:WebGL 1.0自Google Chrome 25起可用於Android設備,自30版本起默認啓用。

  • Maemo :在諾基亞N900中,從PR1.2固件更新開始,可在庫存的microB瀏覽器中使用WebGL 1.0。

  • MeeGo:“ Web”不支持WebGL 1.0。但是,可以通過Firefox使用它。

  • Microsoft Edge:Windows 10 Mobile上提供了Prefixed WebGL 1.0。

  • Opera Mobile :Opera Mobile 12支持WebGL 1.0(僅適用於Android)。

  • Sailfish操作系統:默認的Sailfish瀏覽器支持WebGL 1.0。

  • Tizen:支持WebGL 1.0。

  • iOS:WebGL 1.0在iOS 8中可用於移動Safari。

關於更多機器學習、人工智能、增強現實資源和技術乾貨,可以關注公衆號:AIRX社區,共同學習,一起進步!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章