Blinn-Phong 半程向量(Halfway Vector)可视化

图1: 半程向量的几何意义

L (光线方向)
V (视线方向)
H (半程向量)
N (法线)
R (反射向量)
核心观察: H 是 L 和 V 的角平分线。当 N 接近 H 时,说明反射光 R 接近视线 V,应该看到高光。
拖动鼠标改变视线方向 V,观察 H 如何变化。
-45°

图2: Phong vs Blinn-Phong 对比

左侧:Phong - 计算 R·V (反射向量与视线的夹角)
右侧:Blinn-Phong - 计算 N·H (法线与半程向量的夹角)
两者在数学上近似等价,但 Blinn-Phong 计算更简单、更稳定。

Phong 模型

specular = (R·V)^α
R = reflect(-L, N)

Blinn-Phong 模型

specular = (N·H)^α'
H = normalize(L + V)

图3: 高光强度对比

32
红色:Phong (shininess = α)
蓝色:Blinn-Phong (shininess = 4α)
要达到相似的视觉效果,Blinn-Phong 需要约 4 倍的 shininess 值。