正如这里提到的,可以“将您需要的所有纹理绑定到着色器中的采样器数组,然后使用顶点属性对其进行索引”。我将如何进行绑定?目前我像这样绑定我的纹理(如果这首先是正确的;它至少有效):
sampler[i] = gl.getUniformLocation(program, "u_sampler" + i);
...
for (var i = 0, len = textures.length; i < len; i++) {
gl.activeTexture(gl.TEXTURE0 + i);
gl.bindTexture(gl.TEXTURE_2D, textures[i]);
gl.uniform1i(sampler[i], i);
}
现在要绑定一组采样器,我会扔掉activeTexture
并bindTexture
使用这样的东西吗?
gl.uniform1iv(sampler, [0,...,len-1]);