空間分割その3

kd-tree を実装してみたのでお楽しみの速度比較。

最大深度: 3
サンプリング回数:500

通常

レンダリング時間:71129ms

Kd-tree

レンダリング時間:50245ms

およそ 20秒近くの高速化。
3割りくらいかな。

サンプリング数と二次レイが増加する程もっと顕著な差が出てくるはず。

予想外だったのはシーンによっては分断面を共有するプリミティブが多く
kd-tree の分割が全くされないケースや共有されるが故に余分なメモリ消費が発生。
コーネルボックスぽいのではまったく分割されないため、状況によっては kd-tree の方が
遅い結果になってしまった。

とりあえず落ち着いたので色々なシーンで試してみたいところ。
いい加減ハードコーディングしたシーンも面倒なので外部から読み込めるようにしておくべきか。
3DS ファイルあたりにでも対応してみることにしよう。