头发渲染相关论文复现

Marschner Scattering

Marschner Scattering在原本kaijiya-key的模型基础上进行改进,将头发建模成覆盖有倾斜鳞片的圆柱体,光线打在头发上时会有三种不同的表现,反射(R),折射-折射(TT),折射-反射-折射(TRT),最后的实现效果是要将三种情况加在一起,公式为
$$
S = S_R+S_{TT}+S_{TRT}
$$

其中光线的计算可以分为:

M纵向反射函数:光在长度方向(纵向)的分布(由毛鳞片决定位置)。

N方位角散射函数:光在截面方向(横向)的分布(由折射反射决定强弱)。

所以,计算公式又可写为:

$$
S = \sum_{p \in {R, TT, TRT}} \frac{M_p(\theta_h) \cdot N_p(\phi)}{\cos^2 \theta_d}
$$

其中,$ \cos^2 \theta_d $ 是强度修正器。因为头发是圆柱体,光线越倾斜,反射光锥越窄,能量越集中,需要除以$\cos \theta_d$;而在另一方面坐标投影,积分过程也需要$\cos \theta_d$来进行修正。

其中的角度设置:

1.坐标轴 (u, v, w)

​ u 轴(切线方向)

​ v轴和w轴(法平面)

​ v轴通常指代长轴,w 轴指代短轴

2.向量

​ $ω_i$: 入射光方向(指向光源)

​ $ω_r$: 出射光方向(指向摄像机/眼睛)

3.θ:倾斜角

​ $θ_i$:入射光的倾斜角。

​ $θ_r$:出射光的倾斜角。

​ $θ_d$=($θ_r$-$θ_i$ )/2

​ $θ_h$=($θ_i$+$θ_r$ )/2

4.ϕ:方位角

​ $ϕ_i$:入射光在截面上的角度。_

​ $ϕ_r$:出射光在截面上的角度。

更多具体细节后面再补充……


头发渲染相关论文复现
https://zhangruian123.github.io/2026/01/30/First-Hair-Renderingproject/
作者
zhangruian123
发布于
2026年1月30日
许可协议