2

常に変化するデータをピクセル シェーダーに伝達する必要があります。テクスチャ パラメータを介してピクセル シェーダに渡す texture2d があります。シェーダーを呼び出す前に、テクスチャのデータを更新する必要があります。

        emittingPositions.SetData(emittingPositionsBuffer); //Set the data on the texture
        animationEffect.Parameters["emittersMap"].SetValue(emittingPositions); //Tell the shader about the texture data
        //go on to do the actual drawing calls to use the pixel shader

問題は、これを行うと例外が発生することです。

「リソースが GraphicsDevice でアクティブに設定されている間は、そのリソースで SetData を呼び出すことはできません。SetData を呼び出す前に、デバイスから設定を解除してください。」

「デバイスから設定解除」するにはどうすればよいですか? それとも、ここで別のアプローチをとるべきですか?

4

1 に答える 1

5

最初のテクスチャは、GraphicsDevice.Textures 配列にインデックス 0 で設定されます。

だからあなたはこれをしなければなりません:

 GraphicsDevice.Textures[0] = null;
于 2011-11-16T20:54:49.547 に答える