vr のための cg 技術

39
TM

Upload: shauna

Post on 26-Jan-2016

68 views

Category:

Documents


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: VR のための CG 技術

TM

Page 2: VR のための CG 技術

TM

-2-

1999 年 11月 10日

VRのための CG技術

柿本 正憲[email protected]

日本 SGI株式会社システム インテグレーション本部・

東日本第一プロフェッショナルサービス部

Page 3: VR のための CG 技術

-3-

TM

1999 年 11月 10日 

内容

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

Page 4: VR のための CG 技術

-4-

TM

1999 年 11月 10日 

はじめに

VRシステムの要件リアルタイム表示(理想は 60フレーム毎秒)

本物らしさ没入感(大画面)形状やテクスチャのリアリティ

相反する要求を満たす手段3D モデルデータの工夫アルゴリズムの工夫ハードウェア

表示速度

満足できる結果

60Hz

表示の質

Page 5: VR のための CG 技術

-5-

TM

1999 年 11月 10日 

VR表示システムの例

最近の傾向HMD(ヘッド・マウンテッド・ディスプレイ)よりも、大画面型

Page 6: VR のための CG 技術

-6-

TM

1999 年 11月 10日 

VR表示システムの例アーチ型

没入感があり、ビジュアル・シミュレーションに適している

Page 7: VR のための CG 技術

-7-

TM

1999 年 11月 10日 

VR表示システムの例フラット型( PowerWall)

DR (Design Review)に適している

Page 8: VR のための CG 技術

-8-

TM

1999 年 11月 10日 

VR表示システムの例どうくつ型( CAVE)

各種インテリア評価に適している

Page 9: VR のための CG 技術

-9-

TM

1999 年 11月 10日 

VR表示システムの例デスク型( Imersive Workbench,

Imersadesk)医療、建築、土木分野の可視化に適している

Page 10: VR のための CG 技術

-10-

TM

1999 年 11月 10日 

高速化の要点

どんな場合にも通用する万能ルールはないボトルネックを抽出し、適切な高速化手法を適用することが重要

ボトルネックの抽出

ボトルネックの解決

新たなボトルネックの顕在化

ボトルネック要因

Page 11: VR のための CG 技術

-11-

TM

1999 年 11月 10日 

前提知識

シーングラフ3D モデルのデータ構造

通常は実行時のメモリ上のデータを意味する

階層化された部品

ルート

グループ

座標変換スイッチ

光源

座標変換

部品 部品 部品

部品部品 部品 部品 部品

Page 12: VR のための CG 技術

-12-

TM

1999 年 11月 10日 

前提知識

グラフィックスパイプライン3D モデルの表示処理フロー

モデル処理(カリング等)

表示データの転送

座標変換明るさ計算 塗りつぶし D/A変換

GGeneration

TTraverse

XTransform

SScan

Conversion

DDisplay

(xw, yw, zw)(xs, ys)シーングラフ

ビデオ信号

Page 13: VR のための CG 技術

-13-

TM

1999 年 11月 10日 

前提知識グラフィックスAPIローレベル

OpenGL, Direct3D

シーングラフAPIIRIS 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);

Page 14: VR のための CG 技術

-14-

TM

1999 年 11月 10日 

高速描画のための要素技術

ビューフラスタム・カリング視野に入っていない部品を除いてから表示する

Page 15: VR のための CG 技術

-15-

TM

1999 年 11月 10日 

高速描画のための要素技術

オクルージョン・カリング手前の部品に隠されることが確実な部品を除いて表示する

Page 16: VR のための CG 技術

-16-

TM

1999 年 11月 10日 

高速描画のための要素技術

LOD   ( レベル・オブ・ディテール )遠くにあるときは粗く、近くでは細かく表示する

Page 17: VR のための CG 技術

-17-

TM

1999 年 11月 10日 

高速描画のための要素技術

LOD バイアス動かすときは粗く、止めた状態では細かく表示する粗くなっても、動かしていると意外に気にならない

CADソフトウェアで有効

視点が常に動くVRやビジュアル・シミュレーションでは使えない

Page 18: VR のための CG 技術

