650 likes | 1k Views
18, サイエンティフィックビジュアリゼーション. インタラクティブCG05S 蔡 東生. 参考文献. CGテキスト 7−3. 内容. 高度場と等高線 スカラ場 ボリュームレンダリング ベクトル場. 定義. 地平線の向こうを見てみたい、行ってみたい。 太陽、銀河を空にみて、具体的にそこに行って見てみたい。 嵐や津波、台風、竜巻がどうして起こるのか、ウイルスによっておこる自分の体内での変化を見てみたい。 ”見えない現象”を具体的に”見て”知りたいというのは、人間の本能。
E N D
18,サイエンティフィックビジュアリゼーション18,サイエンティフィックビジュアリゼーション インタラクティブCG05S 蔡 東生
参考文献 • CGテキスト 7−3
内容 • 高度場と等高線 • スカラ場 • ボリュームレンダリング • ベクトル場
定義 地平線の向こうを見てみたい、行ってみたい。 太陽、銀河を空にみて、具体的にそこに行って見てみたい。 嵐や津波、台風、竜巻がどうして起こるのか、ウイルスによっておこる自分の体内での変化を見てみたい。 ”見えない現象”を具体的に”見て”知りたいというのは、人間の本能。 アポロ宇宙飛行士:「月に行ってみたい、月に行ける自分を想像するところから全てが始まる。(その先に、想像を絶する何千、何万の困難があっても、英知を結集できる)」
定義 イマジニア: 想像すること、目で見ることから全てが始まる 可視化とは、目で見えないと思われているものを見えるようにすることである
定義 • 誰にでも現実が見えているわけではない(カエサル) • Seeing is believing. • 話せば分かるというのはうそ! • CG、仮想現実は協力なコミュニケーション手段。 • CGによる幾何オブジェをつかったデータの表現? • Analyze 1st, then Visualize まずは解析を、そして可視化!
サイエンティフィックビジュアリゼーション • 3次元モデルからはスタートしない • 大規模データを扱う • MRI, 512X512X200~50MB points • Visible Human 512X512X1734〜433MB • 実際の世界とシミュレーションデータを可視化 • ユーザインタラクション • 自動サーチ
データタイプ • スカラ場(3Dボリュームスカラ) • 例:X線密度(MRI, CTスキャン) • ベクトル場(3Dベクトルボリューム) • 例:風洞中の速度場 • テンソル場(3次元のテンソル(行列)ボリューム) • 例:機械部品中の圧力[Angele 12.7] • 静的か時間依存か
例:乱流対流シミュレーション • 理想的圧縮ガス(PTCC)中の浸透 • http://www/vets/ucar.edu/vg/PTCC/index.shtml • エンストロピィー(渦度の二乗) • http://www.vets.ucar.edu/vg/PTCC/ind
乱流対流 • どのようにこのようなボリュームを可視化・ビジュアライズするのだろう?
高度場(等高線) • 陽的関数の可視化 • z=f(x,y) • 等高線を加える • g(x,y)=c
メッシュ • 関数は でサンプル化される • 等間隔の幅を入れると仮定 • 4角か3角メッシュを作成
等高線 • 陰的関数f(x,y)=0を思い出す • f(x,y)<0はインサイド、f(x,y)>0はアウトサイド • 等高線はf(x,y)=c • 一定の、x、y間隔でサンプル • どのようにして等高線を描くか?
マーチングスクエア法 • 全てのグリッド点 で関数fをサンプルする • 全ての点で、 をチェックする • それぞれの角xでこれらのケースを区別する • 次に曲線をどこの通すか考える • なめらかであることを仮定 • は無視する
交差点を補間する • 交差を近似する • と の間の中間点 • 補間するほうがいい • もし が より近い場合、交差点は により近くなる: • y方向に関しても同じ計算をする
頂点ラベル • 頂点ラベルに関する16ケースの場合分け • 4つの対象性
ラベリングの曖昧さ • 曖昧なラベル • 異なる結果 • 再分割による解像度
マーチングスクエア例 • 50X50グリッドのカッシーニのオバール
内容 • 高度場と等高線 • スカラ場 • ボリュームレンダリング • ベクトル場
スカラ場 • ボリュームデータ • 例:細胞密度 • 再び規則正しいサンプルを考える • ボクセルとして表示
Isosurface 等値面 • f(x,y,z)はボリュームデータセットを代表 • 2つのレンダリング法 • 等値面レンダリング • 直接のボリュームレンダリング • f(x,y,z)=cで与えられるIsosurface • 陰的表面関数g(x,y,z) 上記右辺を0からcまで一般化する
マーチングキューブ立体前進法 • Isosurfaceの表示技術 • マーチングスクエアの3D版 • 14のキューブのラベル化(対象性をのぞく) • さて、対象性をのぞく前は何通り?
マーチングキューブモザイク張り • マーチングスクエアを一般化 • 2Dとして補間 • 2Dと同様のあいまいさ
ボリュームレンダリング • 場合によってはisosurfaceは自然ではない • 全てのボクセルと透明度(α値)を使う
表面vsボリュームレンダリング • 3次元のスカラ場 • RGB値に変換 • 直にボリュームレンダリング • 与えられたデータそのものを見る • 複雑な物体によい • 表面の3次元モデル • 3角形に変換 • プリミティブを描く • データを失ったり変質させる • 透明な物体によい
応用例 • 医用 • CT(Computed Tomography) • MRI(Magnetic Resonance Imaging) • 超音波診断 • 工学・サイエンス • 数値流体力学 • 空力学シミュレーション • 鉱物学 • 天文科学
ボリュームレンダリングパイプライン • 変換関数(transfer function):データから色もしくは不透明度へ変換 • 例:256X256X64X2=4MB • 例:カラーマップを使う(8ビットカラー、8ビット透明度)
変換関数 • スカラ値データをRGBA値へ変換 • 全てのボクセルに適用 • 応用先によって大きく異なる • データヒストグラムから始める • 不透明度は強調に使う
ボリュームレイキャスト • 3つのボリュームレンダリング技術 • ボリュームレイキャスト • Splatting • 3Dテクスチャ • レイキャスト • レイにそってカラーと透明度を積分 • ライティングを考える • 有限要素法を必要によって考える(例:超音波) • 3次元ラスターを幾何プリミティブにかける
不透明度の蓄積 • Α=1.0は不透明である • 不透明度に応じて複数の層を重ね合わせる。 • 不透明度の局所勾配を用いてライティングのための表面を検出
リアルタイムレイトレサー • SGIOrigin3000 ccNUMAの実装ー256プロセッサ • 線形スピードアップ • ロードバランスとメモリコヒーレンスが大事
3次元線形性(Trilinear)補間 • グリッドからRGBA値へ補間 • 最も近い近傍はブロックの目立つイメージとなる • 3次元線形補間(Trilinear interpolation) • 2次元線形補間の一般化
スプラッティング・Splatting • とても簡単 • 後ろから前に、もしくは前から後ろに、それぞれのデータに対して、”しぶき(splat)”を描く • 簡単に実装できるが、レイキャストほど正しくない • 非均一データによい
スプラッティング・Splatting • レイトレの代用 • ボクセルに形を与える(例えば、ガウス分布) • イメージプレーンに投影 • ボクセルを後ろから前に描く • 合成(αブレンド)
3Dテクスチャ • レイトレ、splattingの代用 • 透明度も含み3Dテクスチャを作る • ポリゴンのスタック後ろから前に描く • CGハードでサポートされていると速い • 少ないポリゴン、多くのテクスチャメモリ
その他のテクニックーCSGは簡単 • 変換関数を使いボリュームの合成が簡単 • もちろん、グリッドに制限される
ボリュームレンダリングの高速化 • 基本:大規模データ • キャッシュコヒーレンスがとれる局所プログラム • 必要なら複数ブロックに分ける • 例:マーチングキューブ • 誤差を使いイタレーションをとめる • 並列性を利用
内容 • 高度場と等高線 • スカラ場 • ボリュームレンダリング • ベクトル場
ベクトル場 • (x,y,z)各点でのベクトルを可視化する • 例:速度場 • 例:髪の毛 • ハリネズミ • 3Dの線分をつかう(サンプル場) • 方向と強さはベクトルによってきまる • アニメーション • 静止イメージをつかう • パーティクルシステム