【问题标题】:OpenGL - Difference between ARB and non-ARB functionsOpenGL - ARB 和非 ARB 函数之间的区别
【发布时间】:2014-03-08 11:49:12
【问题描述】:

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

glCompileShaderARB()

glCompileShader()

它们有什么区别?

【问题讨论】:

标签: opengl


【解决方案1】:

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

例如,如果您习惯于看到glGetShaderiv (...)glGetProgramiv (...)glGetObjectParameterivARB (...) 就会彻底混淆。当 GLSL 被提升为核心时,他们拆分了该功能。


glCompileShader (...) 保证在任何实现 OpenGL 2.0+ 的程序中都可用,除非您正在处理古老的 (~2004) 驱动程序,否则您应该始终使用它。所有值得一读的教程都将针对核心 GLSL 编写,学习 ARB 扩展毫无意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2011-06-14
    • 2011-10-20
    相关资源
    最近更新 更多