头发渲染相关论文复现
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/