双 Pass 模糊
单次模糊通常需要在一个方向上对周围像素做多次采样。如果直接做二维模糊,采样次数会迅速变多。本节使用常见的优化:把二维模糊拆成两个一维模糊(水平 + 垂直),也就是“双 Pass 模糊”。
目标
- 构建 3 个阶段:场景 → RT-A → RT-B → 屏幕
- 编写一个可切换水平/垂直方向的模糊 shader
- 理解“多 Pass = 多次把纹理当输入”
思路
- 第 1 次:把 3D 场景渲染到
renderTargetA - 第 2 次:对
renderTargetA.texture做水平模糊,输出到renderTargetB - 第 3 次:对
renderTargetB.texture做垂直模糊,输出到屏幕
动手练习
- 调整模糊半径(权重/采样偏移),观察模糊强度
- 把 Pass-3 的输出改成“原图 + 模糊图”的叠加,得到简单 Bloom 感
小结
你已经拥有了实现多 Pass 后处理的完整模板。后续的 Bloom、景深、运动模糊等效果,都可以在此基础上扩展。
