Gゼミ 2009/12/25 発表者 渡辺健人 内容 • BVHとの交差判定の高速化について BVH レイ 境界ボックス0 球C 境界ボックス2 1 球A 2 3 球D 左図のBVHは下記 のようになる 境界ボックス0 境界ボックス1 球B 境界ボックス1 境界ボックス2 4 (A,B) 現状では交差点1,2,3,4を求める際に常に境 界ボックス0から交差判定を行っている (C,D) BVHとの交差判定法 方法1 曲面の存在しうる区間を求めるときに、1回前のB VHとの交差判定時の情報を使う 具体的には、 まず、最初にレイと交差した球を含む葉ノードとそのと きのスタックを保存しておく 最後までBVHをたどり、曲面の存在しうる区間が求ま ったら、その区間で曲面との交差判定を行う 失敗した場合、次の区間を求める時には、開始ノードを 保存されていたノードにし、スタックも復元した状態で、 球との交差判定を再開すればよい BVHとの交差判定法 方法2 球とのBVHをたどるときに球との交差点をソートし ながらたどる あるノードに到達した際に、現在求まっている球と の交差点の中で、そのノード以降でそれより近い交 差点がでないとわかるものは順序が確定する そこで、確定した交差点間で曲面との交差判定を 行い 交差したら、終了 交差しなかったら、現在のノードから球との交差判定を 再開する これからの方針 球との交差判定について 方法1、方法2を実装してみる 曲面との交差判定について ベジェクリッピング以外の方法、例えば、セカント法とか を実装してみる
© Copyright 2024 ExpyDoc