IES light profile (IES ライトプロファイル) の情報について
概要
- この記事では照明器具の照度データである IES light profile に関する情報について少しまとめてみようと思います.
- IES light profile を使ったゲームでのライティングは PS4 "Killzone : Shadow Fall" の物理ベースなエリアライティング(http://d.hatena.ne.jp/hanecci/20130520 )や Unreal Engine 4 のライティング(http://d.hatena.ne.jp/hanecci/20130719 )で採用されています.
IES light profile とは ?
- IES light profile は照明器具(ライト)の照度データで, 照明器具が光を放射するときの各方向のカンデラ値の分布を表しています.
- このファイルは照明器具のメーカーや有志の方々が Web 上で公開しています.
- IES Light profile をいくつか公開している 3D デザイナーの方のページ
- この IES light profile を使ってライトが放射する光の分布を IES viewer で可視化すると, 以下のようになります.
- ゲームで使われるようなポイントライトやスポットライトが放射する光の分布は非常に幾何学的で むらがないので, どうしても CG っぽいライティングになりがちです.
- なので, IES light profile を使ったライティングの方がより自然でリアルに見えそうです.
- IES Light profile を可視化するための IES viewer (フリーダウンロード)
IES light profile の中身って結局, 何 ?
- IES light profile の拡張子は .ies(.IES)で中身は下のようなテキストファイルになっています.
- 最初の 1 行目がフォーマットの種類を表していて, 恐らくその規格が決まった年代がフォーマット名の末尾についています.
- 例えば, LM-63-1986, LM-63-1991, LM-63-1995, LM-63-2002 などがあります.
- またファイルの最後に大量の数字の羅列がありますが, ここに一連のカンデラ値が書かれています.
IESNA:LM-63-2002 [TEST]BALLABS TEST NO. 14397.0 [TESTLAB] BUILDING ACOUSTICS & LIGHTING LABORATORIES, INC [ISSUEDATE] 03-DEC-2008 [MANUFAC] H.E. WILLIAMS, INC - CARTHAGE, MISSOURI [LUMINAIRE] 1/100W CLEAR ED17 LAMP 6"DIA 38.25"TALL WHITE BOLLARD [MORE] 4.5"DIA SPECULAR CONE REFLECTOR w/5.875"TALL ACRYLIC [MORE] CYLINDER LENS [LUMCAT] OSA6R-100PSMH120-AC [LAMPCAT] M90 MH100W/U/PS TILT=NONE 1 9000 1 35 1 1 1 -0.49 -0.49 0.406 1 1 100 0 5 10 15 20 25 30 35 40 45 50 55 60 62.5 65 67.5 70 72.5 75 77.5 80 82.5 85 87.5 90 95 105 115 125 135 145 155 165 175 180 0 0.00 12.00 87.00 182.00 167.00 300.00 655.00 944.00 822.00 703.00 614.00 565.00 487.00 438.00 372.00 309.00 262.00 216.00 182.00 142.00 111.00 83.00 61.00 42.00 25.00 19.00 14.00 14.00 15.00 20.00 33.00 36.00 27.00 4.00 0.00
- フォーマットの具体的な実装の意味については, 詳しくは下の URL を参照して下さい.
- IES Light profile のフォーマット
IES Light profile の GPU での利用
- よくライト用に 2D の投影テクスチャを使うことがゲームであると思います.
- それと似たような感じじで, 2D でグレースケールのものが IES light profile に相当すると思います.
- IES Light profile はライトのローカル座標系で各方向のカンデラ値の分布を表したものです.
- なので, 実際に GPU で使うときには IES light profile をグレースケールの 2d texture にテーブルとして書き込んでいるのではないか? と思っています.
- そして, ライティングするワールド座標系の点があった際に, それをライトのローカル座標系の座標に変換して, 2d texture を参照して, その点の光度を求めてシェーディングしているのではないか? と思います.