如题,WebGL2.0目前的标准发展到了什么样的程度?相较于WebGL1.0将会有哪些大的功能的增加?目前是否有主流浏览器对其进行了支持?如果没有,预计什么时候WebGL2.0会被大部分主流浏览器所支持?
回复内容:
碰巧做了一个WebGL 2 Samples Pack项目,内容是简单直接的展示WebGL2新特性的例程,适合学习WebGL2 新特性的用法。Github链接在此:GitHub - WebGLSamples/WebGL2Samples: Short and easy to understand samples demonstrating WebGL 2 features
贴几张里面的samples的截图,每个sample展示相应的WebGL 2的新的特性。
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 2.0现在已经在最新的Firefox和Chrome桌面版本上得到支持,普及的关键还是看Safari和iOS什么时候支持了,不然WebGL平台无关性相当于一句空话。
至于WebGL 2.0的新特性,可以看我专栏中关于WebGL 2.0的特性展望。相较于WebGL 1.0,2.0的功能增加都是非常实用且急需的功能。
自答这题,突然发现了一个神器:WebGL Report
可以轻松查看当前浏览器对WebGL1.0/2.0的支持情况,包括支持的attribute,uniform,varying数量,一些重要功能的支持程度等。