原理部分详见:高品质后处理:十种图像模糊算法的总结与实现 - 知乎
这里只做一下Shader效果复现。
一、方框模糊(Box Blur)
Shader部分:构建卷积核,进行单次卷积运算
sampler2D _MainTex;
//Unity获取纹素大小参数
//x = 1.0/width, y = 1.0/height, z = width, w = height
float4 _MainTex_TexelSize;
float _BlurOffset;
half4 frag_BoxFilter_4Tap (v2f_img i) : SV_Target
{
half4 sum = 0;
//使用2×2卷积核
sum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2(1, 1) * _BlurOffset);
sum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2(1, -1) * _BlurOffset);
sum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2(-1, 1) * _BlurOffset);
sum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2(-1, -1) * _BlurOffset);
sum *= 0.25;
return sum;
}
half4 frag_Bo