Unity Shader屏幕后处理高斯模糊
原理 利用卷积计算,使用的卷积核叫高斯核 使用一个N x N的高斯核对图像进行卷积滤波,就需要N x N x W x H次纹理采样,当N的大小不断增加时,采样次数会变得非常巨大,不过我们可以把这个二维高斯函数拆分成两个一维函数. 得到的结果是一样的。 实现 我们会先后调用两个Pass,第一个Pass使用竖直方向的一维高斯核进行滤波,第二个Pass使用水平方向的一维高斯核,得到最终的目标图像. 首先,创建一个脚本: public class GaussianBlur : PostEffectsBase 声明需要的Shader,并创建相应的材质: public Shader gaussianBlurShader ; private Material gaussianBlurMaterial = null ; public Material material { get { gaussianBlurMaterial = CheckShaderAndCreateMaterial ( gaussianBlurShader , gaussianBlurMaterial ) ; return gaussianBlurMaterial ; } } 然后提供调整高斯模糊迭代次数、模糊范围、缩放系数的参数: [ Range ( 0 , 4 ) ] public int iterations = 3 ;