OpenGL - ARB和非ARB功能之间的差异

时间:2014-03-08 11:49:12

标签: opengl

我知道ARB意味着函数是OpenGL核心的扩展,但是如果GLEW让我能够使用例如:

glCompileShaderARB()

glCompileShader()

他们之间有什么区别?

1 个答案:

答案 0 :(得分:5)

前者只有在您的实施支持GL_ARB_shader_objects时才可用。这个扩展在功能上与核心GLSL不同,在将3D Labs / ARB的原始设计升级到核心之前,有一些小的东西被改变/删除了,当然还有很多功能名称发生了变化。

例如,如果您习惯于看到glGetObjectParameterivARB (...)glGetShaderiv (...),则glGetProgramiv (...)会让您感到非常困惑。当GLSL升级为核心时,他们将该功能分开。

<小时/> glCompileShader (...)保证可以在任何实现OpenGL 2.0+的地方使用,除非你正在处理古代(~2004)驱动程序,否则这是你应该经常使用的。所有值得阅读的教程都将针对核心GLSL编写,学习ARB扩展没有意义。