我知道ARB意味着函数是OpenGL核心的扩展,但是如果GLEW让我能够使用例如:
glCompileShaderARB()
Run Code Online (Sandbox Code Playgroud)
和
glCompileShader()
Run Code Online (Sandbox Code Playgroud)
他们之间有什么区别?
前者只有在您的实现支持时才可用GL_ARB_shader_objects.此扩展在功能上与核心GLSL不同,在将3D Labs/ARB的原始设计升级为核心之前,有一些小的东西被更改/删除,当然还有很多功能名称已更改.
例如,glGetObjectParameterivARB (...)如果你习惯于看到glGetShaderiv (...)和完全混淆glGetProgramiv (...).当GLSL升级为核心时,他们将该功能分开.
glCompileShader (...)保证可用于任何实现OpenGL 2.0+的东西,这是你应该经常使用的东西,除非你正在处理古代(〜2004)的驱动程序.所有值得阅读的教程都将针对核心GLSL编写,学习ARB扩展没有意义.
| 归档时间: |
|
| 查看次数: |
1090 次 |
| 最近记录: |