edupt ベースでレンダラ書いた
@h013 氏作の edupt (http://kagamin.net/hole/edupt/index.htm) をベースにパストレーサでレンダラを書いてみました。
ソースはこちら: https://github.com/omochi64/simple_pathtracer (Visual Studio 2013 のみビルドを確認)
edupt の機能に加えてobjファイルの読み込みや領域分割も実装しましたが、とりあえず edupt デフォルトの機能でコーネルボックスをレンダリングした結果がこちら (クリックして拡大)
レンダリング時間は、Core i7-4770 3.4GHz で7並列実行したときの時間です
トーンマッピングは edupt と同じく、ガンマ補正して8ビットの値にマッピングしてます (rgb_8bit = (int)(255.0*pow(rgb_float, 1.0/2.2) + 0.5))。
このシーンは結構ライトが大きいですが、それでもシンプルなパストレだと収束するの結構時間かかりますね。
(下3つは変わってないように見えるかもしれないですが、拡大してオリジナルサイズで見ると変化がわかると思います)
まだまだ実装していきたいものがいろいろあるのですが、とりあえず自分が今のところ何を実装したのかを文章でまとめる目的で記事にしてみました
気が向けば実装した他の機能についても書いていこうかと思います