階層的空間構造を用いた陰関数曲面の高速なレイト

Download Report

Transcript 階層的空間構造を用いた陰関数曲面の高速なレイト

階層的境界ボリュームを用いた
陰関数曲面の高速なレイトレーシング法
西田研究室
渡辺健人
発表の流れ





研究の背景・目的
関連研究
提案法
結果
まとめと今後の課題
発表の流れ





研究の背景・目的
関連研究
提案法
結果
まとめと今後の課題
研究の背景



3次元物体の表示はCGでは重要
より多くの現象を扱えることは重要
なめらかな曲面を扱えることは重要
研究の背景(2)

レイトレーシング



3次元シーン上での視線の経路を追跡するこ
とで多くの現象を扱える
計算コストが大きい
レイトレーシングのイメージ図
研究の背景(3)

陰関数曲面


曲面の表現の1種で少ないプリミティブでなめ
らかな曲面を表現できる
ここではメタボールを扱う
研究の目的



多数のメタボールをレイトレーシングするのは計
算コストが高い
レイトレーシングでは反射、屈折等を考慮してよ
りリアルな画像を生成できる
多数のメタボールに対して高速にレイトレーシン
グを行いたい
発表の流れ





研究の背景・目的
関連研究
提案法
結果
まとめと今後の課題
関連研究(1)

レイトレーシング

再帰的にレイの経路を追跡することで、反射、屈折、
影などの現象を扱える


An Improved Illumination Model for Shaded Display [T. Whitted
1980]
Bounding Volume Hierarchy(BVH),kd-treeなどのレ
イトレーシング高速化用データ構造の特徴を説明

State of the Art in Ray Tracing Animated Scenes [I. Wald, et al
2007]
関連研究(2)

陰関数曲面

任意の陰関数曲面のレイトレーシング


Interactive Ray Tracing of Arbitrary Implicit Functions
[A.Knoll, et al]
多数の動的なメタボールのレイキャスティングをGPUで
高速化

GPU-based Fast Ray Casting for a Large Number of
Metaballs [Y.Kanamori et al]
メタボールとは

陰関数曲面の一種で球内で定義された密度関
数を重ね合わせたものの等値面となる
q f ( p  p )  T  0
i i
f i (r )  
qi : 密度
f i : 密度関数
i
4 r 6 17 r 4 22 r 2
( ) 
( ) 
( ) 1
9 Ri
9 Ri
9 Ri
1つのメタボール
pi : 効果半径球の中
(0  r  Ri )
複数のメタボール
T : 求める等値面の値
Ri : 効果球の半径
メタボールの描画方法

Nishita, Nakame(1994)の方法による





まず、その区間に寄与する各メタボールの密度関数をBezier曲
線形式に変換し、de Castejauのアルゴリズムで関数を区間に限
定する
Bezier曲線の各係数を足してできるBezier曲線がその区間での
密度関数になる
Bezier曲線との交差判定はBezierClippingを用いる
これらを図を使いながら説明する
区間を求めるのにレイと球との交差判定を行う必要があり、球の
数が増えると計算コストの割合が増える(ここを高速化した)
発表の流れ





研究の背景・目的
関連研究
提案法
結果
まとめと今後の課題
提案法

区間を求めるのにレイと球との交差判定を
行う必要がある


球との交差判定の高速化にBVHを用いる
BVHによるレイのトラバースを2つの異なる
方法で高速化を行った
レイと球との交差判定

レイと球との交差判定


レイとすべての球との交差判定を行い、最も
近い交点を求める
BVHを用いれば高速化できる
BVHを用いた球との交差判定
BVHを用いた交差判定
BVHを用いた交差判定
BVHを用いた交差判定
BVHを用いた交差判定
球との交差判定


BVHありとなしのときの実行時間の比較
生成した図
単純にBVHを用いた場合

単一のレイに対して、連続する区間を求め
るときに、実際にBVHをたどる際に、重複し
た経路をたどることになることを図で説明
する
案1

1回前にBVHをたどったときに最初にレイと
交差する球を含むノードからはじめればよ
い

求めた最も近い交点の球を含むノードとは限
らない
解説図

右の図のような場合
1ループ目は
Aから探索を行う
 2~6ループ目からは
Bから探索を始めればよい
 7ループ目からは
Cから探索を始めればよい

案2

BVHをたどりときに、交点をソートしてくと、
たどっている途中で区間が求められる


交点は1つの葉ノード内のみのソートでは不
十分でノード間に渡ってソートする必要がある
たどるノードをレイに近い順にすれば、
BVHを探索中に区間が定まっていく
解説図

右の図のような場合



たどる経路はA->B->Cとなり
Bで交点が4つ求まる
次にCでレイとCの近いほうの
交点より近いものは順序が確定する


ここではBで求めた交点のうち2つの順序が確定する
求まった区間で曲面と交差判定を行い


交差すれば終了
交差しなければ、探索を続ける
特徴

案1について



長所:単純なものに対して根から最初に交差判定が
必要になる葉ノードまでの探索コストが減る
短所:単純なものと同じで同じ球、同じノードと何度も
交差判定が必要になることがある
案2について
長所:各球、ノードとの交差判定は1度のみ
 短所:たどるノードの順序が変わるのでたどるノードを
つむスタックのサイズが大きくなる
交点をソートする必要がある

結果

実行環境



Core 2 Duo 2.00GHz, Memory 2GB
2スレッドで計算
画像サイズは640x480
結果 例1
20個のメタボールに対して4回まで反射を考慮
結果 例2
6000個のメタボールに対して4回まで屈折を考慮
結果 例3
100000個のメタボールに対して3回反射を考慮
結果 例4
左が屈折、右が反射を3回まで考慮したもの
効果球の数
1000個:
10000個:
実行時間について
各手法について左が屈折、右が反射を考慮した場合の計算時間で単位は秒(sec)
一番左の列は効果球の数
None
屈折
1000
4.64
Copy
反射
屈折
2.91
3.87
Sort
反射
屈折
2.41
1.49
反射
0.94
10000
12.68
3.84
10.12
3.11
3.23
1.17
100000
47.42
4.32
37.99
3.24
10.04
1.24
0.35
例1
例2
例3
19.10
0.47
15.17
19.13
0.28
6.15
14.73
3.75
実行時間のグラフ


1回でなく10回とかの平均の時間をとる
トレースの回数を変えたときの実行時間の
変化
発表の流れ





研究の背景・目的
関連研究
提案法
結果
まとめと今後の課題
まとめ

曲面が存在しうる区間を高速に求める方
法を示した
今後の課題

球が密集している場合にそこでの計算コス
トが高すぎる


屈折が遅いのは基本的に球が密集していると
ころにレイが行きやすくなるから
メタボール以外の陰関数曲面の描画
ご清聴ありがとうございました