Khronos 繼去年在 Siggraph 2011 發布 OpenGL 4.2 後,在今年的 Siggraph 2012,果然又發布新的 OpenGL 4.3 的規格了!官方的新聞稿,是《Khronos Releases OpenGL 4.3 Specification with Major Enhancements》,完整的規格也已經可以在 http://www.opengl.org/registry/ 下載了。
而要說這一班最重要的改變是什麼?應該就是 OpenGL 和 DirectX 一樣,也加入了計算用的「Compute Shader」了!以規格書封面的架構圖(右圖)來看,Computer shader 應該也算是獨立於 graphics pipeline 之外的 shader 了~
其他重要的新功能,官方也條列如下:
-
compute shaders that harness GPU parallelism for advanced computation such as image, volume, and geometry processing within the context of the graphics pipeline;
-
shader storage buffer objects that enable vertex, tessellation, geometry, fragment and compute shaders to read and write large amounts of data and pass significant data between shader stages;
-
texture parameter queries to discover actual supported texture parameter limits on the current platform;
-
high quality ETC2 / EAC texture compression as a standard feature, eliminating the need for a different set of textures for each platform;
-
debug capability to receive debugging messages during application development;
-
texture views for interpreting textures in many different ways without duplicating the texture data itself;
-
indirect multi-draw that enables the GPU to compute and store parameters for multiple draw commands in a buffer object and re-use those parameters with one draw command, particularly efficient for rendering many objects with low triangle counts;
-
increased memory security that guarantees that an application cannot read or write outside its own buffers into another application’s data;
-
a multi-application robustness extension that ensures that an application that causes a GPU reset will not affect any other running applications.
另外,這次 Khronos 也同時發布了新的 OpenGL ES 3.0 的規格,希望可以將行動裝置上的圖形顯示帶到下一個層次;官方新聞稿為《Khronos Releases OpenGL ES 3.0 Specification to Bring Mobile 3D Graphics to the Next Level》,詳細的規格資料可以到 http://www.khronos.org/registry/gles/ 下載。官方條列的新功能列表如下:
-
multiple enhancements to the rendering pipeline to enable acceleration of advanced visual effects including: occlusion queries, transform feedback, instanced rendering and support for four or more rendering targets;
-
high quality ETC2 / EAC texture compression as a standard feature, eliminating the need for a different set of textures for each platform;
-
a new version of the GLSL ES shading language with full support for integer and 32-bit floating point operations;
-
greatly enhanced texturing functionality including guaranteed support for floating point textures, 3D textures, depth textures, vertex textures, NPOT textures, R/RG textures, immutable textures, 2D array textures, swizzles, LOD and mip level clamps, seamless cube maps and sampler objects;
-
an extensive set of required, explicitly sized texture and render-buffer formats, reducing implementation variability and making it much ea sier to write portable applications.
額外參考:
最後,這次 nVIDIA 也立刻就推出了支援 OpenGL 4.3 的驅動程式(Windows 版本編號為 305.53),有興趣的人可以到 nVIDIA 的開發者網站下載。而 glew 也很快地,馬上就推出支援 OpenGL 4.3 的 1.9.0 版了~所以如果是使用 nVIDIA 顯示卡的開發者,現在應該已經可以開始測試 OpenGL 4.3 了。