最近重温3DMM中的公式,推导反射光线的公式,过程如下:

  1. 根据反射定律,反射角与入射角相等,设为θ\theta。将入射光线记为II,反射光线记为RR,平面法向量为NN,如下图所示。
  2. 引入两个变量A和B
    其中,B=cos(θ)NB = -cos(\theta)*N, 由向量关系可得:
    I=A+BR=AB\begin{aligned} I &= A + B\\ R &= A - B \\ \end{aligned}

BB带入IIRR的表达式中,可得:
I=Acos(θ)NR=A+cos(θ)N\begin{aligned} I &= A - cos(\theta)*N \\ R &= A + cos(\theta)*N \\ \end{aligned}

因此,R=I+2cos(θ)NR = I + 2cos(\theta)*N

又有cos(θ)=NIcos(\theta) = -N \cdot I 由此可得反射光线3D表达:
R=I2(NI)NR = I - 2(N \cdot I)N
证毕。

与原文2(NI)NI2(N \cdot I)N-I相差一个负号,并不影响后继计算。
3DMM反射光线3D表达
参考链接:
https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-shading/reflection-refraction-fresnel

相关文章: