ハンドル欲しいMobile系、Direct3DやShaderなどについて書いています。レンダリングは、入力と出力に同じものを指定することができません。少々厳密すぎる気もしますが、自己レンダリングは動作結果を保障できないので当たり前といえば当たり前です。親切に教えてくれます。判定が厳密すぎるために少々問題になることもあります。例として、テクスチャへのレンダリングを考えてみます。作成してあるものとします。参照していると思ってください。入力するテクスチャを意味しています。キャッシュしておきます。->AsShaderResource();描画時のセットアップを次のようにします。Resource[1]を更新することができます。Resource[0]その直後に、今度は入力と出力を入れ替えてレンダリングします。して登録されています。入力テクスチャとして設定することができません。ステートをクリアしておくか別のターゲットを登録して参照をはずす必要があります。登録ができなくなります。->GetPassByIndex(0)->Apply(0);このステート設定順の問題は以前のエントリでも触れました。使うとこれらのリソース参照をいっぺんにはずすことができます。ClearStateただし必要なものまで全部解除されてしまうので効率は悪くなります。使って描画していると、このリソースの衝突がどうしても発生してしまうことがあります。プログラムコード上は正しくてもうまくいかず、それだけでは原因がわからないのです。入力テクスチャとして参照し、一旦描画しています。使って描画しようとしています。フリーになったように見えます。衝突してしまう可能性があります。異なっているということです。上では同一の変数&インターフェースとしてリソース登録ができるものの、書き換えられる場所はシェーダーによって違うからです。両方で参照しているかもしれません。