ここで述べたように、 「必要なすべてのテクスチャをシェーダーのサンプラー配列にバインドし、頂点属性でインデックスを付ける」ことが可能です。バインディングはどうすればいいですか?現在、私は自分のテクスチャを次のようにバインドしています(そもそもそれが正しければ、少なくとも機能します):
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]);