如何在DirectX中实现高斯模糊?

时间:2017-04-30 23:28:55

标签: c++ directx

我在游戏中渲染了一个部分透明的矩形(d3d9)(最终成为GUI的一部分),我想模糊这个矩形背后的内容。我理解最好的方法是使用着色器,但这基本上就是我所知道的程度。我发现的许多实现看起来都比我应该要复杂得多,或者它们模糊了图像,而我模糊了已经绘制过的东西。类似的问题已经被问到here C#,但收到了相当含糊的答案。

1 个答案:

答案 0 :(得分:0)

不是将想要模糊的对象绘制到屏幕上,而是将它们绘制为绑定为渲染目标的纹理。然后,将该纹理绑定到计算着色器,并将模糊结果保存在其他纹理中。然后你可以将模糊的最终结果绘制成一个“全屏四边形”,基本上是一个覆盖整个屏幕的2d矩形,并在其上有你的场景纹理。 This article是从2003开始的,所以源代码可能没有用,但它涵盖了基本思想。