标签: c# directx direct3d sprite blur
知道怎么做吗?我正在绘制一个应该是半透明窗口的矩形。我设法通过绘制半透明纹理来做透明度,但我也想模糊窗口下的任何东西。
通常(例如使用GDI)我会创建该区域的位图,将其模糊并将其绘制为窗口的背景。使用Direct3D,我甚至不知道如何使用已经渲染的区域来获取该区域。或者甚至可以采用不同的方法,不可以。请帮忙。
答案 0 :(得分:1)
D3D的方法是使用像素着色器“模糊”矩形下方的区域。
This链接显示了如何在C#中使用像素着色器 And this链接有一个guassian模糊像素着色器。
答案 1 :(得分:1)
它需要将你的后备缓冲器作为纹理。然后,您可以将整个事物渲染为新纹理,并在将半透视窗口放在新纹理上之前模糊相关部分。
编辑:AFAIK你不能在着色器中使用Draw功能。您需要编写自己的精灵渲染器。 Begin和Draw设置了一整套状态,这些状态将破坏你对顶点着色器的使用。