统一的sampler2d数组可能吗?

时间:2018-07-09 23:56:33

标签: opengl-es

我试图摆脱碎片着色器中的分支逻辑,所以我尝试说uniform sampler2d texunit[6];,然后使用frag=texture(texunit[id],vtex);访问它,其中id是{{ 1}}(来自顶点着色器)。它运行没有错误,但是没有画任何东西。

Google并没有太大帮助,只是有人说如果在运行时知道索引就可以,但是我不知道它们的含义。

编辑:为了更全面,这里是相关的客户端代码:           glUniform1i(glGetUniformLocation(shaderid,“ texture_unit [0]”,0),0);         等等,只需将0替换为相关ID。

编辑:我按应有的方式工作了。我以前不知道怎么了。但它可以正常工作,sampler2DArray [id]

edit:我确定了起初为什么不起作用的原因:当您选择使用sampler2d或sampler2darray中的哪个索引时,要选择哪个tex单位,那就是唯一可以在碎片着色器中使用的索引。幸运的是,您可以使用变量,但是您不能在其他地方使用文字,否则它将损坏。

0 个答案:

没有答案