点光源
点光源(英語:Point Light)とは、3DCGにおいて特定位置で発光する豆電球やLEDのような光源のことである。
概要
点光源は主に夜道の街灯や松明などを表現するのに使われる。つまり「暗いシーン」がメインである。
メガドライブやセガサターンの流れを組むゲームでは、夜中に武装して作戦行動したり、洞窟でバケモノと戦ったり、平行光源と環境光だけでは不自然になるため点光源が多用される傾向がある。
一方、日本ではスーパーファミコンやプレイステーションなどの明るめなゲームが主流であったため、Xbox 360やPlayStation 3が登場していわゆる「洋ゲー」の存在感が大きくなるまでは点光源を使う事例はあまりなかった。
問題点
3DCGで一般的なバーテックスシェーダーとピクセルシェーダーを順番に実行して絵を作る技法(フォワードレンダリング)の負荷は「モデル数とライト数の掛け算」となるため、1つのシーンの中に大量に並べる傾向がある点光源の実装は難しい問題である。
このため大量に光源(点光源に限らず)を使いたい場合は「デファードレンダリング(遅延レンダリング)」という技法を用いることが多い。
実装例
よくある点光源の実装は、
- 球体モデルを用意して、
- バーテックスシェーダーで球体の中心座標(ワールド座標)を計算し、
- ピクセルシェーダーでポリゴン表面座標と中心座標の間を塗る感じである。