【发布时间】:2025-12-20 01:10:12
【问题描述】:
我知道 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 提供了哪些关键差异以保证它被归类为新的主要版本?
奖励:是否有任何差异在任何情况下都比 GL3 提供了性能提升,或者只是可访问性?
编辑:基于答案的一些额外发现
OpenGL 3.3 是对 OpenGL 4.0 的补充,将尽可能多的功能整合到旧硬件中。在 OpenGL 3 和 4 之间进行选择,3.3 可能是更好的选择有时。然而,4.1 增加了 GL ES 2.0 兼容性和一些不错的功能。
更大的工作流程差异之一是通过新的曲面细分着色器在管道中添加 GPU 编程步骤。另一个是要渲染到的多个视口。 我相信新的详细程度功能会改变我正在使用的工作流程,也许还会改变其他很多,尽管我没有深入研究过这个功能。
如果您发现任何误解或需要改进的地方,请告诉我。
主题演讲(在 meta 上提问时,显然已从答案中删除。. 临时参考实际答案是什么。)
Appendix G - K For OpenGL 3.1 features through OpenGL 4.1 features
Khronos Group Release Of OpenGL 4.0 可能“更容易阅读”:)
- 采样器对象
- 实例化数组和着色器
texture_cube_map_array 和 texture_gather
GLSL 4.0 和 动态 LOD
- shader_subroutine 和 sample_shading
- separate_shader_objects
- 增加纹理/渲染缓冲区所需的大小
- 64 位浮点数 顶点属性
- get_program_binary
- +2 镶嵌着色器
【问题讨论】:
-
那里有很多问题,每个问题都可能需要更深入的答案。但是,是的,如果以正确的方式使用,我会说这些是相当关键的性能提升器
标签: opengl 3d performance opengl-3 opengl-4