ここまで簡単に反射のラジアンス$R_{\mathrm{reflection}}$について見てみましたが、反射すべきフォトンはいつも光源からやってくるわけではありません。何か他の物体に反射してからやってきます。これは「多重パスによる反射」と呼ばれます。多重パスによる反射をいかにうまくやり通すかがレンダリングテクニックの見せ場となります。このようなレンダリングテクニックには「レイトレーシング法」、「ラジオシティ法」、「フォトンマッピング法」などがあります。リアルタイムシェーディングCGの世界で、リアルタイムで動作する(見れる程度のfpsで計算を終えることができる)シェーダープログラムのことをリアルタイムシェーダーと呼ぶことにします。このリアルタイムシェーダーを用いてシェーディングを行うことをリアルタイムシェーディングと呼びます。リアルタイムシェーディングで使われるテクニックの一つに、多重パスによる反射計算を一切無視して可能な限り反射モデルを簡略化するものがあります。7世代のハードウェア等)では多重パスによる反射の影響は無視するシャドウイングは基本的に行わない反射は「古典的ライティングモデル」によって近似するシェーダーはプログラマブルでない(ハードウェアかライブラリの深部に焼き付けられる)といった制約を課すことでリアルタイムシェーディングを実現していたそうです。ハードウェアかライブラリの深部に焼き付けられたシェーダーは「固定機能シェーダー」と呼ばれます。固定機能シェーダーしかサポートしないハードウェアは「固定レンダリングパイプライン」と呼ばれます。古典的ライティングモデル古典的ライティングモデルは、シェーディングの単純化法のひとつで、少ない計算量でそこそこ写実的なレンダリング結果を得ることができる代表的な近似法です。古典的ライティングモデルは物体に光をあてると「物体固有の色」が見える部分と「光の色」が見えるハイライト部分と分かれる物体固有の色が見える部分は見る位置を変えても明るさは変化しないハイライト部分は、見る位置を変えると移動するというような物理的な洞察に基づいています。この現象では、物体表面では2つの異なる反射が混在していることを示唆しています。このような考え方を「2色性反射モデル」と呼びます。物体固有の色が見える部分の反射を「ディフューズ反射(拡散反射)」、ハイライト部分の反射を「スペキュラー反射(鏡面反射)」と呼びます。この$R_{\mathrm{diffuse}}$と$R_{\mathrm{specular}}$をそこそこ簡単に計算しましょう、というのが古典的ライティングモデルの基本的な考え方です。ディフューズ反射の基礎ディフューズ反射は「拡散反射」とか「乱反射」とも呼ばれます。CGでディフューズ反射といえば、「反射するラジアンスが見る角度に依存しない反射」のことです。こもような反射を特に「ランバート(Lambert)反射」と呼びます。ディフューズ反射では物体固有の色が観測されるといった特徴があります。ランバート反射モデルランバート反射では位置$p$に飛び込んだ束は、乱雑に反射され、位置$p$から均等に出て行きます。ランバート反射モデルにおける反射の強さは入射角$\phi$に依存し、$\cos\phi$に比例します。$\cos\phi$は2つのベクトル$n$と$l$の内積を用いて$<n,l>$と表現できます(ただし$n$と$l$は正規化されたベクトルです)。