高品质后处理渲染技术分享:十种图像模糊算法的总结与实现

高品质后处理渲染技术分享:十种图像模糊算法的总结与实现
文章图片


文章首发于“腾讯技术工程” , 作者毛星云 , GameRes授权发布


后处理(Post-Processing) , 在图形学和游戏开发等领域是提升最终画面呈现品质的重要渲染技术 。 后处理渲染技术的好坏 , 往往决定了游戏画面是否能够达到令人惊艳的级别 。

图像模糊算法在后处理渲染领域中占据着重要的地位 。 很多产品级后处理的实现 , 都会直接或间接依赖于图像模糊算法中的一种或多种 。 无论是基于高斯模糊(Gaussian Blur
)或其改进算法的Bloom特效 , 还是基于径向模糊(Radial Blur
)的Sun Shaft(God Ray
) , 或是基于方向模糊(Directional Blur
)的镜头眩光光晕(Glare Lens Flare
) , 抑或是景深(Depth of Field
)特效中摄影级失焦感的散景模糊(Bokeh Blur
) , 都以模糊算法作为重要的支撑 。 所以说 , 后处理中所采用模糊算法的优劣 , 决定了后处理管线最终的渲染品质和消耗性能的多少 。

本文将对后处理管线中会使用到的如下十种模糊算法进行总结、对比和盘点 , 以及提供了这十种模糊算法以及其衍生算法对应的Unity Post Processing Stack v2版本的实现:

  • 高斯模糊(Gaussian Blur)
  • 方框模糊(Box Blur)

  • Kawase模糊(Kawase Blur)

  • 双重模糊(Dual Blur)

  • 散景模糊(Bokeh Blur)

  • 移轴模糊(Tilt Shift Blur)

  • 光圈模糊(Iris Blur)

  • 粒状模糊(Grainy Blur)

  • 径向模糊(Radial Blur)

  • 方向模糊(Directional Blur)


另外 , 本文暂不涉及运动模糊(Motion Blur) , 因为其主要作用于帧之间的运动变化 , 不属于静态型模糊 。 还有一些其他的模糊算法由于不太适用于实时渲染 , 本文也暂不涉及 , 如Moving Averages filter 。

下面先放一组使用了依赖于模糊算法的后处理特效的实时渲染截图 , 然后开始我们的正文 。

高品质后处理渲染技术分享:十种图像模糊算法的总结与实现
文章图片

图《巫师2》 中基于径向模糊(Radial Blur)的Sun Shaft


高品质后处理渲染技术分享:十种图像模糊算法的总结与实现
文章图片

图 UE4场景中 , 间接基于高斯模糊(Gaussian Blur)的Bloom特效给画面带了更好的光感 @ UE4 CyberNeon @Junliang Zhang


高品质后处理渲染技术分享:十种图像模糊算法的总结与实现
文章图片

图 Sun Shaft Forest @UE4


高品质后处理渲染技术分享:十种图像模糊算法的总结与实现


推荐阅读