[[cg:start|CG用語集トップ]] > [[cg:rendering:start|第3章 レンダリング]] ====== 入射角余弦の法則 ====== ===== 概要 ===== 入射角余弦の法則は、拡散反射の明るさが、光の入射方向と面の法線のなす角の余弦に比例するという法則である。正面から当たるほど明るくなる。 {{:cg:figures:chapter03:fig_3_12_point_light_diffuse.png?600|点光源による拡散反射成分の計算}} ===== 詳しい説明 ===== 面に光が当たるとき、光が面に対して正面から当たる場合は、同じ光量が狭い面積に集中する。一方、斜めから当たる場合は、同じ光量が広い面積に広がるため、単位面積あたりの明るさは小さくなる。この関係を表すのが入射角余弦の法則である。拡散反射では、面の法線と光の入射方向の角度を使い、その余弦によって明るさを決める。角度が0度に近いほど明るく、90度に近づくほど暗くなる。ゲーム実装では法線ベクトルと光方向ベクトルの内積として扱いやすい。 ===== CG制作との関係 ===== CG制作では、物体の丸みや面の向きによる明暗を作る基本になる。同じ色の物体でも、光の向きに対して面がどう向いているかで明るさが変わる。 ===== ゲーム開発との関係 ===== ゲーム開発では、ランバート拡散反射としてよく使われる。ピクセルシェーダで法線と光方向の内積を計算し、負の値を0に丸めて明るさを求めることが多い。 ===== 制作・実装での例 ===== C++やHLSLでライティングを実装するときは、`saturate(dot(N, L))` のような形で表される。これは法線Nと光方向Lの内積を使う考え方である。 ===== 検定対策ポイント ===== 入射角余弦の法則は、[[cg:rendering:diffuse_reflection|拡散反射]]の明るさを決める基本である。面の法線、光の方向、角度の余弦が関係することを押さえる。 ===== 関連用語 ===== * [[cg:rendering:diffuse_reflection|拡散反射]] * [[cg:rendering:directional_light_no185|平行光線]] * [[cg:rendering:shading|シェーディング]] * [[cg:rendering:cosine_law_of_incident_angle|入射角余弦の法則]] * [[cg:rendering:point_light_source_no187|点光源]] ===== タグ ===== * CGエンジニア検定 * 第3章 ---- [[cg:rendering:start|← 第3章 レンダリング の目次に戻る]] [[cg:start|← CG用語集トップに戻る]]