在Mac上设置GLSL版本

Tay*_*orP 5 opengl macos glsl

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

'array of 3-component vector of float' : array type not supported here in glsl < 120 
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

Chr*_*ica 5

虽然我没有Mac经验,但您可以使用类似的东西指定着色器所需的最低版本(我认为默认为1.10)

#version 120      //shader requires version 1.20
Run Code Online (Sandbox Code Playgroud)

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

编辑:我通过查看GLSL规范证实了这一点,该规范还说所有链接在一起的着色器应该针对相同的版本,虽然我很确定我自己曾经成功地违反了这个,但这可能是由于我宽恕nVidia司机.因此,如果链接时仍然抱怨,也可以将相同的#version标记添加到顶点着色器中.