使用directx11在纹理区域上应用模糊效果

时间:2016-07-08 19:50:42

标签: c#-4.0 directx-11 sharpdx direct3d11

我试图在下图中白框所示的纹理子区域上应用模糊效果。效果不适用于整个纹理。

enter image description here

如何实现这一目标?

有什么建议吗?

注意:通过SharpDx和C#

使用DirectX11

感谢。

1 个答案:

答案 0 :(得分:0)

我已经设法解决了这个问题而没有掩盖,因为现在看起来有点复杂。

我在Pixelshader中通过传递纹理副本并在其上执行操作来实现它。

PixelShader功能:

float4 PSMainBlurEffect(VertexShaderOutput input) : SV_Target
{
 float fBlurAmont = 0.25;
 float Center = 0.5;
 float4 rgbaValue = 0;
 input.TextureUV -= Center;

 for (int i = 0; i < 15; i++)
 {
    float scale = 1.0 + fBlurAmont * (i / 14.0);
    rgbaValue += EffectShaderTexture.Sample(EffectSampler, input.TextureUV * scale + Center);
 }

 rgbaValue /= 15;
 return rgbaValue;
}

希望它对其他人有用。