移动3D图形新规范OpenGL ES 3.0发布的同时,Khronos Group组织也公布了桌面版OpenGL的最新版本4.3,也算是总给这个3D API二十岁生日的最好礼物。
1992年,OpenGL 1.0诞生,此后历经二十年发展,先后衍生了四个世代,功能日渐强大,普及范围也是越来越广。虽然它没有微软DirectX在游戏中那么风光,但也在专业图形等领域成为众多开发者的首选,而且陆续衍生了OpenGL ES、OpenCL、WebGL等一帮同门师兄弟,生态系统日臻完善。
以现在热门的Google Nexus 7平板机为例,OpenGL的三角形输出能力、像素输出能力、浮点计算能力分别已经达到二十年前的103倍、4.3倍、25倍。
OpenGL ARB架构审核委员会制定的OpenGL 4.3规范、GLSL 4.3语言秉承了4.x系列注重计算的特点,并在纹理等各个方面有显著增强,特别是和移动版OpenGL ES之间的关联越来越密切。
主要新功能有:
1、计算着色器,可充分发挥GPU的并行计算能力,在图形管线上下文之内执行各种高级计算。
2、着色器存储缓冲对象,可让顶点、曲面细分、几何、片段、计算着色器读写大量数据,并在着色器不同阶段之间传递大量输出。
3、纹理参数请求,可查询当前平台实际支持的纹理参数限制。
4、高质量ETC2/EAC纹理压缩格式成为一项标准功能,不同平台上不再需要需要不同的纹理集。这一点是和OpenGL ES 3.0相通的。
5、可在应用开发过程中接收debug调试信息。
6、无需复制纹理数据本身,即可以多种不同方式查看解释纹理。
7、间接多点取样,GPU可在一个缓冲对象内为不同取样命令计算和存储参数,并以一个取样命令重新使用这些参数,在渲染三角形数量较低的多个对象时尤其高效。
8、提升内存安全性,确保应用不会在自己的缓冲之外读写内存,影响其它应用的数据。
9、多应用可靠性拓展,一个应用导致GPU重置的时候不会影响其它正在运行的应用。
OpenGL 4.3规范及相关材料下载: http://www.opengl.org/registry
NVIDIA今天也第一时间发布了支持OpenGL 4.3的显卡驱动,版本号Windows 305.53、Linux 304.15.00.02,适用于费米和开普勒架构的GeForce 400/500/600系列桌面显卡、Quadro系列专业显卡。
详情及下载: http://www.nvidia.com/content/devzone/opengl-driver-4.3.html