2014年10月6日月曜日

Voxel Cone Tracing

Sparse Voxel Octreeではなく、レギュラーグリッドとミップマップです。
ボクセルの更新には特に工夫はなく、毎フレーム計算し直しです。

ベースは以下の2つです。
Geeks3D
Practical Real-Time Voxel-Based Global Illumination For Current GPUs

ボクセルグリッドは128x128x128のミップマップレベル6段階。
ディフューズに9本、スペキュラに4本のレイを飛ばします。

ボクセル化する際にスーパーサンプリングを行って、
ボクセルの不透明度を計算しています。

ボクセルに対して小さいもの、薄い布等は、
裏側で不正な結果が目立つようです。

ボクセル更新の工夫と、低解像度でGI計算すれば、
なんとか使いものになるかもしれない。

カスケードやクリップマップでLODを行うものが提案されていますが、
どちらも遠方の光漏れを防ぐ方法がないのではと思います。

ソースのようなもの
GitHub