Base-卷积与高斯模糊
模糊不是简单地降低对比度,而是让每个输出像素代表邻域的某种加权结果。权重如何分布、边界如何处理、颜色在哪种空间计算,都会影响最终效果。
本文合并 2019 年 9 月的卷积手写记录与 2020 年 4 月 15 日的高斯模糊笔记。最早记录只有月份,因此日期用该月 1 日占位。核心公式重新整理,原始手写照片作为学习记录保留;计算以正文整理后的公式和数值为准。
1. 卷积核如何作用于图像
离散二维卷积可以写为 O(x,y)=ΣΣ K(i,j)I(x-i,y-j)。很多图像处理代码实际上不翻转核,计算的是互相关;对中心对称的高斯核,两种写法结果相同。
核不只用来模糊。不同权重还能实现锐化、边缘检测或方向响应。因此“权重和必须等于 1”只对需要保持常量图像亮度的滤波器成立,不能推广到所有卷积核。

原笔记配图:2019 年卷积手写笔记的原始照片。它保留学习过程,计算以正文重新整理的公式为准。

原笔记配图:同一时期的手写补充记录;照片中的草稿和划线不作为最终数值结论。
2. 高斯权重与离散归一化
二维各向同性高斯的权重与 exp(-(x²+y²)/(2σ²)) 成正比。σ 控制扩散尺度,采样半径决定截断范围。
连续高斯在无限平面上积分为 1,不代表截取 3×3 的离散样本之和恰好为 1。应先计算离散权重,再除以它们的总和。
一个常用的近似核是:
1 | |
它是二项式近似,不应把它说成任意 σ 的精确离散高斯。输入整张图都是 0.5 时,归一化后输出也应保持 0.5;这是检查权重与边界处理的简单办法。
原记录图解

原笔记配图:一维高斯函数、均值与标准差的原资料示意。

原笔记配图:二维高斯函数及其曲面,中心权重大、离中心越远权重越低。

原笔记配图:以中心为原点的 3×3 采样偏移;坐标方向要与纹理采样约定一致。

原笔记配图:σ=1、单位间隔的 3×3 高斯样本,截断后权重和约为 0.7795,尚未离散归一化。

原笔记配图:对上一组截断样本归一化后的权重;中心约为 0.20418,舍入会带来很小的和误差。
3. 可分离性减少计算
二维高斯满足 G(x,y)=g(x)g(y),因此先水平一维滤波,再垂直一维滤波,可以得到相同核的结果。
对于每边 k 个样本,直接二维需要约 k² 个采样位置,两遍一维约为 2k,但新增中间纹理写读和一次 Pass。小核未必适合拆,大核通常更值得评估。
利用双线性过滤,还可以把相邻两个正权重样本合并成一个位于两者之间的采样:位置取加权中心,权重取两者之和。优化前要确认采样中心与纹素尺寸一致。

原笔记配图:旧版 Shader 的九点加权示例。它展示直接二维累加,尚未使用两遍可分离优化。
4. 边界和透明边缘
Clamp 会重复边缘值,Repeat 会把另一侧卷进来,零填充则可能让边缘变暗。没有通用正确答案,应按资源含义选择。
透明图像常需要先预乘 Alpha,再一起过滤颜色和覆盖率,最后根据消费方式合成。直接模糊含有任意透明 RGB 的未预乘图,可能产生黑边或彩边。
颜色过滤还应关注线性光空间。Gamma 编码值直接平均往往偏暗;法线和深度更不能当作普通颜色照搬高斯处理。
5. 为什么 AO 模糊需要深度约束
普通高斯会跨越几何边界,把背景 AO 拖到前景。双边滤波在空间距离权重之外,还引入深度、法线或其他特征差异的权重,减少跨表面混合。
这已经不是单纯固定高斯卷积:权重随像素内容变化,分离后的结果也不一定等价。模糊半径、深度阈值与重建空间应一起说明。
6. 大半径模糊的工程取舍
可以先降采样再滤波,但这会改变核形状与细节保留,并增加上下采样步骤。Bloom 允许柔和扩散,UI 背景可能关心边缘稳定,SSR 则还要考虑粗糙度和几何边界。
性能比较应固定输出质量与半径,记录完整链路成本,而不只数某个 Pass 的采样次数。中间 RT 和带宽在移动端尤其需要关注。
总结
高斯模糊的关键是离散权重、归一化和可分离性;实际使用还要处理颜色空间、透明边缘与几何边界。一个“看起来糊了”的结果,不等于保住了正确亮度和表面关系。