光子の集団としての光線について
これは レイトレ合宿7(https://sites.google.com/site/raytracingcamp7/ )のアドベントカレンダーの記事として作成しました .
はじめに
パストレーシングにおいて, 光は輝度 を運ぶ光線として表され, その光散乱をRendering方程式
ならびに Volume Rendering 方程式に基づいて計算することで, 写実的な映像を作り出すことができます. これらの基礎となるものは Radiative Transfer方程式であり[Arvo1996], 更にそれはBoltzmann方程式の一種であることが知られています[Cercignani1988]. Boltzmann方程式とは希薄気体の運動方程式です. その運動は, 相空間分布関数として表現した粒子の集団の時間変化として表現されるのですが, それならその分布関数と光線の概念は何らかの関係で結びついているはずです.
この記事では, Boltzmann方程式とRendering方程式の関係を考えるための準備として, 光子の集団を表す分布関数 と, 輝度
を運ぶ光線との間の対応関係について考えます.
相空間分布関数
いろいろな運動量を持って動き回る点粒子の集団を考えます. このとき, 位置 , 時間
において, 運動量が
である粒子数の密度を, 相空間分布関数
として表現します. この関数は, 運動量で積分すれば粒子数密度
を, 相空間体積要素で積分すれば, 粒子数
を与えるように規格化されているとします.
ここで, の単位は
なので, 分布関数を無次元にするために, プランク定数
] を使って
を掛けました.
光線中の光子の数
光線を一本の光のビームと考えて, それを構成する光子の分布関数が で与えられたとします. 光は振動の方向に応じて2つの偏光状態を取ることができるので, これを2つの異なる状態と数えて, 分布関数は
と規格化されているとします.
(\ref{eq:number_density})より, この式は(光子の個数密度)(空間体積要素)という意味を持っているので, 光子のエネルギー
から, 領域
内の放射エネルギー
]を,
と計算できるはずです.
そして, この量を次のように書き換えます. 内を進み, 面積
, 法線
の微小面を通過する光子
内の方向
へ光速
で進み, 面積
, 法線
の微小面を通過するとします(図). このとき, 相空間体積素片
は,
の間にビームが掃き進んだ体積として,
と書けます. さらに運動量体積要素
も, 極座標表示を使って
とします. そうすると, 放射エネルギーは
となります.
de Broglieの関係, および特殊相対性理論におけるエネルギーと運動量の関係によれば, 振動数が である光子のエネルギー
には,
という関係があります. 従って , そして
と書けば, 放射エネルギーは
と得られます. ここで導入した分光放射輝度
によって, 光のビームが運ぶ輝度と, 光子の分布関数の関係がわかりました.
黒体輻射
(\ref{eq:spectral_radiance}) により, 光子の分布関数を与えれば, その分光放射輝度を求めることができます. 温度
で熱平衡状態にある光子の分布関数, Planck分布
を(\ref{eq:spectral_radiance})へ代入すれば, 分光放射輝度はただちに
と黒体輻射の式として求まります. ここで, はボルツマン定数です.
さいごに
この記事では, パストレーシングにおける光線を光子の集団によるビームと考えて, 放射エネルギーと分光放射輝度を導入(\ref{eq:radiant_energy})し, 光子の分布関数との対応関係(\ref{eq:spectral_radiance})を求めました. この内容は, 主に[藤田1990]をもとにしています. 興味のある方は, そちらも併せて参考にしてください.