0

私はWPFとDirectXを統合するアプリに取り組んでいます。私の目標は、次の目的で使用する1つの共有サーフェスを作成することです。

  1. 初期画像データをロードします。
  2. DirectX 11 Compute Shadersを実行して、画像処理を行います。
  3. Direct2Dで上に描画します。
  4. 結果をWPFアプリに表示します。

私は1、3、4を理解していると思いますが、2は私に頭痛の種を与えています。私の基本的な問題はこれに要約されます。共有サーフェス形式はB8G8R8A8_UNormWPFとDirect2Dの相互運用用である必要があると思いますが、そのタイプのテクスチャでComputeShaderの順序なしアクセスビューを作成することはできません。

このシナリオでComputeShadersを機能させるにはどうすればよいですか?UAVを作成するためのトリッキーな方法を見逃しましたか?どういうわけか複数のテクスチャを使用するためにアプリを再構築する必要がありますか?

4

1 に答える 1

0

これらのDirectX機能とWPF相互運用機能(D3D9Imageを使用)のフォーマットサポートが制限されているため、これは不可能です。

これらすべての機能間の相互運用を実現する1つの方法は、でほとんどすべてを実行しR8G8B8A8_UNorm、最後にDirect2DをB8G8R8A8_UNorm使用して、WPFとの相互運用に使用されるレンダリングターゲットに結果を書き込むことです。Direct2DはRGB結果をBGRターゲットに書き込むことができるため、非常に簡単です。

于 2013-04-08T15:07:06.623 に答える