これはSwitch shader program in WebGLに関連していますが、私は問題を再確認したいと思っています。glUseProgramの後に失われ/リセットされる状態は?
私は別のシェーダプログラムを切り替えようとしていますが、同じレンダリングでシェーダプログラムを切り替えると正しく表示されないようです。 glUseProgram()
に電話した後に状態が失われたりリセットされたりしたと思います。
呼び出し後に失われたりリセットされた状態は?つまり、glUseProgram()
の後に再度バインドする必要はありますか?
アドバイスをいただきありがとうございますが、私はより一般的なアドバイスを求めていました。私はユニフォームを再度設定する必要がありますか、その価値を維持していますか?属性または均一な場所は、与えられた1つのプログラムに対してその値を保持しますか?テクスチャを再度有効にする必要がありますか?等々。 – AshleysBrain
Attribの場所と実際の均一な場所と値は、プログラムがリンクされた後も保持されます。しかし、統一バッファは、より多くのプログラムにバインドすることができます。固定機能のパイプラインを使用していないため、テクスチャを再度有効にする必要はありません。 – Sam
テクスチャユニットには複数のアタッチメントポイントがあります。たとえば、2Dテクスチャと3Dテクスチャをバインドし、適切なサンプラユニフォームを使用してそのいずれかにアクセスできます。 – Sam