在Mac上设置GLSL版本

5

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

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

感谢您的帮助。
1个回答

5

虽然我没有Mac的经验,但是您可以通过使用类似以下代码指定所需着色器的最低版本(默认为1.10):

#version 120      //shader requires version 1.20

你的着色器中第一行应该是 #version 指定的版本。当然,指定的版本也必须得被您的硬件和驱动程序所支持,您可以通过 glGetString(GL_SHADING_LANGUAGE_VERSION) 来进行检查。

编辑:我查看了 GLSL 规范并确认了这一点,规范还说所有被链接在一起的着色器都应该针对同一个版本,虽然我很确定我曾经成功地违反了这个规定,但这可能是由于我的宽容的 nVidia 驱动程序。所以如果链接时仍然出错,请在顶点着色器中加入相同的 #version 标签。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接