一月初的CES 2014大会上,Khronos Group简短预告了新版本的OpenGL ES,当时称之为OpenGL ES Next,而在GDC 2014大会即将开幕之际,Khronos Group正式发布了新的“OpenGL ES 3.1”。
OpenGL ES 3.0的技术特性几乎完全是来自于OpenGL 3.x,而新鲜出炉的OpenGL ES 3.1虽然版本号提升很小,却完全变成了OpenGL 4.x的子集,继承了其多项重要功能。
1、计算着色器(Compute Shaders)
新版的支柱性功能,来自OpenGL 4.3。通过它,应用可使用GPU执行通用目的计算任务,并与图形渲染紧密相连,将大大增强移动设备的计算能力。
此外,计算着色器是用GLSL ES着色语言编写的,可与图形流水线共享数据,开发也更容易。
2、独立的着色器对象
应用可为GPU的定点、碎片着色器阶段独立编程,无需明确的连接步骤即可将定点、碎片程序混合匹配在一起。
3、间接呼叫指令
GPU可以从内存获取呼叫指令,而不必非得等待CPU。举个例子,这可以让GPU上的计算着色器执行物理模拟,然后生成显示结果所需的呼叫指令,全程不必CPU参与。
4、增强的纹理功能
包括多重采样纹理、模版纹理、纹理聚集等等。
5、着色语言改进
新的算法和位字段(bitfield)操作,还有现代方式的着色器编程。
6、可选扩展
每采样着色、高级混合模式等等。
7、向下兼容
完全兼容OpenGL ES 2.0/3.0,程序员可在已有基础上增加3.1特性。
一如此前所说,OpenGL ES 3.1不支持曲面细分。
ARM、Imagination、Mobica、NVIDIA、高通、Vivante等都第一时间表达了对OpenGL ES 3.1的支持,并且明确了PowerVR 6系列、Tegra K1都已经支持了OpenGL ES 3.1。