GitHub项目地址
屏幕后处理效果即在渲染完场景得到屏幕图像后,再进行处理的效果。
Unity Shader中的Pass是按照顺序执行的,如果需要使用一个Pass的处理结果作为另一个Pass的输入,这个时候就需要用到OnRenderImage()函数了。
径向模糊的原理:
float _BlurFactor; //模糊强度
float2 _BlurCenter; //模糊中心点
//模糊方向: 中心像素 - 当前像素
float2 dir = _BlurCenter.xy - i.uv;
float4 col = 0;
//迭代
for (int j = 0; j < 5; ++j)
{
//计算采样uv值:正常uv值+从中间向边缘逐渐增加的采样距离
float2 uv = i.uv + _BlurFactor * dir * j;
col += tex2D(_MainTex, uv);
}
//取平均值(乘法比除法性能好)
col *= 0.2;
网友评论