【Blender】【Cycles】パストレーシングでノイズが生まれる原因・生まれやすいケース

Cyclesのパストレーシングでノイズが生まれる原因や生まれやすいケースについてまとめました。

パストレーシング?

パストレーシングの概要については以下の記事で説明していますのでこちらをご覧ください。

light11.hatenadiary.com

パストレーシングとノイズ

いま、パストレーシングであるピクセルの色を求めることを考えます。
ピクセルの色はその法線を中心とする半球上の色んな方向にレイを飛ばすことで求められます。

f:id:halya_11:20190113145248p:plain

ここで、半分が明るく、もう半分が暗い半球を考えます。

f:id:halya_11:20190113145608p:plain

この半球に対して3回パストレーシングをしてみます。
レイを飛ばす方向はランダムです。

たまたま暗い方向にばかりレイが飛ぶと、結果は暗くなります。

f:id:halya_11:20190113145858p:plain

これに対して明るい方向にばかりレイが飛ぶと、結果は明るくなります。

f:id:halya_11:20190113150036p:plain

このように、パストレーシングではレイを飛ばす方向がランダムなので、
正確な結果としてはグレーが得られるはずのピクセルが白くなったり黒くなったりとエラーが生じます。

そして正しい結果がグレーであるピクセルがいくつもあったとして、
このようなエラーがたくさん生じるとそれがすなわちノイズとして現れます。

f:id:halya_11:20190113150612p:plain

サンプリング数とノイズ

前節のように、ノイズが発生する原因はレイを飛ばす方向がランダムである点にあります。
そのため原理的には、レイを飛ばす回数を増やせば結果は正しい方向に収束します。
つまり、サンプリング数を増やせばノイズは減ります。

ただしサンプリング数を増やすと処理負荷が跳ね上がり、計算時間が増えます。
さらに次節で説明しますが、サンプリング数を増やしてもノイズが出やすい状況もあります。

ノイズが出やすい状況

サンプリング数が多くてもノイズが出やすい状況や、逆にサンプリング数が少なくてもノイズが出づらい状況があります。

たとえば、ピクセルに差し込む光が半球上で均一だったら、
どこにレイを飛ばしても同じ結果なのでノイズは発生しません。

f:id:halya_11:20190113151329p:plain

これに対して前々節で例に挙げたようなレイを飛ばす方向によって
結果が大きく変わるような状況ではノイズが出やすくなります。

f:id:halya_11:20190113151931p:plain

また半球の一部だけが極端に明るい場合には、
ここをサンプリングした時だけ明るい結果になるので非常にノイズが出やすくなります。

f:id:halya_11:20190113152020p:plain

このような状況では、サンプリング数を上げる以外の方法でノイズを軽減する必要があります。
これはまた別の記事で紹介しようと思います。

関連

light11.hatenadiary.com