放射束の格納に一様グリッドを用いる方法はだめかも

前回、テクセルの歪みによる収束スピードの差を無くすにはシーン空間を一様なグリッドに区切ってそのなかに放射束情報を格納すればよくね?って事を書いたけど、実際にやってみたら確かに前回書いたような問題は解決したが、新たに解決が難しそうな問題が表面化した。
UG_P100m
斜めになってる箱の側面や赤い壁(こちらも実は微妙に斜めになってる)に筋のようなものが見える。
これは多分、一様グリッド(AABB)が斜めになってる物体表面とマッチしなくて、二次元画像で起きるエイリアシングのようなものが三次元上で起きてるんだと思う。
もう少し具体的に言うと、「グリッドが物体表面で切り取られたときの断面積」が他より明らかに小さいグリッドにおいて、フォトンの当たりづらさにより、暗くなっていると思われる。
(あと色合いも微妙におかしい。ただこれは多めにフォトンを飛ばすと今までと同じ感じになるので、収束に時間がかかるようになっただけだと思う。)

続きを読む

放射束の格納にテクセルを用いる方法の問題点

テクセルはテクスチャ空間上で一様であるが、三次元空間でもそうであるとは限らない。
テクスチャをポリゴンに貼りつけると、テクセルの密度や歪み具合は各ポリゴンでまちまちに成り得る。

続きを読む

平行光源のテスト

dirlighttest
直接光があたる範囲が狭いとやはり間接照明の収束に時間がかかる。
1億フォトンで約900秒。

続きを読む

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

前回まで、PPMだけに頼らず直接照明やFGを駆使することによって最終的な画の質を上げようとしていた。
質って何?って考えたときに、「ノイズが無いディティール感」というのが大事であり、前回まではその「ノイズが無いディティール感」を素早く得るために色々頑張ってきた。
ノイズを無くすにはぼかせばいいけど、そうするとディティール感が損なわれる。
さじ加減が難しい。

続きを読む

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

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

続きを読む

ガウシアンフィルタに注意

同じタイトルが並ぶのもあれなので変えてみた。
進捗というほどでもないし主眼が違うし。

続きを読む

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

前回フォトンマッピング法の実装に成功したが、直接照明も間接照明もすべてフォトンの情報を直接可視化することで表現してたので、ノイズが目立っていた。
何の工夫もしてないモンテカルロ法の宿命として、ノイズを半分に減らすにはサンプル数を4倍にしなければならないというものがあるが、1億フォトンを飛ばして30分かけて計算してもノイズが残るなど、まさにその宿命が顕になった。

続きを読む

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

前回に引き続きまたもやフォトンの反射率の計算や反射後の出力の計算、放射輝度推定の方法を変更した。
というのも前回参考にした方法でももう少し頑張ればまともな絵が出せそうな気はしてたが、それ以前に処理速度の低下が激しかったので内心やばいなと思ってた。

続きを読む

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

現時点でこんな感じ。
t100000_m80_s50_2
総フォトン数は10万、推定に使ったフォトン数は各80個。

続きを読む