1

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

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

4

2 回答 2

1

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

链接向您展示如何在 C# 中使用像素着色器。
这个链接有一个高斯模糊像素着色器。

于 2009-10-09T05:36:18.533 回答
1

它确实需要将您的后缓冲区作为纹理。然后,您可以将整个事物渲染为新纹理并模糊相关部分,然后将半反式窗口放在新纹理上。

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

于 2009-10-09T10:34:27.697 回答