« デザエモンplus vs デザエモンkids | Main | shade10のイラディアンスキャッシュは使い物にならないかも・・・ »

03/26/2008

shade10でイラディアンスキャッシュ使用時のノイズを緩和する裏技(?)

イラディアンスキャッシュをONにすると、不正なノイズ(白い斑点だったり黒い斑点だったり斑模様だったり)が発生する事があります。

明るい部分と暗い部分が同時に存在していると、特にこのようなノイズが発生しやすいようです。
このノイズですが、「キャッシュの品質」や「レイトレーシングの画質」の値を上げても消えない事が多いです。

Rad2000min30tr0
↑(画像1)
「キャッシュトレランス」の値は0です。(なお、レンダリング手法はこの画像も、以下の画像もすべて「レイトレーシング」となっています。)

画像1は「キャッシュの品質」を2000、「レイトレーシングの画質」を2000(!!)にしましたが、目立つノイズが残っています。(レンダリング時間は30分と意外と短い)
これ以上「キャッシュの品質」や「レイトレーシングの画質」を上げていっても消えてくれそうにありません。(時間がかかってもいいので数値を上げる事によって消えてくれたらいいのですが、残念ながらそうではないようです。)
「キャッシュトレランス」の値を1とか2とかに上げるとノイズが消えるでしょうが、「キャッシュトレランス」の値を上げすぎるとイラディアンスキャッシュのサンプリング密度が落ちて細部の陰影が省略されてしまいます。



ところが、『とある事』をすると、このノイズを緩和できてしまうという裏技(?)を偶然見つけてしまいました。
以下の画像はその裏技を使って製作した画像です。

Rad200hour4tr0trm25
↑(画像2)
「キャッシュトレランス」の値は0です。
「キャッシュの品質」は200、「レイトレーシングの画質」は200です。(2000ではなく200)
ノイズは完全に消えていないものの、画像1に比べて大幅に緩和されています。
「キャッシュトレランス」の値は画像1のと同じ0、「キャッシュの品質」と「レイトレーシングの画質」の値は画像1の1/10に落としてあります。
しかし出てきた絵は画像1よりノイズが減っています。

ただし、この絵を出すためにかかった「総レンダリング時間」は4時間ほどと、8倍ほどになっています。
(*裏技の使い方を煮詰めていけば、時間はこの半分以下に抑えられるかもしれません。現在いろいろな設定で検証中)
 

さて、一体何を行ったのでしょうか?
答えは以下の通りです
 

1.まず「大域照明」タブの「レンダリング前に消去する」のチェックを外します。これによってイラディアンスキャッシュの使いまわしが可能になります。

2.次に「キャッシュの品質」を200、「レイトレーシングの画質」を200にした後、「キャッシュトレランス」の値を-2.5にします。重要なのは「キャッシュトレランス」の値を下げてイラディアンスキャッシュが参考にするサンプリングポイントの密度を上げる事です。

3.レンダリングを開始します。4時間程度でレンダリングが終わりましたが、画像はすごいノイズだらけです。サンプリングポイントの密度が上がってるので個々のノイズのサイズは小さくなってるものの目立ちます。でもこの段階では気にしないでください。

4.「キャッシュトレランス」の値を0に戻します。で、「レンダリング」ボタンを押します。
イラディアンスキャッシュは3でレンダリングした際に生成されたキャッシュを使いまわすので、レンダリング自体は一瞬で終わります。

5.で、できあがった絵が画像2です。

Rad200hour4tr0trm25
↑画像2(再掲)

残念ながらノイズはまだちょっと目立つので、「キャッシュトレランス」の値を0.6にしてもう一度「レンダリング」ボタンを押してできたのが以下の画像3です。(キャッシュはやはり使いまわすのでレンダリングは一瞬で終わります)

Rad200hour4tr06
↑画像3
まだおかしいところはあるものの、ノイズがだいぶ緩和されました。


おまけですが、画像3の状態から「消去」ボタンを押してイラディアンスキャッシュを一旦クリアしてから再レンダリングした画像が以下の画像4です。

Rad200min17tr06sairenda
↑画像4。ノイズがかなり目立ちます。




一度「キャッシュトレランス」の値を下げてサンプリングポイントの密度を上げてキャッシュ計算を行い、「キャッシュトレランス」の値を戻してサンプリングポイントの密度を下げると、先に計算したキャッシュ情報をブレンドして使用するためか、ノイズが目立ちにくくなるようです。
最初から「キャッシュトレランス」の値を0とか0.6にしてサンプリングポイントの密度の薄い状態でキャッシュ計算を行っても、はしょられた部分が足をひっぱっるためかシーンによっては目立つノイズが出るようです。
(*この考証は間違っているかもしれませんが・・・)

なお、上の手順では「キャッシュの品質」を200、「レイトレーシングの画質」を200、「キャッシュトレランス」の値を-2.5にしてレンダリングしてから0および0.6にして再レンダリングしたため4時間かかりましたが、以下の画像は設定を見直して2時間程度で総レンダリングが終わりました。

Rad200ch50hour2tr06
↑画像5
「キャッシュの品質」を50、「レイトレーシングの画質」を200にして、「キャッシュトレランス」の値を一旦-5にしてレンダリング(2時間ほど)した後、0.6にして再レンダリング(一瞬)したもの。
画像3と「キャッシュトレランス」の値は同じで、同じくらいノイズが目立たないようになっていますが、レンダリング時間は半減しています。

「キャッシュの品質」「レイトレーシングの画質」の値や、「キャッシュトレランス」の値を一度どのくらいまで下げてから戻すか、をうまくコントロールする事によって総レンダリング時間はもう少し短くできそうです。
これについてはいろいろ検証する余地がありそうですね。

(*「キャッシュの品質」および「レイトレーシングの画質」の値は変更してしまうとイラディアンスキャッシュがクリアされてしまうので、途中から変更できない点に注意してください。「間接光の明るさ」の数値、「キャッシュトレランス」の数値は変更してもキャッシュがクリアされません。)

 
イラディアンスキャッシュをONにして普通にレンダリングしてノイズが発生しない場合はこの裏技はまったく必要ないでしょうが、「キャッシュの品質」や「レイトレーシングの画質」を上げていってもノイズが目立つ場合は試しにやってみてください。
ノイズが多少緩和できると思います。

(それでも「キャッシュトレランス」の値によってはノイズが緩和しきれない時がありますが・・・。その場合は「キャッシュトレランス」の値を多少上げるしかないですね。キャッシュは保存されているので再レンダリング自体は一瞬で終わります。「これ以上上げると細部の陰影がなくなる・・・」という場合は、イラディアンスキャッシュをOFFにして涙を飲んで「根性レンダリング」を開始するとか・・・)

なお、自分が持ってるstandard版では残念ながらイラディアンスキャッシュの保存ができないのでずっとshadeを起動したままで全ての作業を終わらないといけないですが、pro版ならキャッシュの保存ができるので、ファイルをセーブする事によって途中でPCの電源を切ったりshadeを終了してもレンダリングの「再開」が可能だと思います。

|

« デザエモンplus vs デザエモンkids | Main | shade10のイラディアンスキャッシュは使い物にならないかも・・・ »

Comments

The comments to this entry are closed.