ARB_draw_buffers可用,但不受shader引擎支持

时间:2015-08-04 11:20:55

标签: opengl

我尝试使用以下方法编译片段着色器:

#extension ARB_draw_buffers : require

但编译失败,出现以下错误: 扩展' ARB_draw_buffers'不支持

然而,当我通过调用glGetString(GL_EXTENSIONS)或使用OpenGL Extension Viewer来检查这个特定扩展的可用性时,我得到了积极的结果。

OpenGL版本是3.1, 图形卡是Intel HD Graphics 3000。

原因可能是什么?

1 个答案:

答案 0 :(得分:0)

此方案中的驱动程序为3.1;目前还不清楚你的目标OpenGL版本是什么。

如果您可以将OpenGL 3.0建立为最低要求版本,则可以使用#version 130编写着色器并完全避免使用扩展指令。

问题中提到的ARB扩展只适用于那些无法实现OpenGL 3.0所需的所有功能的驱动程序,但是对这一功能提供了必要的硬件支持。

这是它的预期目的,但似乎没有很多驱动程序/硬件组合在实际上存在这个问题。您可能不希望编写支持它们的代码时头疼;)