现象:平滑与硬边的视觉博弈
在Blender中,按下「Shade Smooth」后模型表面瞬间变得圆润,但随之而来的可能是棱角处的诡异黑斑或过度模糊。而调整「Auto Smooth」角度(或2.9+的「平滑角度」)又像在走钢丝:角度太小硬边重现,角度太大细节丢失。这背后并非简单的开关,而是一场关于法线插值与几何拓扑的精密博弈。本文将从底层算法出发,逐层揭开平滑角度背后的数学原理与工程决策。

原理:法线、面与顶点的三角关系
要理解平滑角度,必须先厘清三个核心概念:面法线(Face Normal)、顶点法线(Vertex Normal)和着色法线(Shading Normal)。面法线是垂直于多边形平面的单位向量,由顶点坐标的叉积计算得出;顶点法线则是共享该顶点的所有面法线的加权平均(通常按角度或面积加权)。而着色法线是渲染时实际用于光照计算的向量,它通过插值顶点法线得到。
Blender的「Shade Smooth」本质是启用顶点法线插值:每个顶点存储一个法线,片元着色器在三角形内部进行重心坐标插值,从而产生平滑过渡。但问题在于,如果模型存在锐利边缘(如立方体的棱),顶点法线平均了相邻面的法线,导致边缘处法线方向被“拉平”,光照计算出现偏差,视觉上就是边缘变软甚至出现黑边。
平滑角度:一个阈值分割器
「Auto Smooth」角度(或2.9+的「平滑角度」)是一个二值化阈值:对于每条边,计算其相邻两个面的法线夹角θ,若θ小于阈值,则边被标记为“平滑”,顶点法线在两侧共享;若θ大于阈值,则边被标记为“锐利”,顶点法线在两侧分裂,各自独立。这样,锐利边缘的法线不再被平均,硬边得以保留。
数学上,设边e连接面f1和f2,法线分别为n1和n2,则夹角θ = arccos(n1·n2)。阈值α通常取30°~60°。当θ < α时,边平滑;否则锐利。这个简单的规则背后,是对几何不连续性的量化:角度越大,表示表面弯曲越剧烈,越需要硬边来保持形状感知。
推导:从顶点法线到着色法线的插值误差
为什么平滑角度能解决问题?我们需要分析顶点法线插值带来的误差。考虑一个理想圆柱体,侧面由多个四边形组成。若全部平滑,顶点法线是相邻面法线的平均,在圆柱的圆周方向形成连续变化,渲染出光滑曲面。但圆柱的顶面与侧面交界处是90°硬边,若平滑,顶点法线会混合顶面法线(垂直向上)和侧面法线(水平向外),导致交界处法线倾斜,光照出现暗带。
更一般地,对于任意网格,顶点法线N_v = Σ w_i * N_fi / |Σ w_i * N_fi|,其中w_i为权重(常取面面积或角度)。当相邻面法线夹角较大时,平均后的N_v方向偏离各面法线,插值结果在面内产生非线性变化,导致着色不连续(Mach带效应)。平滑角度通过分裂顶点法线,将大角度区域隔离,使每个平滑区域内的法线变化平缓,从而减少插值误差。
技巧:在Blender中,权重默认按角度加权(Angle Weighted),这比面积加权更能适应不规则拓扑。可在「网格数据」属性中切换。
然而,平滑角度并非万能。它基于边级别的判定,无法处理顶点级别的复杂情况(如三个面交汇的角点)。对于此类情况,Blender 2.9+引入了自定义拆分法线(Custom Split Normals)和加权法线(Weighted Normal)修改器,允许更精细的控制。但Auto Smooth仍是性价比最高的方案。

验证:参数实验与视觉对比
为了量化平滑角度的影响,我们设计一个对照实验:取一个默认立方体,分别设置平滑角度为0°、30°、60°、180°,观察边缘着色变化。0°时所有边锐利,立方体呈现硬边;30°时,90°的棱仍锐利,但面内平滑(无变化);60°时,棱仍锐利;180°时所有边平滑,棱处出现法线平均导致的软边。可见阈值需小于90°才能保留直角硬边。
更复杂的模型如布尔运算产生的网格,常出现非流形边和极小面,平滑角度可能失效。此时需配合「边缘拆分」或「加权法线」修改器。下表对比不同方案:
| 方案 | 原理 | 适用场景 | 性能开销 |
|---|---|---|---|
| Auto Smooth | 基于边角度阈值分裂法线 | 常规硬表面模型 | 低 |
| Weighted Normal | 按面面积/角度加权平均法线 | 有机模型、需柔和过渡 | 中 |
| Custom Split Normals | 手动编辑法线 | 影视级精细控制 | 高 |
实验还发现,平滑角度对UV展开和法线贴图有间接影响:法线分裂会导致切线空间不一致,可能引起法线贴图接缝。因此,在游戏资产管线中,常需在平滑后重新计算切线。
总结:平滑角度的工程哲学
平滑角度是一个启发式规则,它用简单的角度阈值近似了人类对形状的感知:大角度对应几何不连续,应保留硬边;小角度对应连续曲面,应平滑。这种基于局部几何的决策,在效率与效果间取得了平衡。但作为技术导师,我始终强调:没有普适的角度值。30°适合机械硬表面,60°适合角色皮肤,而180°仅用于特殊艺术效果。理解其背后的法线插值原理,才能根据模型拓扑和光照需求灵活调整。
在火星人教育的AIGC视觉设计课程中,我们常以Blender为工具,让学员从法线原理出发,掌握模型着色与渲染的底层逻辑。无论是AI漫剧创作中的角色建模,还是UE5游戏特效中的资产优化,对平滑角度的精准控制都是专业度的体现。

关于火星人教育:创办24年来,火星人教育专注数字艺术与AIGC实战职业技能培训,开设课程涵盖AI漫剧创作、AIGC视觉设计、UE5游戏特效、室内全屋定制、MAYA三维动画、C4D动态设计、工业设计、NUKE影视后期、摄影摄像实训。北京、深圳双校区开设线下面授班,面向美术生、在校大学生及意向转行的职场人群,以项目化实训教学,夯实专业技能,助力就业与职业提升。咨询电话:010-65918670。








评论(0)