グローバルイルミネーション(11) 再び表面下散乱

まだ、確信が持てないのだがどうやら実装は正しそう。
 
と、いうのもこれまでクリームの計算結果が納得できなかった。
クリームの散乱パラメータ[1/mm]は
σs=7.38, 5.47, 3.15
σa=0.0002, 0.0028, 0.0163
元々も透明な物体だが上記のような散乱σs(吸収σa)が起きるとクリームというかミルクのような感じになる(あるいはクリームやミルクは物理的に上記パラメータによって散乱・吸収が起きることによってあのような質感が生まれる)。
散乱によっても減衰が起きるので全体的な減衰はσt = σs+σaになるわけだがかなり値としては大きい。つまり概ねexp(-σt *d) で減衰する(dは光が進んだ距離)。
 
計算してみると「なんか黒い」。
表面下散乱の過程は正しく計算されているが他の要因によるため黒っぽく見える。
だって、減衰は結構大きいから、、、きっと計算は正しい。
 
そう思おうとしていた。ふと思ったのが今回の改修ではどんな結果になるのだろうか?と。
それで計算してみた。結果は
イメージ 1
オーーー、これこれ!!。
これをもって今回の改修が正しいだろうという判断に至ったのだ。
 
ちなみに上記パラメータはpbrtから。pbrtはBSSRDFで計算しているようなので計算効率は桁違いだろう。私のはあるいみ忠実に光の散乱過程を物理的にシミュレートしているので計算はしゃれにならないほど遅いし、基本的なパストレーシング法なのでその時点でもパフォーマンスの差は歴然。