我有 N 个需要从片段着色器同时访问的纹理单元。N 随加载的数据而变化。所以,在着色器中,我需要类似的东西:
// illegal syntax?
uniform sampler2D tex[N];
此外,OpenGL ES 2.0 似乎不支持 sampler2DArray。
只是想知道是否有任何其他技巧或 GLSL 预处理器构造可以用来实现上述目标。
或者,动态生成着色器代码是更好的选择吗?我可以生成类似下面的代码,并加载着色器:
uniform sampler2D tex1;
...
uniform sampler2D texN;