階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法

Post on 30-Jan-2016

41 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法. 西田研究室  渡辺健人. 発表の流れ. 研究の背景・目的 関連研究 提案法 結果 まとめと今後の課題. 発表の流れ. 研究の背景・目的 関連研究 提案法 結果 まとめと今後の課題. 研究の背景. レイトレーシング 3次元シーン上での視線の経路を追跡することでリアルな画像が生成できる 欠点:計算コストが大きい. [Wald06]. 研究の背景(2). 陰関数曲面 少数のプリミティブでなめらかな曲面を表現できる 直接描画することで正確に曲面を表現可能 ここではメタボールを扱う. - PowerPoint PPT Presentation

TRANSCRIPT

階層的境界ボリュームを用いた陰関数曲面の高速なレイトレーシング法

西田研究室 渡辺健人

発表の流れ

研究の背景・目的 関連研究 提案法 結果 まとめと今後の課題

発表の流れ

研究の背景・目的 関連研究 提案法 結果 まとめと今後の課題

研究の背景 レイトレーシング

3次元シーン上での視線の経路を追跡することでリアルな画像が生成できる

欠点:計算コストが大きい

[Wald06]

研究の背景(2) 陰関数曲面

少数のプリミティブでなめらかな曲面を表現できる

直接描画することで正確に曲面を表現可能ここではメタボールを扱う

[Knoll07]

研究の目的 多数のメタボールに対する高速なレイトレーシング方法の開発 多数のメタボールに対するレイキャスティングはあるが、レイトレーシングはない

レイトレーシングは計算コストが高いので高速化が必要

屈折1回のみ 3回まで屈折を追跡

発表の流れ

研究の背景・目的 関連研究 提案法 結果 まとめと今後の課題

関連研究(1) レイトレーシング

再帰的にレイの経路を追跡することで、反射、屈折、影などの現象を扱う手法 [Whitted 1980]

大規模なシーン向けの高速化 Bounding Volume Hierarchy(BVH),kd-tree などの空間デー

タ構造を用いた手法 [Wald 2007]

[Whitted80]

[Wald07]

関連研究(2) 陰関数曲面

任意の陰関数曲面のレイトレーシング         [Knoll et al. 2007]

長所:任意の陰関数曲面を扱える 短所: 区間演算法を用いているので計算量が大

きい 多数の動的なメタボールのレイキャスティング 

    を GPU で高速化 [Kanamori et al. 2008] 長所:大量の動的なメタボールをリアルタイムで描画可

能 短所:反射、屈折などは1回までしか扱えない

[Knoll07]

[Kanamori08 ]

メタボールとは 空間上に配置された密度を持った球 各球の密度を足してできる密度場の等値面によって表現される陰関数曲面

メタボールとの交差判定 [Nishita et al. 1994] の方法による

メタボールの曲面は球内にのみ存在する 球との交差判定行い、球内でのみ曲面との交

差判定( BezierClipping) を行う さらに、曲面との正しい交点を効率よく求

めるために球内でも交差判定を行う範囲を分ける

メタボールとの交差判定

メタボールとの交差判定

メタボールとの交差判定

メタボールとの交差判定

メタボールとの交差判定

メタボールとの交差判定

発表の流れ

研究の背景・目的 関連研究 提案法 結果 まとめと今後の課題

提案法

メタボールの交差判定でのボトルネックは区間を求めるための球との交差判定部分 球との交差判定の高速化に2分木の空間データ構造である BVHを用いる

区間の求め方を2種類検討した 1区間ずつを高速に求める 1度に複数区間求めることで高速化

レイと球との交差判定

レイと球との交差判定 空間データ構造なしの場合:                 レイとすべての球との交差判定を行い、最も近い交点を求める

BVHを用いれば高速化できる プリミティブ(今回は球)の集合をつつむ領域による2分木構造

BVH

BVH

BVH

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

D

BVHを用いた球との交差判定

Stack

A

CB

ED F G

球との交差判定 (2回目)

Stack

A

CB

ED F G

球との交差判定 (2回目)

Stack

A

CB

ED F G

球との交差判定 (2回目)

Stack

A

CB

ED F G

球との交差判定 (2回目)

Stack

A

CB

ED F G

曲面との交差判定

Stack

A

CB

ED F G

求まった交点間で曲面との交差判定を行う 交点が求まらなければ、球との交差判定をもう一度行う

方法1

同じレイで BVHを複数回たどると余分な交差判定を繰り返すことになる

2回目以降は交差判定が必要なノードから判定を開始 経路は基本的に同じなので、最初に球と交差したノードとスタック

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

D

BVHを用いた球との交差判定

Stack

A

CB

ED F G

球との交差判定 (2回目)

Stack

A

CB

ED F G

球との交差判定 (2回目)

Stack

A

CB

ED F G

球との交差判定 (2回目)

Stack

A

CB

ED F G

球との交差判定 (2回目)

Stack

A

CB

ED F G

球との交差判定 (2回目)

Stack

A

CB

ED F G

方法2

複数の区間を1度に求める 最も単純な方法

全交点を求め、ソートすれば全区間が求まる BVHを用いれば、レイに近い順の交点を部分的に求められる

交点を順次ソートしながらたどる スタックに積む際にノードをソートしながら積む

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

B

BVHを用いた球との交差判定

Stack

A

CB

ED F G

B

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

D

BVHを用いた球との交差判定

Stack

A

CB

ED F G

BVHを用いた球との交差判定

Stack

A

CB

ED F G

結果

実行環境 Core 2 Duo 2.00GHz, Memory 2GB 2スレッドで計算

画像サイズは 640x480

実行時間のグラフ (時間はsec)

ランダムに生成した球に対する結果で、屈折を3回まで

実行時間のグラフ (時間はsec)

ランダムに生成した球に対する結果で、反射を3回まで

結果 例120個のメタボールに対して4回まで反射を考慮(0.23sec)

右図は左図の赤い部分の拡大図

結果 例25000個のメタボールに対して3回屈折を考慮

結果 例38351個のメタボールに対して3回屈折を考慮 (2.68sec)

発表の流れ

研究の背景・目的 関連研究 提案法 結果 まとめと今後の課題

今後の課題

球との交差判定のさらなる高速化 質の高い BVH の構築方法 GPU による実装

メタボール以外の陰関数曲面の描画 Sparse Low degree Implicit(SLIM) 曲面など

まとめ

多数のメタボールに対する高速なレイトレーシング方法の提案 BVHを用いた密度球との交差判定の高速化 曲面が存在しうる区間を高速に求める方法を示した

方法1:1つの区間を求めることを高速化 方法2:1度に複数求めることによる高速化

BVHを使っただけの方法より、方法1では10~20%、方法2では3~4倍の高速化

ご清聴ありがとうございました

                             

top related