
光線追跡ソフトウェアを用いて反射の法則やスネルの法則を元に反射(屈折)光線の方向を計算する際に、ちょっとした"不都合"に遭遇したことはないだろうか。例えばスキュー光線を取り扱う場合は様々なプロセスを光線ごとに実行する必要があり、結構な手間になる。今回は前回その手間から逃れるための手段である、各法則のベクトル形式での記述方法を紹介しよう。
前回のベクトル形式で反射の法則・スネルの法則を表記する(1)では、反射の法則のベクトル表記について見てきた。今回はいよいよ透過光に関わるスネルの法則のベクトル表記について見てみよう。
スネルの法則のベクトル形式化:
反射の場合と同様に屈折光線ベクトルとして\(\vec{s}”\)を定義し、その平行成分および垂直成分をそれぞれ\(\vec{s}”_\parallel\)と\(\vec{s}”_\perp\)とする(図1)。ここでもまた\(\vec{s}\)と\(\vec{s}”\)の関係を求めていくことになる。スネルの法則\(n_1 \sin\theta_1 = n_2 \sin\theta_2\)の両辺に\(\vec{k}\)を掛けると、\(\vec{s} = \vec{k}/|\vec{k}|\)の関係式から、
$$n_1 \vec{s}_\parallel = n_2 \vec{s}”_\parallel$$
という関係式が得られる。つまり、入射光線と屈折光線で波数ベクトルの界面に対して平行方向の成分が維持されることが分かる。ここで、\(\vec{s}_\parallel = \vec{s} – (\vec{s} \cdot \vec{n})\vec{n}\)、\(\vec{s}”_\parallel = \vec{s}” – (\vec{s}” \cdot \vec{n})\vec{n}\)なので、再びスネルの法則を用いると、
$$\vec{s}”_\parallel = \frac{n_1}{n_2}\vec{s}_\parallel = \frac{n_1}{n_2}[\vec{s} – (\vec{s} \cdot \vec{n})\vec{n}]$$
が得られる。次に、\(\vec{s}”_\perp = \alpha \vec{n}\)とおく(図1を参照)。同式の両辺を2乗すると、\(|\vec{s}”| = 1\)の関係式から、
$$|\vec{s}”_\parallel|^2 + \alpha^2 = 1$$
より、
$$\alpha = \sqrt{1 – |\vec{s}”_\parallel|^2} = \sqrt{1 – \frac{n_1^2}{n_2^2}|\vec{s}_\parallel|^2}$$
が得られる(\(\alpha\)には光線が媒質1から2に向かうように正の解を選んでいる)。これを元の式に代入すると、
$$\vec{s}” = \vec{s}”_\parallel + \vec{s}”_\perp = \frac{n_1}{n_2}[\vec{s} – (\vec{s} \cdot \vec{n})\vec{n}] + \sqrt{1 – \frac{n_1^2}{n_2^2}|\vec{s}_\parallel|^2}\vec{n}$$
が得られる。これが欲しかったスネルの法則のベクトル形式である。上式において試しに\(n_1 = n_2\)とすると\(\vec{s}” = \vec{s}\)となり、光が全く屈折しない状況を表現できていることが分かる。一見すると複雑な式であるが、屈折ベクトルが座標系に依らずベクトル計算のみから決まるので光線追跡においては非常に便利な式である。

図1:屈折率\(n_1\)と\(n_2\)の媒質で隔たれた界面での入射光線および透過光線の模式図
大学院在学中に自らが計画して手掛けた偏光分光装置の開発がきっかけで光学に魅了される。 卒業後民間光学会社に就職し、2006年にフォトコーディングを独立開業。 官民問わずに高品質の光学サービスを提供し続ける傍ら、2009年より京都産業大学にも籍を置き、 天文学と光学技術を次世代に担う学生に日々教えている。 光学技術者がぶつかるであろう疑問に対するアンサー記事を主に担当。