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