新起点:OpenGL ES 3.0和OpenGL 4.3
SIGGRAPH 2012专业图形大会在洛杉矶开幕第一天,Khronos Group组织就做出了多项重要宣布,其中最焦点的当属新一代移动3D图形标准规范“OpenGL ES 3.0”。
OpenGL ES 3.0汲取了桌面版规范OpenGL 3.3/4.2的不少营养,为这项免费开放的3D图形API带来了大量显著的功能性和移动性增强,同时向下兼容已有的OpenGL ES 2.0。
OpenGL ES 3.0主要新功能有:
1、渲染管线多重增强,实现先进视觉效果的加速,包括遮挡查询(Occlusion Query)、变缓反馈(Transform Feedback)、实例渲染(Instanced Rendering)、四个或更多渲染目标支持。
2、高质量ETC2/EAC纹理压缩格式成为一项标准功能,不同平台上不再需要需要不同的纹理集。
3、新版GLSL ES 3.0着色语言,全面支持整数和32位浮点操作。
4、纹理功能大幅增强,支持浮点纹理、3D纹理、深度纹理、顶点纹理、NPOT纹理、R/RG单双通道纹理、不可变纹理、2D阵列纹理、无二次幂限制纹理、阴影对比、调配(swizzle)、LOD与mip level clamps、无缝立方体贴图、采样对象、纹理MSAA抗锯齿渲染器。
5、一系列广泛的精确尺寸纹理和渲染缓冲格式,便携移动应用更简单。
OpenGL ES工作组会在六个月内更新OpenGL ES采纳者项目,提供广泛的兼容性测试,并提供相关源代码。
2D/3D图形知识产权IP提供商Digital Media Professionals Inc. (DMP)也同时宣布,其基于可扩展SMAPH-S着色器的图形IP产品系列也已支持OpenGL ES 3.0。
OpenGL ES 3.0规范及相关材料下载:http://www.khronos.org/registry/gles/
3.0版本的OpenGL ES在OpenGL 3.x 和 4.x的基础上增加了许多新的功能,比如着色器的功能变得更加强大、全面支持32位整数和浮点型数据。
OpenGL ES 3.0可以让GPU处理更复杂的纹理,如任意尺寸的纹理、浮点纹理等。其中最重要的就是新的纹理算法带来了更好的纹理压缩表现(包括ETC2和EAC标准),以及一些像Instance Rendering、Occlusion Queries、Transform Feedback这样的新的硬件加速特性。
这些更新为OpenGL ES的移动开发人员带来很大的便利,之前很多开发人员都会在APK中为不同设备创建不同的textures,但现在他们可以在移动端和桌面端使用相同的组件。由于压缩方法有所改进,现在的压缩包比起以前小了很多,在提升应用程序下载速度的同时,也降低了内存的占用空间。
即使新增了如此多的功能,OpenGL在性能上还是稍稍落后Direct3D 10和Open GL 3.2,其中最大的缺陷是OpenGL ES 3.0不支持几何渲染,这些几何渲染可以生成新的线条和轮廓,使得曲面更加细分:选择一个现有的图形,加入新的线条,让曲线变得更加顺滑,整个图形看起来会更加美观。
OpenGL 4.3
除了OpenGL ES 3.0,Khronos 集团也在桌面端推出了OpenGL 4.3,新版标准不仅带来了更好的图形表现,同时也增加了更多之前没有的效果,比如不同类型的模糊效果。此外,开发者还可以不通过OpenCL直接使用OpenGL技巧来使用运算着色器(compute shaders)释放GPU上的任务。这样开发者可以在游戏中不耗用更多CPU功耗的情况下实现更好的物理和人工智能的模拟。
从当前的现状来看,Open GL仍然是唯一能够取代微软对3D图形技术的完全控制的API。它仍然具有一定的生命力,但是Silicon Graphics已经不再以任何让微软不悦的方式推广Open GL,因而它存在较高的风险。游戏开发人员是一个有着独立思想的群体,很多重要的开发人员目前仍然在使用Open GL。因此,硬件开发商正在设法加强对它的支持。Direct3D目前还不能支持高端的图形设备和专业应用; Open GL在这些领域占据着统治地位。
最后通过一张图来简略回顾下OpenGL 20年的风雨历程:
以NVIDIA公司于2012年3月22日发布的新一代Kepler架构显卡GeForce GTX 680为例,OpenGL的三角形输出能力、像素输出能力、浮点计算能力已经分别达到20前的1800倍、60倍、4830倍。
PS:关于OpenGL,我们所熟悉的李开复老师在SGI工作的时候就主持过基于OpenGL的多媒体应用的研究,当时开老师曾经希望说服微软采用OpenGL,但最终微软却用自己的亲儿子Direct 3D替代OpenGL。DirectX与OpenGL的战争由此展开。一开始OpenGL有着较大的优势,但自从2001年微软推出DirectX 8,并引入了两项对于整个电脑绘图界来说极为重要的创新与变革Vertex Shader 以及Pixel Shader后形势开始逆转,DirectX 9的推出更是让DirectX开始领先。然而就在数天前,著名游戏开放商Valve发布了一条消息重提当年恩怨,称即便在Windows环境这个主场,Direct X的表现也不如OpenGL。