我正在尝试将数组传递给片段着色器:
//c++ code
float filter[9] = {-1.0f,-1.0f,-1.0f, -1.0f,9.0f,-1.0f, -1.0f,-1.0f,-1.0f};
glUniform1fv(glGetUniformLocation(imageShaderId, "filter"), 9, filter);
//inside fragment shader code
uniform float filter[9]; //global
if(filter[0]==-1.0) gl_FragColor = red;//in main()
这对我不起作用..我看过很多例子,似乎都指向我的代码是正确的?我可以使用 glUniform1f 传递单个变量 float 而不会出现问题,但不能传递数组。有人可以指出我正确的方向吗?