高品质后处理渲染技术分享:十种图像模糊算法的总结与实现( 九 )
图 不同相机参数下得到的不同散景模糊(Bokeh Blur)
散景(Bokeh)在摄影学中被称为焦外成像 , 而在光学上被称为Circle of Confusion, CoC(弥散圆/散光圈/散射圆盘 ) , 即下图橙色Image Plane 中的蓝色C所示区域 。 由于不同的物距(物体到镜头的距离)投影到镜头所形成的焦点不同 , 但Image Plane 只能放在某个点上 , 所以就形成了Circle of Confusion, CoC(弥散圆) 。
文章图片
图 散景(Bokeh)成因 (图片来自GPU Gems 1)
文章图片
图 散景(Bokeh)大小不同的成因 , 即Circle of Confusion, CoC(弥散圆)的大小与人眼分辨率不同的区域 。
镜头本身的光圈叶片数不同(所形成的光圈孔形状不同) , 会让散景形状呈现不同的多角形变化 。 从最初的多边形 , 过渡到最终的圆形 。
文章图片
图 不同光圈叶片数的镜头 , 决定了不同的散景形状
文章图片
图 不同光圈叶片数的镜头 , 决定了不同的散景形状
文章图片
图 不同光圈数值的镜头形态 , 决定了不同的散景形态
从上图可以看出 ,由于光圈大小和叶片数量的不同 , 散景(Bokeh)的形态各异 。
在图形学领域模拟散景(Bokeh)的方法有很多 , 本文将以最标准的圆形散景为例 , 采用Golden angle的思路进行散景模糊(Bokeh Blur)算法的实现 。
注:
https://en.wikipedia.org/wiki/Golden_angle
具体而言 , 算法思路是基于对大量离散螺旋型(spiral)分布的点的渲染 , 来模拟出圆形Bokeh的形状 。
文章图片
核心的Shader算法实现为:
half4 BokehBlur(VaryingsDefault i)
{
half2x2 rot = half2x2(_GoldenRot);
half4 accumulator = 0.0;
half4 divisor = 0.0;
half r = 1.0;
half2 angle = half2(0.0, _Radius);
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 违反违反医疗事故处理条例 青岛交通医院被警告
- 个税APP提示退税“国库处理”……原来是这么回事!
- 陕西榆林女子制止两插队者被打 打人者已被警方处理
- 教师有这些行为或被开除!广东首份违反师德处理办法征求意见
- 推荐警惕!厨房突发爆燃竟和煤气无关,只因他这样处理剩菜剩饭…...
- 厨房突发爆燃,竟和煤气无关!只因他这样处理剩菜剩饭…
- 公积金速看!漯河将清理公积金长期封存账户,请及时处理
- 牵出黄岛一起打架牵出贩卖“笑气”案 三人被依法处理
- 外媒:美明尼苏达州总检察长将领导处理弗洛伊德案
- 【各个】幸福触手可及各个人物结局 迪丽热巴细节上处理的很好
