Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
知道怎么做吗?我正在绘制一个应该是半透明窗口的矩形。我设法通过绘制半透明纹理来实现透明度,但我也想模糊窗口下方的任何内容。
通常(例如使用 GDI)我会创建该区域的位图,将其模糊并将其绘制为窗口的背景。使用 Direct3D,我什至不知道如何使用已经渲染的任何内容来获取该区域。或者甚至可以有不同的方法,不是吗。请帮忙。
D3D 方法是使用像素着色器来“模糊”矩形下方的区域。
此链接向您展示如何在 C# 中使用像素着色器。 这个链接有一个高斯模糊像素着色器。
它确实需要将您的后缓冲区作为纹理。然后,您可以将整个事物渲染为新纹理并模糊相关部分,然后将半反式窗口放在新纹理上。
编辑:AFAIK 你不能在着色器中使用 Draw 函数。您将需要编写自己的精灵渲染器。Begin 和 Draw 设置了一整套状态,这些状态会破坏您对顶点着色器的使用。