-18-

TM

1999 年 11月 10日 

高速描画のための要素技術動かす部品だけを表示動かない部品は画像として描く

奥行き情報(zバッファ)も画像と一緒に保存ウィンドウが大きくなると、画像転送が逆にボトルネックにOnyx2ならフルスクリーンでもOKCADソフトウェアで有効視点が動くVRやビジュアル シミュレーションでは使えない・

Page 19: VR のための CG 技術

-19-

TM

1999 年 11月 10日 

高速描画のための要素技術

空間分割近い部品同士を同じグループにする

BAD GOOD

Page 20: VR のための CG 技術

-20-

TM

1999 年 11月 10日 

高速描画のための要素技術

バックフェース・カリング裏向きの三角形は塗りつぶさない

閉じた図形(裏面は絶対に見えない)のみを扱う場合に有効

三角形の表

三角形の表

三角形の裏

Page 21: VR のための CG 技術

-21-

TM

1999 年 11月 10日 

高速描画のための要素技術

テクスチャ・マッピング一枚のポリゴンに絵や写真を貼る

ポリゴン一枚で何千ポリゴンにも相当するリアリティ最近のハードの高速化

→用途によってはテクスチャを使わずくっきりとした絵を表示する 選択も

ポリゴンのみで表現 テクスチャを使った表現

Page 22: VR のための CG 技術

-22-

TM

1999 年 11月 10日 

高速描画のための要素技術

OpenGLレベルでの最適化三角形ストリップ

頂点の共有化ディスプレイリスト

データのキャッシング(CPU、グラフィックスボード)

頂点配列メモリアクセスの効率化

マテリアル(色やテクスチャ)の共有化マテリアルの切替えを最小化

独立三角形: 頂点数 3n三角形ストリップ: 頂点数 n+2

Page 23: VR のための CG 技術

-23-

TM

1999 年 11月 10日 

高速描画のためのハード技術

DVR(Dynamic Video Resizing)D/A変換のハードウェアで画像を拡大

小さく描いて最後に拡大(フィルタリングつき)ビデオレート内で処理を終えれば速度には全く影響無し

塗りつぶしの時間を節約フレームごとに負荷を評価しながら拡大率を調整

見る人は以外と気づかないSGIのOnyx, Onyx2のみの機能

Page 24: VR のための CG 技術

-24-

TM

1999 年 11月 10日 

高速描画のためのハード技術

マルチパイプ処理大画面スクリーンを分割して並列処理

SGIのOnyx2

G T X S DX S D

X S DCPU処理

グラフィックスハードの処理

Page 25: VR のための CG 技術

-25-

TM

1999 年 11月 10日 

高速描画のためのハード技術

マルチ CPUでの並列処理

G X S DX S D

X S DCPU処理グラフィックスハードの処理

TT

T

Page 26: VR のための CG 技術

-26-

TM

1999 年 11月 10日 

高速描画のためのハード技術

マルチプロセス処理

APP

CULLDRAW

ISECTDBASE

COLLIDE

SIM

GenerationG T

TraverseX

TransformSScan

Conversion

DDisplay

( x,y,z) ( x,y)

Page 27: VR のための CG 技術

-27-

TM

1999 年 11月 10日 

高速描画のためのハード技術

マルチ CPUでの並行処理

A0

C0

D0

APPCULL

DRAW

A1

C1

D1

表示

A2

C2

D2

A0

C0

D0

APPCULL

DRAW

A1

C1

D1

表示

A2

C2

D2

A3

C3

D3

A4

C4

D4

A5

C5

D5

APP,CULL,DRAWを別々の CPUで並行処理した場合

APP,CULL,DRAWを一つの CPUで処理した場合

Page 28: VR のための CG 技術

-28-

TM

1999 年 11月 10日 

高速描画のためのハード技術

DPLEX (Digital Multiplexer)フレーム毎に出力パイプを切替える

G X S DX S D

X S DCPU処理グラフィックスハードの処理

TT

T

Page 29: VR のための CG 技術

-29-

TM

1999 年 11月 10日 

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

Page 30: VR のための CG 技術

-30-

TM

