折射光线方向公式推导


  先给出结论:折射方向公式:

t={η_1\over η_2}i+({η_1\over η_2}cos\theta_i-\sqrt{1-sin^2\theta_t})n

  要注意的是,这个向量不是单位向量,使用前请自行单位化。

  下面开始证明,根据 Snell 法则:

{sin\theta_1 \over sin\theta_2}={η_2\over η_1}

  下面设定一些常用变量,默认都已经单位化:

   –   i:入射光线方向
   –   t:折射光线方向
   –   n:法线方向
   –   n_{\bot} :法线垂直方向


  首先 it 可以表示为

i=-cos\theta_1n+sin\theta_1n_\bot

t=-cos\theta_2n+sin\theta_2n_\bot

  由于我们不知道 n_\bot,可以使用以下方程获得等式:

n_\bot=csc\theta_1i+cot\theta_1n

n_\bot=csc\theta_2t+cos\theta_2n

  所以,有:

csc\theta_1i+cot\theta_1n=csc\theta_2t+cot\theta_2n

  可以解得 t

t={sin\theta_2\over sin\theta_1}i+cos\theta_1{sin\theta_2\over sin\theta_1}n-cos\theta_2n

  可以用 Snell 法则来代替正弦,用正弦来代替余弦,也就得到了最终公式:

t={η_1\over η_2}i+(cos\theta_1{η_1\over η_2}-\sqrt{1-sin^2\theta_2})n


参考:What does the equation of a refracted ray trace mean?

Tags :

About the Author

说点什么

avatar