桌面及专业级GPU支持DirectX、OpenGL规范,移动处理器中的GPU则支持OpenGL ES规范,目前的主流硬件都支持OpenGL ES
3.0(但需要Android 4.3+系统)。1月份的CES展会期间,OpenGL官方组织Khronos曾宣布今年会推出OpenGL ES Next新规范,目前GDC大会开幕日上,新规范也正式定名——叫做OpenGL
ES 3.1,是3.0规范的小幅升级版,大部分支持3.0的硬件都可以支持3.1规范的新功能。
目前的OpenGL ES
3.0规范发布于2012年,它是基于OpenGL 3.x规范的子集,而OpenGL ES 3.1则是基于OpenGL 4.x规范的子集,同时向下兼容ES
3.0/2.0规范。根据Khronos的官方新闻所说,ES 3.1支持OpenGL
4.x规范中开发者最需要的一些功能,包括计算渲染、独立渲染对象、间接绘制命令、增强的纹理功能等等,来看下Anandtech网站的一些简单解释。
计算渲染(Compute Shaders)
计算渲染功能是OpenGL
4.3中引入的新功能,这是一种更具弹性的非图形渲染方式,允许开发者在不使用像素渲染的情况下写程序,简单来说计算渲染就是一种通用(非图形用途)编程方式,当然实际上开发者总是混合使用计算渲染及图形渲染以便更高效低实现某些算法。在游戏应用中,AO环境光遮蔽就是一个计算渲染可以发挥作用的例子,而在移动应用中,摄影处理也是计算渲染力有所及的地方。
增强的灵活性不仅是软件开发者能从中受益,OpenGL ES
3.1中其他功能也是如此,这只是提升移动设备图形质量中影响最深远的一个例子。此外,计算渲染功能基于GLSL ES,因此开发者可以很轻松地适应这个变化。
独立渲染对象&渲染语言改进(Separate Shader Objects & Shading Language Improvements)
说到渲染器,OpenGL ES 3.1中还有一些细微的渲染器改进,比如独立渲染对象,现在开发者可以更自由地混合像素渲染及顶点渲染了,打破了此前ES
3.0规范中的渲染管线流程。另外,ES 3.1中还引入了一些新的位字段及算法操作,这样习惯桌面GPU编程的开发者也会更适应。
间接绘制命令(Indirect Draw Commands)
虽然桌面GPU受累于CPU瓶颈更大(所以AMD才提出了Mantle优化),移动处理器就算使用的是SoC集成式设计,不过它们也没好到哪里去。支持间接绘制命令之后,GPU能够更加自给自足一些,那么性能(很可能还有电池续航)也会受益。这个功能可以让GPU自己管理自己的工作,不再一一向CPU提交请求,因此解放了CPU。
发布会上,Khronos还以一个物理模拟场景做了展示。
增强纹理功能(Enhanced Texture Functionality)
最后,ES 3.1中还引入了新的纹理功能,现在已经支持纹理多重采样,这是一种用于AA抗锯齿渲染的技术,也就是模版纹理(stencil
textures)。此外,规范还初步支持了纹理聚集技术,允许采样2x2阵列的纹理,对纹理过滤很有用。
OpenGL ES 3.1目前的状况
OpenGL ES
3.1不是一次大升级,这次发布意味着最终规范已经完成,不过兼容测试工作还在进行中,这主要是面向OEM厂商的,不过对消费者来说,在OEM厂商/IP授权厂商完成测试之前,他们的产品是不能贴上OpenGL
ES 3.1标签的。Khronos表示这个时间是3个月,之后很快就能看到兼容认证的产品出现了。
此外,OpenGL ES 3.1规范主要是现有ES 3.0规范的一个扩展,实际上很多支持ES 3.0规范的硬件已经具备了ES 3.1规范中的功能,Khronos表示很多现有的移动SoC已经是可以支持OpenGL
ES 3.1规范的,厂商不需要发布额外的ES 3.1硬件。
话虽如此,不过现在还不能列出一个清单说明哪些处理器是支持ES 3.1的,不过在官方的声明中,NVIDIA的Kepler架构(指Tegra K1,Tegra
4尚不能完全支持ES 3.0)及Imagination的Rouger(PowerVR 6系列)已经完全支持OpenGL ES 3.1规范。