1999 年 11月 10日 

フレームレートの管理

フレームレートの変化は1/60秒→2/60秒→3/60秒→4/60秒ちょっと頑張ればフレームレートがぐんと上がる

フレーム毎に負荷を計測し、LODやDVRの強さを調整

リアルタイム処理のための技術

16msec

表示

AppCullDraw0AppCullDraw1AppCullDraw2

計算表示

AppCullDraw0 AppCullDraw1

計算60Hz

17msec

30Hz

1/60 秒

1/30 秒ビデオ同期信号

Page 31: VR のための CG 技術

-31-

TM

1999 年 11月 10日 

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

Page 32: VR のための CG 技術

-32-

TM

1999 年 11月 10日 

表示システムのチューニングボトルネックの抽出ボトルネックがわかれば半分解決したも同然ボトルネック以外の部分を高速化しても無意味

GenerationG T

TraverseX

TransformSScan

Conversion

DDisplay

( x,y,z) ( x,y)

Page 33: VR のための CG 技術

-33-

TM

1999 年 11月 10日 

表示システムのチューニングG(シミュレーション)がボトルネックになる場合抽出法:Tに渡す計算結果をファイルに保存し再現

これで速くなればGがボトルネック計算のプロセスを分け、マルチCPU化

CULLの時間が長い場合(通常はDRAWより短い) :グループ化が細かすぎる可能性があるグループ化がより大まかになるようやり直す

GenerationG T

TraverseX

TransformSScan

Conversion

DDisplay

( x,y,z) ( x,y)

Page 34: VR のための CG 技術

-34-

TM

1999 年 11月 10日 

表示システムのチューニングT(OpenGLのコマンド転送)がボトルネックになる場合ポリゴン数が多く、CPUからグラフィックスへの転送が遅い場合

例えばリモートのマシンでOpenGLの表示を行った場合抽出法:OpenGLのディスプレイリストを使ってみるglVertex3fをglColor3f(ダミー)に変えてみる

転送はそのままでXの処理が無くなる

これで変わらなければ原因はXでなくT

GenerationG T

TraverseX

TransformSScan

Conversion

DDisplay

( x,y,z) ( x,y)

Page 35: VR のための CG 技術

-35-

TM

1999 年 11月 10日 

表示システムのチューニングX(座標変換・光源計算)がボトルネックになる場合最もよく起こりうる抽出法:光源を無くしてみるこれで速くなればXがボトルネック

対策polygon/secの速いボードを買うテクスチャの使用(1000ポリゴンの樹木のモデルより1ポリゴンに写真)光源の代わりに環境マッピングLODでもっとポリゴンの少ないレベルを使用する奥行き複雑度が非常に多ければオクルージョン・カリング

GenerationG T

TraverseX

TransformSScan

Conversion

DDisplay

( x,y,z) ( x,y)

Page 36: VR のための CG 技術

-36-

TM

1999 年 11月 10日 

奥行き複雑度(Depth Complexity)塗りつぶしの処理時間に影響する

非常に大きい場合はオクルージョン・カリングが有効

小~中:フライト・シミュレーション

中:メカニカルCAD・建築

大:大規模プラント・大規模建築

表示システムのチューニング

1

5

3

2

1

7 4

Page 37: VR のための CG 技術

-37-

TM

1999 年 11月 10日 

表示システムのチューニングS(塗りつぶし)がボトルネックになる場合抽出法:ウィンドウを小さくしてみる(簡単!)

これで速くなればSがボトルネック対策

バックフェース・カリングDVR(Onyx2のみ)オクルージョン・カリング

GenerationG T

TraverseX

TransformSScan

Conversion

DDisplay

( x,y,z) ( x,y)

Page 38: VR のための CG 技術

-38-

TM

1999 年 11月 10日 

まとめチューニングはケース・バイ・ケース

モデルの規模・特徴使用するハード・ソフト要求される性能・画質

ボトルネックの抽出が重要チューニングで数倍~

数千倍速くなる

ハイエンド・ユーザの要求

ハードの性能

ローエンド・ユーザの要求

時間

Page 39: VR のための CG 技術