我知道ARB意味着该函数是OpenGL核心的扩展,但是如果GLEW使我能够使用例如:
glCompileShaderARB()和
glCompileShader()他们之间有什么区别?
发布于 2014-03-08 14:09:59
前者只有在您的实现支持GL_ARB_shader_objects的情况下才可用。这个扩展在功能上与核心GLSL不一样,在升级到核心之前,3D Labs/ARB的原始设计中有一些小的东西被更改/删除,当然还有很多函数名被更改了。
例如,如果您习惯于看到glGetShaderiv (...)和glGetProgramiv (...),那么glGetShaderiv (...)就会非常混乱。当GLSL被提升到核心时,他们就把这个功能分开了。
glCompileShader (...)保证在实现OpenGL 2.0+的任何东西中都是可用的,除非您正在处理古老的(~2004年)驱动程序,否则应该始终使用它。所有值得阅读的教程都是针对GLSL核心编写的,没有必要学习ARB扩展。
https://stackoverflow.com/questions/22268926
复制相似问题