在GLSL着色器中支持非平方矩阵需要什么?

时间:2011-09-26 20:35:13

标签: macos opengl glsl shader gpu

我正在尝试在我的GLSL着色器中使用非方形矩阵,但是当我编译时出现语法错误。

我的着色器代码使用:

uniform mat4 my_mat;

编译得很好。

但如果我把它改为:

uniform mat4x3 my_mat;

我得到了

ERROR: 0:5: 'mat4x3' : syntax error syntax error

我的

有类似的错误
uniform mat4x4 my_mat;

如果我打印GL_VERSION和GL_SHADING_LANGUAGE_VERSION,我会得到: GL_VERSION:2.1 NVIDIA-1.6.36 GL_SHADING_LANGUAGE_VERSION:1.20

我正在Mac OS X 10.6 MacBook Pro上编译和运行我的OpenGL。根据{{​​3}}和其他人的说法,GLSL 1.20和GL 2.1应该包含非方形矩阵和这种语法的支持。还有另一个问题吗?或者另一种解决为什么我会遇到语法错误的方法?

1 个答案:

答案 0 :(得分:1)

如果我放置

#version 120

在我的着色器代码的顶部,问题消失了。根据{{​​3}}没有版本编译器选项的着色器源将“像以前一样”编译,我想这意味着它们不会。