デイライトを HDR に書き出す機能を追加(Added the function which exports the sunsky simulation result to a .hdr image.)

by syoyo

デイライトシミュレーションの結果を .hdr に書き出す機能を付け加えました(revision 156)。

http://lucille.atso-net.jp/svn/angelina/sunsky/

angular map 形式で書き出しています。
(半球上、つまり地平線より上の部分しか計算されないので、下側は真っ黒になります)
このようにしておけば、他の HDRI 対応のレンダラとかに読み込ませて HDR ライティング(環境ライティング)
に使うことができるので、lucille との比較にも使えます。
(太陽そのものの光源は含んでいません)

実際に lucille に組み込んで使うときにも、内部で前計算によりテクスチャに展開しておき、
環境マップライティングをする、というアプローチになるので、そのテストも兼ねています。

まだ生成されたマップを HDR ライティングとしてレンダリングして試していないので、
ちょっと間違っているかも。

しかし、画像だけでも確認しようと結果の .hdr を見ようとしても、ダイナミックレンジが高すぎて、
あまりちゃんと表示できる hdr viewer がありません。
(白飛びしたり、真っ黒になってしまったり)
やはりちゃんとトーンマッパーを実装しないとダメだという必要性を感じました。

ということで、トーンマッパーを実装すんべかな、と web を調べていたら、
wikipedia の解説が結構まとまっていて充実していたのでちょっとびっくり。

http://en.wikipedia.org/wiki/Tone_mapping

しかもそこのリンクにある、 PFStmo というほとんどのトーンマッピングの論文の手法を実装したソースコードも!

PFStmo :: tone mapping operators
http://www.mpii.mpg.de/resources/tmo/

外部から呼び出せるし、これでいいじゃんと思いましたが、
出来れば勉強のためにも、 Ashikhmin あたりの簡単なものを自分で rockenfield に実装しなおそうかと思います。

Advertisements