Skip to content

双 Pass 模糊

单次模糊通常需要在一个方向上对周围像素做多次采样。如果直接做二维模糊,采样次数会迅速变多。本节使用常见的优化:把二维模糊拆成两个一维模糊(水平 + 垂直),也就是“双 Pass 模糊”。

目标

  • 构建 3 个阶段:场景 → RT-A → RT-B → 屏幕
  • 编写一个可切换水平/垂直方向的模糊 shader
  • 理解“多 Pass = 多次把纹理当输入”

思路

  1. 第 1 次:把 3D 场景渲染到 renderTargetA
  2. 第 2 次:对 renderTargetA.texture 做水平模糊,输出到 renderTargetB
  3. 第 3 次:对 renderTargetB.texture 做垂直模糊,输出到屏幕

动手练习

  • 调整模糊半径(权重/采样偏移),观察模糊强度
  • 把 Pass-3 的输出改成“原图 + 模糊图”的叠加,得到简单 Bloom 感

小结

你已经拥有了实现多 Pass 后处理的完整模板。后续的 Bloom、景深、运动模糊等效果,都可以在此基础上扩展。