关于Using OpenGL extensions上的这个问题,这些扩展功能的目的是什么?我为什么要使用它们?此外,是否存在与使用它们相关的权衡或陷阱?

最佳答案

OpenGL标准允许各个供应商在创建新技术时通过扩展提供附加功能。扩展可能会引入新功能和新常量,并且可能会放宽或删除对现有OpenGL函数的限制。

每个供应商都有一个字母缩写,用于命名其新功能和常量。例如,NVIDIA的缩写(NV)用于定义其专有函数glCombinerParameterfvNV()和其常量GL_NORMAL_MAP_NV。

可能有多个供应商同意实施相同的扩展功能。在那种情况下,使用缩写EXT。架构审查委员会可能会进一步“祝福”该扩展。然后,它被称为标准扩展名,并使用缩写ARB。第一个ARB扩展是GL_ARB_multitexture,在版本1.2.1中引入。遵循官方扩展促进路径,多重纹理不再是可选实现的ARB扩展,而是自1.3版以来已成为OpenGL核心API的一部分。

在使用扩展之前,程序必须首先确定其可用性,然后获取指向扩展定义的任何新功能的指针。这样做的机制是特定于平台的,并且存在诸如GLEW和GLEE之类的库来简化过程。

关于opengl - 什么是OpenGL扩展,使用它们有什么好处/缺点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17352/

10-14 18:37
查看更多