ボクセルの更新には特に工夫はなく、毎フレーム計算し直しです。
ベースは以下の2つです。
Geeks3D
Practical Real-Time Voxel-Based Global Illumination For Current GPUs
ボクセルグリッドは128x128x128のミップマップレベル6段階。
ディフューズに9本、スペキュラに4本のレイを飛ばします。
ボクセル化する際にスーパーサンプリングを行って、
ボクセルの不透明度を計算しています。
ボクセルに対して小さいもの、薄い布等は、
裏側で不正な結果が目立つようです。
ボクセル更新の工夫と、低解像度でGI計算すれば、
なんとか使いものになるかもしれない。
カスケードやクリップマップでLODを行うものが提案されていますが、
どちらも遠方の光漏れを防ぐ方法がないのではと思います。
ソースのようなもの
GitHub
0 件のコメント:
コメントを投稿