GPUPPURのライバル?
GPUでレイトレーシングを行う研究がされていて、以下の場所にその研究の論文などがあります。
http://www.gpgpu.org/cgi-bin/blosxom.cgi/Advanced%20Rendering/index.html
ここの
A Comparison of Acceleration Structures for GPU Assisted Ray Tracing
http://www.larsole.com/files/GPU_BVHthesis.pdf
によれば、GPUでのレイトレーシングではUniformとkd-treeとBVH(bounding volume hierarchy)ではBVHが一番速いらしい。
確かCPUではkd-treeが一番速いとどこかで見たような気がします。
http://graphics.cs.uiuc.edu/geomrt/geomrt2006.pdf
の論文によれば、有名なStanford Bunnyをレンダリングする時間は
BVH:257ms
uniform grid:357ms
kd-tree:701ms
のようです。
ちなみに
CPU:AMD sempron 2800+
memory:1GB
VGA:Geforce6600GT
の環境でStanford BunnyをPov-rayでレンダリングしたところ4秒かかりました。
そのときの設定は以下の通り
;Resolution
- W512
- H512
;Output format: PNG (portable network graphics)
- FN
- SP8
- EP8
;Antialiasing
- A
;Quality
- Q2
;Alpha transparency option
;Continuation option
- C
;Animation parameters
Initial_Clock=0
Final_Clock=1
Initial_Frame=0
Final_Frame=0
同様のマシンでMeshLabというソフトを使い、OpenGLの力を借りてレンダリングしたところ約50FPSだったので
20msということになります。
GPUPPURでStanford Bunnyを20ms以下でレンダリングできるようになったらいいなぁ。
GPUPPUR最大のライバル(と勝手に思っている)であるレイトレーシング専用ハードウェアSaarCOR
http://graphics.cs.uni-sb.de/SaarCOR/
というのがあります。
現在のところFPGAによる実装までしかないようですが、それでもPentium-4 2.66GHzで動くOpenRT software raytracer with SSE-optimized codeというレイトレーサーより3~5倍ほど速いらしいです。
Stanford bunnyをレンダリングした結果のデータは見つかりませんでしたが、三角形の数がもっとも近い52790のシーンを512x384という少し小さめの画像へ出力したとき、
SaarCORは26.7fps、OpenRTは8.0fpsだったらしいのでレンダリング時間は
SaarCORは37.5ms、OpenRTは125msということになります。