我正在尝试在我的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应该包含非方形矩阵和这种语法的支持。还有另一个问题吗?或者另一种解决为什么我会遇到语法错误的方法?
答案 0 :(得分:1)
如果我放置
#version 120
在我的着色器代码的顶部,问题消失了。根据{{3}}没有版本编译器选项的着色器源将“像以前一样”编译,我想这意味着它们不会。