法线强度?
法线贴图甚至法线都并无强度一说,因为法线仅仅是一个方向数据,并不能存储任何“定量”数据。所谓“法线强度”的视觉效果:对于引擎,实际上是通过夸大或减弱法线方向对光照计算的影响来模拟的;而对于法线贴图自身,则通过直接修改存储在纹理中的法线向量数据实现。具体而言,是提升法线向量在切空间(Tangent Space)的 X(T)和 Y(B)分量值之间的整体对比度,这种操作实质上放大了法线贴图所编码的微观表面梯度。当贴图中相邻像素的 T/B 分量值差异增大时,在后续光照计算中,这些修改后的法线诱导的反射方向偏移也更为显著,最终导致渲染图像呈现出更深的阴影、更锐利的高光以及更强烈的整体凹凸感——这正是用户端所感知到的“法线强度”提升的视觉效果来源。
代码
这是常用的调整法线贴图数据“强度”的算法:
lerp(Normal, float3(0.0, 0.0, 1.0), strength)原理
在法线中,(0,0,1)表示完全垂直向上的法线(切线空间的“上方向”),当法线为(0,0,1)时,将失去法线效果,即纯蓝色的法线贴图。

0 ≤ strength ≤ 1
- strength = 0
结果为原始法线
Normal→ 完全保留原始法线方向 - 0 < strength < 1 法线在原始方向与垂直方向之间渐变,T/B分量在原始值和0之间渐变 → 法线强度被弱化,趋于平缓
- strength = 1
结果为
(0, 0, 1)→ 法线被替换为垂直向上的向量(相当于“展平”表面)
strength < 0 和 strength > 1
当strength超过标准值[0, 1]时,法线的T/B分量会有可能超越原始值,即T/B分量增强了,对应到整个贴图中便是提升法线向量T分量和B分量值之间的整体对比度,放大了法线贴图所编码的微观表面梯度,便会出现渲染图像呈现出更深的阴影、更锐利的高光以及更强烈的整体凹凸感。