まだ、レンダリングエンジンいじり中

最近、ホームページのアクセス数やこの日記のコメントが減ってきていい感じです。

さて、日記こそ更新していないものの、ちゃんとプログラミングはしていました。この前書いたとおり、HDRレンダリングをやりました。(ここ3日間はMultiVMR9をいじっていたのですが…)

HDRレンダリング

基本的にはレンダリング先にA16〜F形式のテクスチャーを指定すればOKなので簡単ですね。あとは、ブルーム処理とかトーンマッピングとか。動的トーンマッピングの実装法もt-podさんで紹介されていたので適当に実装してみました。

ですが、A16〜F型のテクスチャーは厄介で、アルファテストとかアルファブレンディングが出来ない機種があるようです。Geforce 6200でも駄目みたいです。ビルボードやら2D表現を多用する僕にとっては致命的ですね。ちなみに、近くにあったGeforce 6600GTでは問題なく動作しました。HDRは時代的にまだ早かったみたいです。(GMA900ではHDRテクスチャーが作れないので論外)

ということで、HDRの実装はそこそこにして、LDRでもちょっとした効果が得られるように明るい部分のライトブルームだけを使えるようにしてみました。こんな感じです。

わぁ〜、光ってる〜ここら辺なら、2Dベースでもかっこいい表現に使えそうです。
そのほかにも、シャドウマップをちょっと改良(?)して、テクスチャーのアルファテストを行うようにしました。画像じゃ分かりにくいですが木の陰などは葉っぱのテクスチャー部分まできれいに落ちています。

パースペクティブ・シャドウマップ

シャドウマップには問題点が色々とあるので、ちょっと改良型のパースペクティブ・シャドウマップを実装しようと思ったのですが…うまくいかない…
理論的にはそんなに複雑なことはしていないはずなんですが…ん〜、行列の演算を間違えてるんだろうな…どなかた、出来た方はいらっしゃいませんか?