URP | 后处理-景深和散景模糊

目的
景深是什么?主要的表现效果是什么?
实现方法是什么? 需要注意都有那些点。
景深和散景的区别是什么?
使用 Unlty 2022.1
景深原理
景深表现效果
景深一般在摄影中比较常见,简单理解就是要拍清楚的主清楚,其余背景是模糊的效果。

UE4 中的景深

示意图

我们可以看到在摄影过程是控制深度来渲染物体。
我们在渲染过程也是控制深度来渲染景深。
计算过程
获取渲染深度图
对深度图进行控制调整显示的深度位置。
分开近景和远近计算,我们希望不在景深的里的物体进行模糊。
使用后处理来对画面进行处理。
景深实现 | Depth Of Field
高斯景深 | Gaussian
这种模式近似相机的效果,但不完全模仿他们。它有一个有限的模糊半径和只做远场模糊。这种模式是速度最快的,也是低端平台的最佳模式。
URP | Depth 深度 - 哔哩哔哩 (bilibili.com)
计算深度
获取深度
怎么控制获取的深度范围,

我们可以使用摄像机这两个数值查看渲染的深度位置。
效果

这样我们就获取到了物体到摄像机的距离。
注意:深度和摄像机Far有关系,这个效果默认是1000。

景深权重
我们景深的效果 中间清楚,前后模糊的效果。
类似

我们就需要深度 (白-黑-白) 的关系,
白色模糊
黑色清楚
Shader
定义两个变量,一个变量控制我们 视角的焦点 ,一个变量控制我们的强度
变量

使用另一种方法获取深度,Unity函数
我们前使用二次函数,限制在0-1范围

增加两个变量控制 一个是焦点大小的 一个是 白色黑色对比度

效果

我们需要两个变量,
把这个计算过程合并成一个函数,方便我们调用。

全代码
计算深度的就算完成,我们还需要控制模糊效果,黑色不模糊,白色模糊。

高斯模糊
我们获取深度控制焦点已经实现,接下来实现模糊效果,
URP | 后处理-模糊算法总结 - 哔哩哔哩 (bilibili.com)
我们在创建一个片元着色器来处理模糊,
这个片元着色器才是输出的效果,

上面那个是我们输出查看深度值的,这才是输出查看模糊值。

全代码
注意:前调整好流程,在调整效果。

Volume
效果

这次新增加两个功能
属性太多分割,

增加自己的组件路径


RendererFeature
这里增加降采样模糊,虽然有这个功能但是不推荐开启。
完成



散景模糊 | Bokeh
大佬
高品质后处理:十种图像模糊算法的总结与实现 - 知乎
散景(Bokeh)亦称焦外成像,是一个摄影名词,一般表示在景深较浅的摄影成像中,落在景深以外的画面,会有逐渐产生松散模糊的效果。散景效果有可能因为摄影技巧或光圈孔形状的不同,而产生各有差异的效果。例如镜头本身的光圈叶片数不同(所形成的光圈孔形状不同),会让圆形散景呈现不同的多角形变化。此外,反射式镜头焦外的散景,会呈现独有的甜甜圈形状。

散景(Bokeh)在摄影学中被称为焦外成像,而在光学上被称为Circle of Confusion, CoC(弥散圆/散光圈/散射圆盘 ),即下图橙色Image Plane 中的蓝色C所示区域。由于不同的物距(物体到镜头的距离)投影到镜头所形成的焦点不同,但Image Plane 只能放在某个点上,所以就形成了Circle of Confusion, CoC(弥散圆)。



理解 整体表现是在模糊的背景有光斑效果

Shader
核心代码 使用圆形散景为例, 采用Golden进行散景模糊(Bokeh Blur)算法的实现
即对于每一次迭代,让采样uv旋转一个角度,经过足够次数的迭代后,众多以圆形分散开来的点,将一起组成合适的Bokeh形状。

这个函数就得到了,主要是计算模糊的效果。
我们还需要计算深度,根据不同深度使用模糊,和我们的上面类似,
不同的区别是这次黑白过度快速,硬一点,景深模糊我们希望黑白过度线性。
深度计算我们处理一下,分成前半部分和后部分,单独可以控制这俩部分的颜色。
在使用 Lerp 融合 前面是原图,后面是散射效果,使用
白色模糊 黑色不模糊
深度

效果

Shader全代码

Volume
Volume 组件和RendererFeature 都使用景深组件,我们定义 枚举来控制显示那个属性,
注意:这里没有学会Volume 组件使用Eume显示不同属性。
效果

设置Bokeh类型,Broke属性起作用。

RendererFeature
URP | 后处理-模糊算法总结 - 哔哩哔哩 (bilibili.com)
URP | 后处理-自定义后处理 - 哔哩哔哩 (bilibili.com)
这里大部分和上面一样,主要区别是不同枚举类的使用判断执行不同效果。
定义2个函数,输入需要的数据

定义一个大的Render 渲染
根据不同的类型执行不同的函数,
全代码
效果

总结
景深模糊,简单理解就是获取深度控制深度形成V型,进行模糊的效果,
渐变平滑过度,线性。

散景模糊,过度快速,对比强,

