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