在Mac上设置GLSL版本

时间:2011-08-28 22:41:32

标签: macos opengl glsl

如何在Mac上设置GLSL版本?这甚至可能吗?我正在运行片段着色器并想创建一个vec3数组,但着色器编译器产生一个错误,表明我需要使用更高的GLSL版本。具体错误是

'array of 3-component vector of float' : array type not supported here in glsl < 120 

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

虽然我没有Mac经验,但您可以使用类似

之类的内容指定着色器所需的最低版本(我认为默认为1.10)
#version 120      //shader requires version 1.20

作为着色器中的第一行。但是,当然您的硬件和驱动程序也必须支持指定的版本,您可以使用glGetString(GL_SHADING_LANGUAGE_VERSION)进行检查。

编辑:我通过查看GLSL规范确认了这一点,该规范还说明所有连接在一起的着色器都应针对同一版本,尽管我很确定自己曾经成功过违反了这一点,但这可能是由于我宽容的nVidia驱动程序。因此,如果链接时仍然抱怨,请将相同的#version标记添加到顶点着色器。