我尝试使用以下方法编译片段着色器:
#extension ARB_draw_buffers : require
但编译失败,出现以下错误: 扩展' ARB_draw_buffers'不支持
然而,当我通过调用glGetString(GL_EXTENSIONS)或使用OpenGL Extension Viewer来检查这个特定扩展的可用性时,我得到了积极的结果。
OpenGL版本是3.1, 图形卡是Intel HD Graphics 3000。
原因可能是什么?
答案 0 :(得分:0)
此方案中的驱动程序为3.1;目前还不清楚你的目标OpenGL版本是什么。
如果您可以将OpenGL 3.0建立为最低要求版本,则可以使用#version 130
编写着色器并完全避免使用扩展指令。
问题中提到的ARB扩展只适用于那些无法实现OpenGL 3.0所需的所有功能的驱动程序,但是对这一功能提供了必要的硬件支持。
这是它的预期目的,但似乎没有很多驱动程序/硬件组合在实际上存在这个问题。您可能不希望编写支持它们的代码时头疼;)