【发布时间】:2012-01-19 22:04:09
【问题描述】:
我想将 vec4 的数组作为统一传递给 OpenGL 的片段着色器,这似乎比我希望的要困难得多。到了一个地步,我试图传递一个 GLfloat 数组并在着色器中重建 vec4,但它仍然不起作用
我尝试在 vshader 中声明:
#extension GL_NV_shader_buffer_load : enable
uniform GLfloat* points;
从代码中调用:
glUniform1fv(points, pointsLen*4, points);
认为我以 1 个一组传递浮点数,而我的 vec4 数量是 4 倍。
遗憾的是,这个 vshader 没有将编译传递给 GLSL 程序。
我该如何解决这个问题?通过解决此问题或以完全不同的方式进行:)
【问题讨论】:
-
uniform vec4 positions[50]不起作用吗? -
它确实有效,但我不知道编译时的大小。