2014年1月8日水曜日

[3DCG] Scalaでパストレーシング実装中

最近は3DCGのプログラミングをしています。Scalaを使ってます。まだまだ実装途中ですが、ここまでの結果をログとして記録しておこうと思います。

今はパストレーシングを実装中。光源から光の届き具合を調べる為に、直接光が当たる部分と間接的に光が当たる部分の画像に分けて出力しました。ピクセル毎に500パスを使用して描画しました。以下は、その結果の画像です。ちなみに、まだ色は考えてないので、白黒の画像です。輝度のみです。

直接光による寄与

各ピクセルから500本の光線を飛ばし、拡散面で1度だけ反射して光源に到達した光線を描いた画像。手前の球に光源が映っているところがおかしい。ノイズがある。光線の本数が足りないのかなぁ。


間接光による寄与

直接光の画像と同じように、各ピクセルから500本の光線を飛ばしました。違いは、2度拡散面で反射し光源に到達した光線を描いたところが違います。全体的に光が分散してる感じなので悪くないのでは!?


直接光+間接光

上の2つの画像を足しあわせた画像。うーん、いまいち。何かが足りない感じ。参考にしている本によれば、100paht/pixelくらいで結構キレイな画像生成しているだけどなぁ。


あとは、これをもうちょっと改造して色をつけてって感じです。最終的にはフォトンマップまで実装しようと思ってます。

0 件のコメント:

コメントを投稿