CSG NCシミュレーション

Constructive Solid Geometry representations が安定してきたし、処理速度も初期の状態から数十倍は高速になった。だが、本来要求する速度にはまだまだ達していない。
超二次楕円体陰関数(近似的にはキューブ)との高速な衝突判定に比べればとんでもなく遅い。
ただ、それと引き換えにシミュレーション結果は非常に良い。
超二次楕円体陰関数面は近似的にはキューブとみなせるのでデータの管理はOctreeで行うことが出来る。
その点は強みだが完全なソリッド集合演算では難しいが次のようなハイブリッドアルゴリズムを考案した。
ソリッド同士の干渉計算(内部的には微小な三角形群同士の干渉計算)なのでとてつもなく遅い。
それを干渉チェックにOctree超二次楕円体陰関数面(キューブ)群を使用して高速化をはかった。
 
生のOctree超二次楕円体陰関数面(キューブ)群では下図のような見た目が荒いシミュレーションになる。
イメージ 1
しかし、完全なソリッド集合演算では次のようになる。
イメージ 2
見た目の精密さは明らかだ。
イメージ 4    イメージ 3
法線マップを見れば一目瞭然。重ねてみた結果は
イメージ 5
こんな感じ。
しかし、冒頭で述べたように処理速度は完全に不十分だ。OpenMPOpenCL(cuda)を使おうかと考えているがこういった逐次処理に使える部分があるのか疑問だ。