私は WebGL (≈ OpenGL ES 2.0) を使用しています。現在、私のアプリケーションではテクスチャ ユニット 0 をモデルごとのテクスチャとして使用し、1 と 2 をシェーダーが使用する定数テクスチャとして使用しています。
テクスチャをロードしてセットアップするには、
var texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(...);
gl.texParameteri(...);
ただし、これは、現在のテクスチャ ユニットにバインドされているテクスチャの状態を踏みにじります。このプログラムを回避するために、追加しました
gl.activeTexture(gl.TEXTURE0);
ジオメトリを描画する前にリセットされるテクスチャ ユニット 0 のバインディングにのみ影響するように、上記のコードの先頭に追加します。
たまたま「スクラッチ」テクスチャ ユニットを利用できるようにする必要のない、より良いアプローチはありますか? この状態管理の問題に対する確立されたベスト プラクティスはありますか?