2011-08-28 121 views
5

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

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

感谢您的帮助。

回答

5

虽然我没有的Mac体验,你可以像

#version 120  //shader requires version 1.20 

指定要使用的东西着色器的最低要求的版本(这是1.10默认情况下,我认为)在着色器第一道防线。但是当然,指定的版本也必须由您的硬件和驱动程序支持,您可以使用glGetString(GL_SHADING_LANGUAGE_VERSION)进行检查。

编辑:我证实了这一起来看看吧到GLSL规范,这也表示,连接在一起的所有着色器应针对同一版本,但我敢肯定我自己也曾经成功地违反了这一点,但这可能是由于我宽容的nVidia驱动程序。因此,如果在链接时仍然抱怨,那么也可以在顶点着色器中添加相同的#version标签。

+0

谢谢,这正是我需要的。它似乎运作良好。 – TaylorP