1 / 39

VR のための CG 技術

TM. VR のための CG 技術. 柿本 正憲 kaki@sgi.co.jp 日本 SGI 株式会社 システム・インテグレーション本部 東日本第一プロフェッショナルサービス部. 内容. はじめに VR 表示システムの例 高速描画のための要素技術 リアルタイム処理のための技術 表示システムのチューニング まとめ Q&A. はじめに. VR システムの要件 リアルタイム表示(理想は60フレーム毎秒) 本物らしさ 没入感(大画面) 形状やテクスチャのリアリティ 相反する要求を満たす手段 3 D モデルデータの工夫 アルゴリズムの工夫 ハードウェア.

shauna
Download Presentation

VR のための CG 技術

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TM

  2. VRのためのCG技術 柿本 正憲 kaki@sgi.co.jp 日本SGI株式会社 システム・インテグレーション本部 東日本第一プロフェッショナルサービス部

  3. 内容 • はじめに • VR表示システムの例 • 高速描画のための要素技術 • リアルタイム処理のための技術 • 表示システムのチューニング • まとめ • Q&A

  4. はじめに • VRシステムの要件 • リアルタイム表示(理想は60フレーム毎秒) • 本物らしさ • 没入感(大画面) • 形状やテクスチャのリアリティ • 相反する要求を満たす手段 • 3Dモデルデータの工夫 • アルゴリズムの工夫 • ハードウェア 表示の質 満足できる 結果 60Hz 表示速度

  5. VR表示システムの例 最近の傾向 • HMD(ヘッド・マウンテッド・ディスプレイ)よりも、大画面型

  6. VR表示システムの例 • アーチ型 • 没入感があり、ビジュアル・シミュレーションに適している

  7. VR表示システムの例 • フラット型(PowerWall) • DR (Design Review)に適している

  8. VR表示システムの例 • どうくつ型(CAVE) • 各種インテリア評価に適している

  9. VR表示システムの例 • デスク型(Imersive Workbench, Imersadesk) • 医療、建築、土木分野の可視化に適している

  10. 高速化の要点 • どんな場合にも通用する万能ルールはない • ボトルネックを抽出し、適切な高速化手法を適用することが重要 ボトルネック の抽出 ボトルネック の解決 新たなボトルネック の顕在化 ボトルネック要因

  11. ルート 光源 グループ スイッチ 座標変換 部品 部品 部品 部品 座標変換 部品 部品 部品 部品 前提知識 シーングラフ • 3Dモデルのデータ構造 • 通常は実行時のメモリ上のデータを意味する • 階層化された部品

  12. 前提知識 グラフィックスパイプライン • 3Dモデルの表示処理フロー ビデオ 信号 シーン グラフ (xw, yw, zw) (xs, ys) G T X S D Scan Conversion Generation Traverse Transform Display モデル処理 (カリング等) 表示データ の転送 座標変換 明るさ計算 D/A変換 塗りつぶし

  13. 前提知識 グラフィックスAPI • ローレベル • OpenGL, Direct3D • シーングラフAPI • IRIS Performer, Open Inventor, Cosmo3D, Java3D • 特定用途向け • IRIS Performer (Vissim) • OpenGL Optimizer (CAD) glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.8,0.5,0.0); glBegin(GL_TRIANGLES); glVertex2f(1.0,1.0,3.0); glVertex2f(-1.0,-1.0,3.0); glVertex2f(-1.0,1.0,3.0); glEnd(); pfScene *root = new pfScene; pfGroup *group = new pfGroup; pfGeode *gd = new pfGeode; pfGeoSet *gset = new pfGeoSet; pfGeoState *st = new pfGeoState; root->addChild(gp); group->addChild(gd) gd->addGSet(gs); gset->setGState(st);

  14. 高速描画のための要素技術 • ビューフラスタム・カリング • 視野に入っていない部品を除いてから表示する

  15. 高速描画のための要素技術 • オクルージョン・カリング • 手前の部品に隠されることが確実な部品を除いて表示する

  16. 高速描画のための要素技術 • LOD (レベル・オブ・ディテール) • 遠くにあるときは粗く、近くでは細かく表示する

  17. 高速描画のための要素技術 • LOD バイアス • 動かすときは粗く、止めた状態では細かく表示する • 粗くなっても、動かしていると意外に気にならない • CADソフトウェアで有効 • 視点が常に動くVRやビジュアル・シミュレーションでは使えない

  18. 高速描画のための要素技術 • 動かす部品だけを表示 • 動かない部品は画像として描く • 奥行き情報(zバッファ)も画像と一緒に保存 • ウィンドウが大きくなると、画像転送が逆にボトルネックに • Onyx2ならフルスクリーンでもOK • CADソフトウェアで有効 • 視点が動くVRやビジュアル・シミュレーションでは使えない

  19. 高速描画のための要素技術 • 空間分割 • 近い部品同士を同じグループにする BAD GOOD

  20. 高速描画のための要素技術 • バックフェース・カリング • 裏向きの三角形は塗りつぶさない • 閉じた図形(裏面は絶対に見えない)のみを扱う場合に有効 三角形 の表 三角形 の裏 三角形 の表

  21. 高速描画のための要素技術 • テクスチャ・マッピング • 一枚のポリゴンに絵や写真を貼る • ポリゴン一枚で何千ポリゴンにも相当するリアリティ • 最近のハードの高速化 →用途によってはテクスチャを使わずくっきりとした絵を表示する  選択も ポリゴンのみで表現 テクスチャを使った表現

  22. 高速描画のための要素技術 • OpenGLレベルでの • 最適化 • 三角形ストリップ • 頂点の共有化 • ディスプレイリスト • データのキャッシング(CPU、グラフィックスボード) • 頂点配列 • メモリアクセスの効率化 • マテリアル(色やテクスチャ)の共有化 • マテリアルの切替えを最小化 独立三角形: 頂点数3n 三角形ストリップ: 頂点数n+2

  23. 高速描画のためのハード技術 • DVR(Dynamic Video Resizing) • D/A変換のハードウェアで画像を拡大 • 小さく描いて最後に拡大(フィルタリングつき) • ビデオレート内で処理を終えれば速度には全く影響無し • 塗りつぶしの時間を節約 • フレームごとに負荷を評価しながら拡大率を調整 • 見る人は以外と気づかない • SGIのOnyx, Onyx2のみの機能

  24. 高速描画のためのハード技術 • マルチパイプ処理 • 大画面スクリーンを分割して並列処理 • SGIのOnyx2 X S D G T X S D X S D CPU処理 グラフィックスハードの処理

  25. 高速描画のためのハード技術 • マルチCPUでの並列処理 X S D T G X S D T X S D T CPU処理 グラフィックスハードの処理

  26. 高速描画のためのハード技術 • マルチプロセス処理 (x,y,z) (x,y) DBASE ISECT G T X S D Generation Traverse Transform Scan Conversion Display APP SIM CULL DRAW COLLIDE

  27. APP A0 A1 A2 CULL C0 C1 C2 DRAW D0 D1 D2 表示 APP A0 A1 A2 A3 A4 A5 CULL C0 C1 C2 C3 C4 C5 DRAW D0 D1 D2 D3 D4 D5 表示 高速描画のためのハード技術 • マルチCPUでの並行処理 APP,CULL,DRAWを一つのCPUで処理した場合 APP,CULL,DRAWを別々のCPUで並行処理した場合

  28. 高速描画のためのハード技術 • DPLEX (Digital Multiplexer) • フレーム毎に出力パイプを切替える X S D T G X S D T X S D T CPU処理 グラフィックスハードの処理

  29. 高速描画のためのハード技術 • DPLEX (Digital Multiplexer)

  30. リアルタイム処理のための技術 フレームレートの管理 • フレームレートの変化は1/60秒→2/60秒→3/60秒→4/60秒 • ちょっと頑張ればフレームレートがぐんと上がる • フレーム毎に負荷を計測し、LODやDVRの強さを調整 計算 16msec AppCullDraw0 AppCullDraw1 AppCullDraw2 表示 60Hz 1/60秒 計算 17msec AppCullDraw0 AppCullDraw1 表示 30Hz 1/30秒 ビデオ同期信号

  31. リアルタイム処理のための技術 • レイテンシの最小化

  32. (x,y,z) (x,y) G T X S D Generation Traverse Transform Scan Conversion Display 表示システムのチューニング ボトルネックの抽出 • ボトルネックがわかれば半分解決したも同然 • ボトルネック以外の部分を高速化しても無意味

  33. 表示システムのチューニング G(シミュレーション)がボトルネックになる場合 • 抽出法:Tに渡す計算結果をファイルに保存し再現 • これで速くなればGがボトルネック • 計算のプロセスを分け、マルチCPU化 • CULLの時間が長い場合(通常はDRAWより短い) : • グループ化が細かすぎる可能性がある • グループ化がより大まかになるようやり直す (x,y,z) (x,y) G T X S D Generation Traverse Transform Scan Conversion Display

  34. (x,y,z) (x,y) T X S D G Generation Traverse Transform Scan Conversion Display 表示システムのチューニング T(OpenGLのコマンド転送)がボトルネックになる場合 • ポリゴン数が多く、CPUからグラフィックスへの転送が遅い場合 • 例えばリモートのマシンでOpenGLの表示を行った場合 • 抽出法:OpenGLのディスプレイリストを使ってみる • glVertex3fをglColor3f(ダミー)に変えてみる • 転送はそのままでXの処理が無くなる • これで変わらなければ原因はXでなくT

  35. (x,y,z) (x,y) G T X S D Generation Traverse Transform Scan Conversion Display 表示システムのチューニング X(座標変換・光源計算)がボトルネックになる場合 • 最もよく起こりうる • 抽出法:光源を無くしてみる • これで速くなればXがボトルネック • 対策 • polygon/secの速いボードを買う • テクスチャの使用(1000ポリゴンの樹木のモデルより1ポリゴンに写真) • 光源の代わりに環境マッピング • LODでもっとポリゴンの少ないレベルを使用する • 奥行き複雑度が非常に多ければオクルージョン・カリング

  36. 表示システムのチューニング 奥行き複雑度(Depth Complexity) • 塗りつぶしの処理時間に影響する • 非常に大きい場合はオクルージョン・カリングが有効 • 小~中: フライト・シミュレーション • 中: メカニカルCAD・建築 • 大: 大規模プラント・ 大規模建築 7 1 4 5 3 1 2

  37. (x,y,z) (x,y) G T X S D Generation Traverse Transform Scan Conversion Display 表示システムのチューニング S(塗りつぶし)がボトルネックになる場合 • 抽出法:ウィンドウを小さくしてみる(簡単!) • これで速くなればSがボトルネック • 対策 • バックフェース・カリング • DVR(Onyx2のみ) • オクルージョン・カリング

  38. まとめ • チューニングはケース・バイ・ケース • モデルの規模・特徴 • 使用するハード・ソフト • 要求される性能・画質 • ボトルネックの抽出が重要 • チューニングで数倍~数千倍速くなる ハイエンド・ ユーザ の要求 ハード の性能 ローエンド・ ユーザ の要求 時間

More Related