ランバート反射
ハーフ・ランバート照明(英: Half Lambert lighting)はランバート反射をなだらかに改変したライティング方式である。以下の式で表される。
I D = ( 0.5 cos  α + 0.5 ) 2 ∗ C ∗ I L {\displaystyle I_{D}=(0.5\cos {\alpha }+0.5)^{2}*C*I_{L}}
ランバート反射モデルでは照明の背面(法線と光源が90°以上の角度を持つ領域)は黒1色にライティングされる。シーンが少数の直接光で構成されていたり解像度の低い大域照明で照らされている場合、このライティング特性から背面部の形状が識別できなくなったり色がフラットになってしまう。Valve Softwareはゲーム「ハーフライフ」のために、この欠点を改良したハーフ・ランバート照明を開発した。ランバート反射で0にクランプされていた領域が正の値を持つように cos  α {\displaystyle \cos \alpha } を変更し、正面部分の形状をある程度保つために二乗する。これにより背面部にもライティングとその濃淡が与えられ、(物理学的な正当性は無いが)視覚上現実的で自然に見えるライティングが可能になる。分類としてはリアルタイム処理系向けの疑似ラジオシティ手法にあたる。
コンピュータグラフィックスでは、ランバート反射は拡散反射のモデルとしてよく使われる。この反射は、面の正規化法線ベクトル N {\displaystyle \mathbf {N} } と面から光源を指す正規化ベクトル L {\displaystyle \mathbf {L} } の内積を使って計算される。そして、この値に面の色と面を照らす光の輝度を掛け算する。
I D = L ⋅ N ∗ C ∗ I L {\displaystyle I_{D}=\mathbf {L} \cdot \mathbf {N} *C*I_{L}}
ここで、 I D {\displaystyle I_{D}} は拡散反射光の輝度(表面の明るさ)で、 C {\displaystyle C} は色、 I L {\displaystyle I_{L}} は入射光の輝度である。
L ⋅ N = | N | | L | cos  α {\displaystyle \mathbf {L} \cdot \mathbf {N} =|N||L|\cos {\alpha }}