我理解OpenGL 4和3非常相似,特别是3.1和4.1。它们基本上一起发布,很难理解OpenGL 4.0/4.1的原因。
在以前的OpenGL版本中,次要版本逐渐增加,直到积累了足够的变化形成一个新的主要版本。OpenGL 3.x和4.x引入了不兼容的API更改,而OpenGL 3.2和3.3被认为是不向前兼容的3系列的分支,而3.1与4.1+兼容。
与OpenGL 3.1相比,OpenGL 4.1提供了哪些关键差异,使其被归类为一个新的主要版本?
额外信息:根据答案得出的一些额外发现
OpenGL 3.3是为了补充OpenGL 4.0而设计的,以将尽可能多的功能纳入旧硬件中。在OpenGL 3和4之间进行选择时,有时候选择3.3可能更好。但 OpenGL 4.1增加了GL ES 2.0兼容性和一些很好的功能。
其中一个更大的工作流差异是通过新的镶嵌着色器在管线中添加了GPU编程步骤。另一个是多视口渲染。我相信新的细节级别功能会改变我的工作流程,也可能会影响其他人,尽管我没有深入研究过这个功能。
请让我知道是否有任何误解或需要改进的地方。
附录 G - K 包括 OpenGL 3.1 功能到 OpenGL 4.1 功能
Khronos Group 发布了 OpenGL 4.0,可能会“更易读”:)
- 采样器对象 (Sampler Objects)
- 实例化数组和着色器 (Instanced Arrays and Shaders)
纹理立方体图数组和纹理采样 (texture_cube_map_array and texture_gather)
GLSL 4.0 和 动态 LOD
- 着色器子例程 (shader_subroutine) 和 采样阴影 (sample_shading)
- 独立着色器对象 (separate_shader_objects)
- 增加了 纹理/渲染缓冲区 的必需大小
- 64 位浮点型 顶点属性
- get_program_binary
- +2 镶嵌着色器 (Tesselation shaders)