2017-02-20 9 views
0

タイプDXGI_FORMAT_R32G32B32A32_TYPELESSのID3D11Texture2DテクスチャをDXGI_FORMAT_B8G8R8A8_TYPELESSタイプのテクスチャ(または他の32ビットRGBAタイプ)に効率的に変換する必要があります。基本的にピクセルテクスチャあたり128ビットをピクセル当たり32ビットに減らす。 ID3D11DeviceContext :: CopyResource-methodはそのようなフォーマット変換を処理できないようです。私はそれを達成するためにシェーダを使うべきですか?はいの場合は、シェーダをCopyResourceメソッドで使用できますか、または完全なレンダリングパイプラインを設定する必要はありますか? CPU上で変換を試みましたが、遅すぎます。DXGIフォーマット間のRGBAデータの変換

答えて

1

GPUを使用してソースフォーマットテクスチャの「フルスクリーンクワッド」をターゲットフォーマットのレンダリングターゲットにレンダリングするために、これらの変換を行う最も速い方法です。制限は、レンダーターゲットフォーマットがサポートされているDirect3Dハードウェアフィーチャレベルに基づいています。たとえば、最新のドライバを搭載したすべての機能レベルでは、レンダリングターゲットとしてDXGI_FORMAT_B8G8R8A8_UNORMがサポートされていますが、DXGI_FORMAT_B8G8R8A8_SNORMではサポートされていない可能性があります。

DirectXTexを参照して、すべての可能なDXGIフォーマット変換のためのCPUベースのフォールバックMSDNDirect3D Feature Levels

を参照してください。

関連する問題