WebGL2.0標準的發展和普及如何?

如題,WebGL2.0目前的標準發展到了什麼樣的程度?相較於WebGL1.0將會有哪些大的功能的增加?目前是否有主流瀏覽器對其進行了支持?如果沒有,預計什麼時候WebGL2.0會被大部分主流瀏覽器所支持?


------- 2017/02/11 更新---------------

現在chrome 56 和firefox 51都已經支持webgl2了。很榮幸firefox 51 release page上有我們這個項目的鏈接。

-----------------------------------------------

碰巧做了一個WebGL 2 Samples Pack項目,內容是簡單直接的展示WebGL2新特性的常式,適合學習WebGL2 新特性的用法。Github鏈接在此:GitHub - WebGLSamples/WebGL2Samples: Short and easy to understand samples demonstrating WebGL 2 features

貼幾張裡面的samples的截圖,每個sample展示相應的WebGL 2的新的特性。

  • texture LOD

  • transform feedback

  • es 3 shader language中的flat,smooth interpolation

-----------------------------------------------------------------------下面嘗試回答題目中的問題:

WebGL2.0目前的標準發展到了什麼樣的程度?

我了解不多。我感覺標準已經比較完備了,目前在瀏覽器的實現階段。據我老師說大部分的移動設備硬體本身是可以支持WebGL2的(待驗證)。WebGL 2 詳細spec 可以在這裡找到:WebGL 2 Specification

相較於WebGL1.0將會有哪些大的功能的增加?

WebGL 1 可以看成是OpenGL ES 2 的javascript移植, 類似的,WebGL 2 可以看做是OpenGL ES 3 的javascript移植。所以大部分的特性可以去對應到OpenGL ES 3中的特性,當然有些細節上會有出入(比如texture swizzle是不支持)。這些新特性除了可以從WebGL 2 spec中找到,也可以去尋找OpenGL ES 3的書籍來大略了解。當然我非常推薦到我們的WebGL 2 Samples Pack去直接尋找新的特性及其用法,一般每個特性都有對應的sample。

比較重要的特性有:

uniform buffer object

vertex array object

transform feedback

multisample fbo

multiple render targets

一系列texture相關:texture lod, texture 2d array, texture 3d, 壓縮格式texture等等

目前是否有主流瀏覽器對其進行了支持?

Chrome和Firefox的WebGL2都還在開發中,不過大部分功能都已經可用,其餘也在迅速的開發中。目前獲得WebGL2環境的方法可以在這裡找到:Getting a WebGL Implementation。最新的WebGL 2 context應該使用Google Chrome Canary和Firefox developer edition。

和google的人交流過,具體發布時間記不得了,好像是今年6月?總之不會久了。Khronos已經在今年3月的GDC上舉行了WebGL2 和glTF的交流會。

具體到哪些特性已經完成實現,可以在我們WebGL 2 Sample Pack的ReadMe中有一張表看到測試情況。

-------------------------------------------------------------

最後貼一個谷歌大神的博客,What"s coming in-webgl-20:http://blog.tojicode.com/2013/09/whats-coming-in-webgl-20.html

最後再安利一下自己的入門級project, WebGL 2 Sample Pack:GitHub - WebGLSamples/WebGL2Samples: Short and easy to understand samples demonstrating WebGL 2 features


自答這題,突然發現了一個神器:WebGL Report

可以輕鬆查看當前瀏覽器對WebGL1.0/2.0的支持情況,包括支持的attribute,uniform,varying數量,一些重要功能的支持程度等。


WebGL 2.0現在已經在最新的Firefox和Chrome桌面版本上得到支持,普及的關鍵還是看Safari和iOS什麼時候支持了,不然WebGL平台無關性相當於一句空話。

至於WebGL 2.0的新特性,可以看我專欄中關於WebGL 2.0的特性展望。相較於WebGL 1.0,2.0的功能增加都是非常實用且急需的功能。


過了個年回來看,已經開始支持了呀!之前想把 OpenGL 的一些實現挪到 WebGL 上對應的實現下,結果連個 bindFramebuffer 都沒有。


在移動端,WebGL2要求設備支持OpenGL ES 3.0. 目前還沒有完全普及。目前新手機上基本都能支持了。並且幾個主流GPU廠商(Imagination,ARM,Qualcomm)的ES 3.0的GPU系列也都不夠穩定。可能還需要一段時間才能足夠穩定,已支持WebGL2。


推薦閱讀:

光線追蹤器在實現光線折射時,玻璃球出現奇怪的黑圈?
OpenGL shader如何調試?
path tracing 渲染bunny glass材質,為什麼會有奇怪的黑色?
像玻璃球這種透明且帶有折射現象的物體如何進行實時渲染?
學計算機圖學時,自己寫的軟渲染器代碼結構是否應模仿OpenGL的狀態機模式?

TAG:HTML5 | OpenGL | WebGL | HTML5遊戲 | 計算機圖形學 |