1

それを行う方法はありますか?半透明のウィンドウであるはずの長方形を描いています。半透明のテクスチャを描画することで透明にすることができましたが、ウィンドウの下にあるものは何でもぼかしたいと思っています。

通常 (例: GDI を使用)、領域のビットマップを作成し、それをぼかして、ウィンドウの背景としてペイントします。Direct3D では、既にレンダリングされている領域を取得する方法さえわかりません。あるいは、別のアプローチがあるかもしれませんね。助けてください。

4

2 に答える 2

1

D3D の方法は、ピクセル シェーダーを使用して、rect の下の領域を「ぼかし」ます。

このリンクは、C# でピクセル シェーダーを使用する方法を示しています。
そして、このリンクにはガウスぼかしピクセル シェーダーがあります。

于 2009-10-09T05:36:18.533 に答える
1

バックバッファをテクスチャとして持つ必要があります。次に、全体を新しいテクスチャにレンダリングし、関連する部分をぼかしてから、セミトランス ウィンドウを新しいテクスチャの上に置きます。

編集:知る限り、シェーダー内で Draw 関数を使用することはできません。独自のスプライト レンダラーを作成する必要があります。Begin と Draw は、頂点シェーダーの使用を妨げる状態の負荷全体を設定します。

于 2009-10-09T10:34:27.697 に答える