高品质后处理渲染技术分享:十种图像模糊算法的总结与实现(12)
这里也有另一个版本的实现:
https://github.com/QianMo/X-PostProcessing-Library/tree/master/Assets/X-PostProcessing/Effects/IrisBlur
对模糊半径(Blur Radius)参数的调节 , 可以用于控制光圈Bokeh半径的变化:
文章图片
同样 , 调节区域尺寸(Area Size)可以控制光圈模糊区域的变化:
文章图片
八、粒状模糊(Grainy Blur)
粒状模糊(Grainy Blur)是一种低成本的模糊方法 , 在单pass下即可有合适的模糊表现 , 性能出色 , 且其模糊质感有点类似在画面上蒙了一层细碎的冰霜 。
文章图片
其思路是基于随机uv进行采样的抖动 , 以对粗粒度的模糊进行模拟 。 核心算法的Shader实现如下:
float Rand(float2 n)
{
return sin(dot(n, half2(1233.224, 1743.335)));
}
half4 GrainyBlur(VaryingsDefault i)
{
half2 randomOffset = float2(0.0, 0.0);
half4 finalColor = half4(0.0, 0.0, 0.0, 0.0);
float random = Rand(i.texcoord);
for (int k = 0; k < int(_Iteration); k ++)
{
random = frac(43758.5453 * random + 0.61432);;
randomOffset.x = (random - 0.5) * 2.0;
random = frac(43758.5453 * random + 0.61432);
randomOffset.y = (random - 0.5) * 2.0;
finalColor += SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, half2(i.texcoord + randomOffset * _BlurRadius));
}
return finalColor / _Iteration;
}
这边是一个模糊半径更大的粒状模糊(Grainy Blur)的渲染效果:
文章图片
粒状模糊(Grainy Blur)完整的Runtime + Shader实现可见:
https://github.com/QianMo/X-PostProcessing-Library/tree/master/Assets/X-PostProcessing/Effects/GrainyBlur
对模糊半径(Blur Radius)参数的调节 , 也可以控制粒状模糊的程度:
推荐阅读
- 违反违反医疗事故处理条例 青岛交通医院被警告
- 个税APP提示退税“国库处理”……原来是这么回事!
- 陕西榆林女子制止两插队者被打 打人者已被警方处理
- 教师有这些行为或被开除!广东首份违反师德处理办法征求意见
- 推荐警惕!厨房突发爆燃竟和煤气无关,只因他这样处理剩菜剩饭…...
- 厨房突发爆燃,竟和煤气无关!只因他这样处理剩菜剩饭…
- 公积金速看!漯河将清理公积金长期封存账户,请及时处理
- 牵出黄岛一起打架牵出贩卖“笑气”案 三人被依法处理
- 外媒:美明尼苏达州总检察长将领导处理弗洛伊德案
- 【各个】幸福触手可及各个人物结局 迪丽热巴细节上处理的很好
