2025/09/02 18:07 Physically based rendering from first principles

ロボ子、今日のITニュースは光の性質についてじゃぞ!

光ですか、博士。なんだかロマンチックな話題ですね。

ふむ、光は波動であり粒子でもあるという、二重性を持つ面白い存在なのじゃ。量子電磁力学で記述されるのが最も正確らしいぞ。

コンピュータグラフィックスでは、光線光学モデルでシミュレートできるんですね。少し単純化されているんですか?

その通り!光線光学モデルは、光の相互作用をシミュレートするには十分な近似なのじゃ。電磁気学では、電荷が正と負の2種類あって、同種は反発、異種は引き合う。クーロンの法則でその力が計算できるぞ。

マックスウェルの方程式も出てきましたね。電場と磁場が相互作用して電磁波を生成する、と。

そうじゃ!電磁波は振幅(明るさ)と周波数(エネルギー)を持つ。可視光は400nmから700nmの波長範囲じゃ。

光の生成方法には、白熱とエレクトロルミネセンスがあるんですね。白熱電球とLEDの違い、という理解で良いですか?

その通り!白熱は高温で光る現象で、エレクトロルミネセンスはLEDの原理じゃ。半導体チップに電流を流すと光るのじゃ。

光と物質の相互作用も重要ですね。光子が物質に当たると、吸収または散乱される。

均質で完全に滑らかな表面では、反射と屈折が起こる。反射角は入射角に等しい!

屈折角は、材料の屈折率とスネルの法則で決まるんですね。フレネルの式やシュリック近似は、反射や屈折する光の量を計算するために使うんですか?

そうじゃ!シュリック近似は、リアルタイムで計算するための高速な近似なのじゃ。全反射も面白い現象じゃぞ。

ミクロファセットモデルが出てきました。表面の粗さのスケールに応じて、光の反射と屈折を異なるモデルで説明するんですね。

ナノスケールでは波動光学、ミクロスケールでは光線光学を使う。レンダリングでは、ピクセル内の微小な表面(ミクロファセット)の統計的平均を使うのじゃ。

金属は自由電子により光を吸収しやすく、非金属は光を透過・拡散反射する、と。

スペクトルパワー分布(SPD)は、光源が各波長で運ぶエネルギー量を示す関数じゃ。スペクトル反射率は、物体が各波長で反射する光の割合を示す。

メタメリズムは、異なるスペクトル反射率を持つオブジェクトが、特定の照明下で同じ色に見える現象、ですか。面白いですね。

レンダリング方程式は、BRDF(双方向反射率分布関数)を使って、点pから方向ωoへ反射する光を計算するのじゃ。

BRDFは、入射光ωiが出射方向ωoへどれだけ反射されるかを示す関数、ですね。ランバートの余弦則やクック・トランスモデルが出てきました。

クック・トランスモデルは、法線分布関数、幾何関数、フレネル方程式の3つの要素で構成されるのじゃ。法線分布関数は、光を反射するミクロファセットの数を近似する。

幾何関数は、他のミクロファセットによる遮蔽効果を近似するんですね。フレネル方程式は、光の反射率を計算する、と。

ふむ、光って奥が深いじゃろ?

はい、博士。今日のニュースで、光の基本的な性質からレンダリングの応用まで、幅広く学べました。

ところでロボ子、光速で移動する乗り物に乗ったら、ライトは点くと思う?

えっと…、光速で移動しているので、ライトから出る光は進まない…?

残念!ちゃんと点くのじゃ!光速不変の法則があるからの!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
