UE4 一维高斯模糊

材质结构:

GaussianBlur :

static const int SceneTextureId = 14;
float2 TexelSize = View.ViewSizeAndInvSize.zw;
float2 UV = GetDefaultSceneTextureUV(Parameters, SceneTextureId);
float3 PixelSum = float3(0, 0, 0);
float WeightSum = 0;
for (int x = -Radius; x <= Radius; x++)
{
    for (int y = -Radius; y <= Radius; y++)
    {
        float2 Offset = float2(x, y) * TexelSize;
        float3 PixelColor = SceneTextureLookup(UV + Offset, 14, 0).rgb;
        float Weight = Calculate1DGaussian(x / Radius) * Calculate1DGaussian(y / Radius);
        PixelSum += PixelColor * Weight;
        WeightSum += Weight;
    }
}
return PixelSum / WeightSum;                    

Radius:8

Radius:1

猜你喜欢

转载自blog.csdn.net/sh15285118586/article/details/123315732