<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>风港</title>
      <link>https://cloudssss.github.io</link>
      <description>好想人生也有happy ending</description>
      <generator>Zola</generator>
      <language>zh-Hans</language>
      <atom:link href="https://cloudssss.github.io/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Sun, 15 Sep 2024 00:00:00 +0000</lastBuildDate>
      <item>
          <title>Ray tracing in one weekend折射公式</title>
          <pubDate>Sun, 15 Sep 2024 00:00:00 +0000</pubDate>
          <author>windria</author>
          <link>https://cloudssss.github.io/posts/ray-tracing-in-one-weekend-refract/</link>
          <guid>https://cloudssss.github.io/posts/ray-tracing-in-one-weekend-refract/</guid>
          <description xml:base="https://cloudssss.github.io/posts/ray-tracing-in-one-weekend-refract/">&lt;p&gt;本文是对Ray Tracing in One Weekend中&lt;a href=&quot;https:&#x2F;&#x2F;raytracing.github.io&#x2F;books&#x2F;RayTracingInOneWeekend.html#dielectrics&#x2F;snell^%7B%5Cprime%7Dslaw&quot;&gt;折射&lt;&#x2F;a&gt;一节公式的推导&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;imgs&#x2F;ray_tracing_refract.png&quot; alt=&quot;ray_tracing_refract&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;图中已知的变量已经用蓝色标出，分别是$\eta、\eta^{\prime}$，还有一个向量$R$已知，标为了绿色&lt;&#x2F;p&gt;
&lt;p&gt;图中一些向量为了方便观看用不同颜色标记了，其中$R_{\bot}^{\prime}$和$R_{\parallel}^{\prime}$是$R^{^{\prime}}$的分量，分别和法线$n$单位向量垂直和平行，$R$是入射光线与$R^{\prime}$出射光线两个向量都是单位向量，长度是1&lt;&#x2F;p&gt;
&lt;p&gt;首先要算出来的是$cos\theta$的值，因为$R$和$n$是单位向量，所以很容易得出&lt;&#x2F;p&gt;
&lt;p&gt;$$ \cos\theta = -R \cdot n$$&lt;&#x2F;p&gt;
&lt;p&gt;之后能看出$R$在y轴上的投影的长度为$R$的长度乘上$\cos\theta$，而$R$的长度和$n$的长度其实是一样的，所以也等于$n$的长度乘上$\cos\theta$，可以得出$R$在x轴上的分量为$R + n \cdot \cos\theta$，而这个分量的长度也容易通过图像得知是$\sin\theta$，所以x轴正方向的单位向量可以算出来是&lt;&#x2F;p&gt;
&lt;p&gt;$$\frac{R + n \cdot \cos\theta}{\sin\theta}$$&lt;&#x2F;p&gt;
&lt;p&gt;观察图像其实可以因为$R^{^{\prime}}$长度是1知道$R_{\bot}^{^{\prime}}$的长度是$\sin\theta^{^{\prime}}$&lt;&#x2F;p&gt;
&lt;p&gt;由于斯涅尔折射定律&lt;&#x2F;p&gt;
&lt;p&gt;$$ \sin\theta^{\prime} = \frac{\eta}{\eta^{\prime}} \cdot \sin\theta $$&lt;&#x2F;p&gt;
&lt;p&gt;可以得出&lt;&#x2F;p&gt;
&lt;p&gt;$$ R_{\bot}^{^{\prime}} = \sin\theta^{\prime} \cdot \frac{R + n \cdot \cos\theta}{\sin\theta} = \frac{\eta}{\eta^{\prime}} \cdot (R + n \cdot \cos\theta) = \frac{\eta}{\eta^{\prime}} \cdot (R + (-R \cdot n)n)$$&lt;&#x2F;p&gt;
&lt;p&gt;因为$R_{\parallel}^{\prime}$和$R_{\bot}^{\prime}$是垂直的，并且是同一个单位向量的分量，可以得出$R_{\parallel}^{\prime}$的长度为$ \sqrt{1 - |\mathbf{R^{\prime}}_{\bot}|^2}$，而$R_{\parallel}^{\prime}$的方向和$n$相反，所以&lt;&#x2F;p&gt;
&lt;p&gt;$$R_{\parallel}^{\prime} = -\sqrt{1 - |\mathbf{R}^{\prime}_{\bot}|^2} \cdot n$$&lt;&#x2F;p&gt;
&lt;p&gt;$R_{\parallel}^{\prime}$和$R_{\bot}^{\prime}$加起来就得到$R^{\prime}$了&lt;&#x2F;p&gt;
</description>
      </item>
    </channel>
</rss>
