技術

フォトンベイカー(仮)進捗その12

前回、直接照明+PPMによる関節照明+ガウシアンフィルタによる間接照明のぼかし+ファイナルギャザリング、という流れでレンダリング(ベイク)するよう実装し、いちおうちゃんと動いてるように見えた。
実は放射束や放射照度や放射輝度の意味や関係がよく分かってなかったので、理解を深めるために少し勉強してみた。
われながら「今更かよ…」という感じだ。

まだ理解出来たわけじゃないけど、少し知識を深めた頭でソースを読み返してみると、物理に則ってないと思われる部分がいくつか見つかった。
そのなかの一つに、直接照明の間違いがあったので修正した。
簡単に言うと、放射照度の距離減衰を考慮してなかったので、壁にハイライトが出づらく、床面が明るくなりすぎていた。

修正した結果は以下のとおり。
(ファイナルギャザリングの実装にも怪しい部分が見つかったので、ぼかしと共にオフにしている。)
DI100_GI10mテクセル当たりシャドウレイ100本、総フォトン数一千万

ぼかしをオフにしてるのでノイズが目立つ。
(FGオフでぼかしだけオンにしても単にボケた見た目になるだけなのでオフにしてる。)

本家の写真と比べてみると、マテリアルの完全再現をしてるわけじゃないので色合いが違うのは仕方ないとして、相対的な明るさやハイライトの出具合はかなり近づいたように見える。

あとはファイナルギャザリングだ。
重ねがけすればするほど綺麗になっていくようなものを実装したいと思ってるけど、現状ではそうするとどんどん明るくなっていってしまう。
全体的に明るくなりすぎても、トーンマッピングしてそれなりの画になるならOKという考え方もあるかもしれないが、一応このシーンの光源は白色300ワットという設定なので、それに則した明るさにならなければ物理的におかしいはずである。

そもそもFGって物理的にどういう意味を持つのか、そもそも重ねがけして誤差を減らしていくような実装が可能なのか、調べたうえで考えたい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください