関数の中のstatic変数
static変数は怖い。摩訶不思議。
const char* func(){ static std::string s; s = GetHoge(); return s.c_str(); }
を
const char* func(){ static std::string s = GetHoge(); return s.c_str(); }
にすると期待どうりに動かないだろう。
2/24 返り値の型まちがってたのを修正
続きを読むフォトン・シャドウマップ
フォトン・シャドウマップ的なものを実装した。シャドウ・フォトンマップではない。
参考用にレイトレースシャドウ
レンダリング時間は点光源×3で
上:5秒
下:7秒
と少し速い。ライトが多くなればもっと差がつくだろう。
んが、前処理がかかりやがる。上の画像でフォトンを約400万くらいとばして、20秒くらい。それなりのクオリティが必要なら、もっと・・・。正直ダメジャンと思った。
・・・まあ独自にもの考えてもろくなことはないわけで、残念な感じ。
フォトンの飛ばしには乱数とか低食い違い列とか試したんだけど、うまく制御できないので(つうかまったく理論がわかってないので)、正20面体の再起分割を使った。わるくない。モンテカルロ法に対する、区分求積法なのかなあ・・・