Direct3d / C# - 在精灵上绘制的矩形下的模糊区域

时间:2009-10-09 05:32:45

标签: c# directx direct3d sprite blur

知道怎么做吗?我正在绘制一个应该是半透明窗口的矩形。我设法通过绘制半透明纹理来做透明度,但我也想模糊窗口下的任何东西。

通常(例如使用GDI)我会创建该区域的位图,将其模糊并将其绘制为窗口的背景。使用Direct3D,我甚至不知道如何使用已经渲染的区域来获取该区域。或者甚至可以采用不同的方法,不可以。请帮忙。

2 个答案:

答案 0 :(得分:1)

D3D的方法是使用像素着色器“模糊”矩形下方的区域。

This链接显示了如何在C#中使用像素着色器 And this链接有一个guassian模糊像素着色器。

答案 1 :(得分:1)

它需要将你的后备缓冲器作为纹理。然后,您可以将整个事物渲染为新纹理,并在将半透视窗口放在新纹理上之前模糊相关部分。

编辑:AFAIK你不能在着色器中使用Draw功能。您需要编写自己的精灵渲染器。 Begin和Draw设置了一整套状态,这些状态将破坏你对顶点着色器的使用。