OpenGL 3.2
发布日期:2009年8月3日
扩展
特性增加
GL_ARB_geometry_shader4
Geometry shaders, input/output interface block
GL_ARB_sync
Fence sync objects
GL_ARB_vertex_array_bgra
D3D compatible color vertex component ordering
GL_ARB_draw_elements_base_vertex
Draw command allowing modification of the base vertex index
GL_ARB_seamless_cube_map
Seamless cube map filtering
GL_ARB_texture_multisample
Multisampled textures andd texture samplers for specific sample locations
GL_ARB_fragment_coord_conventions
Shader fragment coordinate conventions control
GL_ARB_provoking_vertex
Provoking vertex control
GL_ARB_depth_clamp
Fragment depth clamping
这个版本最重磅的支持就是几何着色器(geometry shader), 可以用来生成新的图元类型(点、线和三角形),后期重要的tessellation等技术都会使用到它;还有一个就是Texture正式支持multisample,可以作为render target来进行framebuffer object上的抗锯齿,而不是经过的WGL_ARB_multisample和GLX_ARB_multisample进行窗口的抗锯齿。
OpenGL 3.3
发布日期:2010年3月11日
扩展
特性增加
GL_ARB_blend_func_extended
Dual-source blending
GL_ARB_explicit_attrib_location
Shader-defined locationfor attributes and fragment shader outputs
GL_ARB_occlusion_query2
Simple boolean occlusion query
GL_ARB_sampler_objects
Sampler objects
GL_ARB_texture_swizzle
Texture swizzle
GL_ARB_timer_query
Timer queries
GL_ARB_instanced_arrays
Instanced arrays
GL_ARB_texture_rgb10_a2ui
GL_ARB_vertex_type_2_10_10_10_rev
new texture format for unsigned_10_10_10_2 and new vertex attributes for 2_10_10_10
这个版本是shader model 4.0的OpenGL的最终版本,这个版本改变了程序需要查询输入变量(attribute)的location的方式,可以像HLSL指定semantic一样在shader里指定layout,减少了相应API的调用;同时将texture object和sampler state解耦,增加了sampler object,sampler object也可以绑定到ACTIVE_TEXTURE上了。
OpenGL 4.0
发布日期:2010年3月11日
扩展
特性增加
GL_ARB_tessellation_shader
Tessellation control and evaluation shaders
GL_ARB_texture_query_lod
GL_ARB_gpu_shader5
GL_ARB_gpu_shader_fp64
GL_ARB_texture_gather
GL_ARB_shader_subroutine
OpenGL Shading Language 4.00
GL_ARB_sample_shading
Request minimum number of fragment inputs
GL_ARB_draw_buffers_blend
Individual blend equations for each color output
GL_ARB_draw_indirect
Draw instanced arrays indirect
GL_ARB_transform_feedback2
GL_ARB_transform_feedback3
Transform feedback objects and multiple feedback stream output
这 个版本和OpenGL 3.3同时发布,增加了令人兴奋的Tessellation Shader;Shader Language 4.00的subroutine提供了在运行时刻不需要切换着色器或者是重新编译或者使用if判断选择不同功能的方法,降低了切换着色器程序所带来的巨大 开销(切换着色器的CPU循环消耗真的非常的惊人);另外GL_ARB_draw_buffers_blend让fragment shader输出的每条buffer都可以完成各自的pre-fragment operaion,而不是像过去那样每条都完成相同的pre-fragment operation;GL_ARB_transform_feedback2和GL_ARB_transform_feedback3提供了 transform feedback object,以及transform feedback相关的控制(比如pause之类),也把transform feedback当做一个对象来进行处理。
OpenGL 4.1
发布日期:2010年7月26日
扩展
特性增加
GL_ARB_ES2_compatibility
Pulling missing functionality from OpenGL ES 2.0 into OpenGL
GL_ARB_get_program_binary
Query and load a binary blob for program objects
GL_ARB_separate_shader_objects
Ability to bind programs individually to programmable stages
GL_ARB_viewport_array
Multiple viewports for the same rendering surface, or one per surface
GL_ARB_shader_precision
Documents precision requirements for several FP operaions
GL_ARB_vertex_attrib_64bit
Provoids 64-bit floating-point component vertex shader inputs
这个版本把OpenGL ES的一些功能划入core profile的范围,一方面反映出了OpenGL ES巨大的成功;GL_ARB_get_program_binary提供了可以将shader事先编译好序列化进入二进制文件,避免了运行时进行编译的方法;这个版本也提供了64位的浮点型输入变量,提升了数据精度。
OpenGL 4.2
发布日期:2011年8月8日
扩展
特性增加
GL_ARB_base_instance
Allows instanced rendering with a starting instance value
GL_ARB_compressed_texture_pixel_storage
Allows for sub-rectangle selections when transferring compressed texture data
GL_ARB_conservative_depth
Allos querying of the aligment for pointers returned from buffer object mapping operations
GL_ARB_internalformat_query
Allows the user to detect the maximum number of samples possible for a particular image format and texture type
GL_ARB_map_buffer_alignment
Allows querying of the alignment for pointers returned from buffer object mapping operations
GL_ARB_shading_language_420pack
Allows the setting of Uniform Buffer Object and sampler binding points directly from GLSL, among many other small changes
GL__ARB_texture_storage
Allows texture objects to have immutable storage, and allocating all mipmap levels and images in one call. The storage becomes immutable, but the contents of the storage are not
GL_ARB_transform_feedback_instanced
Allows instanced rendering of data written by transform feedback operations
GL_ARB_shader_atomic_counters
Allows atomically incrementing/decrementing and fetching of buffer object memory locations from shaders
GL_ARB_shader_image_load_store
Allows shaders to read and write images, with few but difficult restrictions
GL_ARB_texture_compression_bptc
Allows the use of certain advanced compression formats
这个版本比较好的改动就是现在也支持Compressed pixel format transfer了,而过去这是不允许的;另外提供了immutable texture,可以调用一次API创建texture object而不是像过去一样要频繁地调用API;还有一个就是GL_ARB_texture_compression_bptc,以及compatibility profile的GL_EXT_texture_compression_s3tc,让OpenGL开始支持所有的Block Compression格式。
OpenGL 4.3
发布日期:2012年8月6日
扩展
特性增加
GL_ARB_arrays_of_arrays
GLSL multidimensional arrays
GL_ARB_clear_buffer_object
Clear Buffer Objects to specific values, ala memset
GL_ARB_compute_shader
Arbitrary Compute Shaders
GL_ARB_copy_image
Arbitrary image copying
GL_KHR_debug/GL_ARB_debug_output
Debug messaging
GL_ARB_ES3_compatibility
Compatibility with OpenGL ES 3.0
GL_ARB_explicit_uniform_location
Specifying uniform locations in a shader
GL_ARB_framebuffer_no_attachments
Rendering to a Framebuffer Object that has no attachments
GL_ARB_internalformat_query2
Generalized queries for information about Image Formats
GL_ARB_invalidate_subdata
Texture, buffer object, and framebuffer invalidation
GL_ARB_multi_draw_indirect
Issuing multiple indirect rendering commands from a single drawing command
GL_ARB_program_interface_query
Improved API for getting info about program object interfaces
GL_ARB_shader_storage_buffer_object
Buffer object read-write access from shader, via a uniform-block style mechanism
GL_ARB_shader_image_size
Get size of images from GLSL
GL_ARB_stencil_texturing
Accessing the stencil values from a depth/stencil texture
GL_ARB_fragment_layer_viewport
Layer and viewport indices available from the fragment shader
GL_ARB_texture_query_levels
GLSL can detect the available mipmap pyramid of a sampler or image
GL_ARB_texture_storage_multisample
Immutable storage for multisample textures
GL_ARB_texture_view
The ability to create a new texture, with a new internal format, that references an existing texture’s storage
GL_ARB_vertex_attrib_binding
Separation of vertex format from buffer object
GL_ARB_robust_buffer_access_behavior
GL_ARB_robustness_isolation
WGL_ARB_robustness_isolation
GLX_ARB_robustness_isolation
More robustness of API
这个版本最重要的增加就是可以用于并行计算的compute shader;GL_ARB_explicit_uniform_location提供了uniform也能在GLSL中像HLSL指定semantic一样指定layout的方法,这个版本的OpenGL的vertex shader input和fragment shader output,以及uniform现在都能在shader中指定layout了;把OpenGL ES 3的某些功能加入了OpenGL core profile;增加了texture view的概念,用来共享已经创建纹理的内容;另外加入的debug messaging帮助程序猿更好的调试OpenGL。
OpenGL 4.4
发布日期:2013年7月23日
扩展
特性增加
GL_ARB_buffer_storage
Allows buffer objects to have immutable storage, and allocating all data in one call.
GL_ARB_clear_texture
Clear texture Objects to specific values.
GL_ARB_enhanced_layouts
Add more functionality to layout qualifiers in OpenGL Shading Language.
GL_ARB_multi_bind
Allowing applications to bind or unbind a set of objects in one call.
GL_ARB_query_buffer_object
Introduces a mechanism whereby the result of a query object may be retrieved into a buffer object instead of client memory.
GL_ARB_texture_mirror_clamp_to_edge
Extends the set of texture warp mdes to include an additional mode that effectively uses a texture map twice as large as the original image in which the additional half of the new image is a mirror image of the original image.
GL_ARB_texture_stencil8
Accept STENCIL_INDEX8 as a texture internal format.
GL_ARB_vertex_type_10f_11f_11f_rev
New vertex attribute data format.
GL_ARB_bindless_texture
Shader can access texture objects by handles directly.
GL_ARB_compute_variable_group_size
Allows application to write generic compute shader that operate on work groups with arbitrary dimensions.
GL_ARB_indirect_parameters
Add “parameter buffer” which is a target allowing buffers to store parameters for certain drawing commands.
GL_ARB_seamless_cube_texture_per_texture
Allow a implementation to provide a per-texture setting for enabling seamless sampling from cube maps.
GL_ARB_shader_draw_parameters
Add a built-in variable gl_DrawID in OpenGL Shading Language.
GL_ARB_shader_group_vote
Add new built-in functions to compute the cmpoite of a set of boolean conditions across a group of shader invocations.
GL_ARB_sparase_texture
Allows the separation of the graphics processors address space from the requirement that all textures must be physically backed.