发布网友 发布时间:2024-10-24 11:18
共1个回答
热心网友 时间:2024-10-27 12:10
本节介绍模糊算法。模糊、边沿查找本质是一个滤波器,使用低通滤波/高通滤波来完成图像处理的目的。这些似乎涉及CV(计算机视觉)的研究范围,本文旨在展示如何在Unity中实现模糊效果,而非深入研究“信号与系统”的理论知识。做工程讲究实用性,能用即可。
后续更新:在Unity中实现模糊算法的步骤。
在上一节中,我们了解到如何在Unity URP中实现后处理效果。为了扩展PostProcessing相关组件(现在称为【Volume】),我们需要编写一个cs脚本,继承于【VolumeComponent】。Volume组件包含了常用的后处理特效,如【Bloom(辉光)】与【ToneMapping(色调映射)】,可以显著提升画面效果。尽管【Volume】组件本身没有提供模糊功能,我们可以通过自定义实现。
虽然高斯模糊是模糊算法的代表,但还有其他方式,如方框模糊、径向模糊、双重模糊、Kawase模糊等。本节将实现其中几种自认为实用的模糊效果。
当我们感觉图像“模糊”时,实际上是因为像素点的颜色受到周围区域颜色的影响,使得像素点的“对比度”下降,颜色特征不鲜明。这种现象可以类比于人眼在远视状态下的视觉体验,物体反射的光线无法聚焦在视网膜上,形成多个“重影”,增加了模糊感。在图像处理中,模糊算法通过“污染”像素点的颜色,达到“模糊”效果。
Kawase模糊采用动态卷积核来提升效率,不同于高斯模糊或方框模糊中的恒定卷积核。其核心思路是对距离当前像素较远的位置进行采样,并在两个大小相等的纹理之间进行乒乓式的blit操作。通过随迭代次数移动的blur kernel,实现更加灵活且高效的模糊效果。
双重模糊通过降采样和升采样过程实现,即在blit过程中进行图像大小的调整。相比于Kawase模糊,双重模糊在实现上更加复杂,但能提供不同场景下的模糊效果。
为了在图像中产生“速度感”和“打击感”,径向模糊是最常用的技术。通过在指定方向上进行模糊处理,可以模拟出物体移动或光线照射的效果。实现径向模糊时,需要调整纹理和采样方向,以达到预期的视觉效果。
通过上述方法,我们能够在Unity URP中实现常见的模糊算法。在实际应用中,可以根据需求选择最合适的模糊类型,例如,Kawase模糊在性能和效果上通常被认为是一个不错的选择。模糊算法在后处理中有着广泛的应用,如体积光处理,能够有效提升场景的视觉效果。