Presentation is loading. Please wait.

Presentation is loading. Please wait.

粒子シミュレーション可視化ツール Zindaiji3開発の進展状況 武田隆顕@cfca.

Similar presentations


Presentation on theme: "粒子シミュレーション可視化ツール Zindaiji3開発の進展状況 武田隆顕@cfca."— Presentation transcript:

1 粒子シミュレーション可視化ツール Zindaiji3開発の進展状況 武田隆顕@cfca

2 シミュレーションデータ可視化の2つの目的 自分の研究データを素早く見るための可視化 (同じ分野の専門家に見せるための可視化)
レスポンスを速く 物理量を見やすくするため派手な色合い 演出は考えない 一般の人に理解して(興味をもって)もらう可視化 きれいで格好よく 後者に重きを置いた 一般公開用の映像作成

3 粒子(N体)データ用可視化ツール開発 自分の理想は… 普段は研究用の可視化ツール いざというときは華麗なレンダリング
普段隠れている設定を開いて調整 いざというときは華麗なレンダリング ■初代Zindaiji 扱える粒子数は~200万体 ■32bitアプリケーションの限界が見えてきた

4 Zindaiji3の開発 ■より大規模なデータの可視化用に新規開発 ■PC1台でいけるだけ 大規模なデータ可視化

5 ZINDAIJI 3 の機能向上点 ■64bit化でメモリの制限が大幅に緩和 2億5千万粒子(約100倍の強化) ■描画アルゴリズムの改善
同じ条件で大体倍の速度 ■待ち時間の大幅削減 マルチスレッド化 ■GUIの大幅改善 ■マルチプラットフォーム Windowx/Linux/MacOSX

6 Zindaiji3における描画アルゴリズム改善
設定(色や透明度) 設定(色や透明度) 設定(色や透明度) 粒子の位置情報 粒子の位置情報 位置情報をメモリ上でまとめる 描画 描画 まとめて描画 設定(色や透明度) 粒子の位置情報 粒子の位置情報 描画 描画 粒子の位置情報 設定(色や透明度) 描画 粒子の位置情報 描画 ■状況に応じた場合分けで 描画の高速化

7 GUI大幅改定 ■カメラワークなどの タイムラインによる編集 ■UNDO機能の充実(行った操作をスタック) Ctrl+Y Ctrl+Z
キーフレームを作成 キーフレームを移動 値をOldからNewに変更 オブジェクトを作成 キーフレームを(逆に)移動 値をNewからOldに変更 オブジェクトを削除 キーフレームを削除 Ctrl+Z

8 待ち時間の大幅削減 シングルスレッドによる可視化 マルチスレッドでの可視化 TIME 読み込み 補間 描画 画像出力 読み込み 画像出力
事前読込 補間 描画 画像出力 事前読込 補間 描画 画像出力 事前読込 補間 描画

9 ■主な描画手法 速 ■光点としての描画 ■ガス雲(SPH粒子)の描画 ■大きさを持った球の描画 遅 星団の運動など。ソートの必要が無い
手前のガスによる隠蔽があるためソートが必要 点より大きいので点と比べると遅い ■大きさを持った球の描画 デブリディスクや(単分子の)分子動力学など ポリゴン数が多くなる。

10 ■光点としての描画 ■最速はpixelサイズの点を描画するGL_POINTS命令 ただし、距離によって 見かけの密度が変化
図の引用 : マイクロソフト アカデミック ポータル: DirectX によるゲームプログラミング入門 : 第 6 章 実践ゲーム開発 結局カメラ方向を向いた 板(ビルボード)による描画を行う

11 ■光点としての描画 ■石山さんの宇宙論的N体(のもっとも大きいハロー1つ分) 2億5千万粒子の時間進化データ メモリ使用量
x,y,zの情報を単精度で持つと 1億体で1.2GB使用 vx,vy,vz,ID,r,等含め2.5億で 12GBほど。 2ステップ分の情報と補間済 情報で~30GB使用 メモリを64GB積んだ PCでどうにか扱える 描画速度については 後半で取り扱う。

12 ■星やガス雲(SPH)の描画 ソートして奥から描画 背後にあるものは隠れる 密度∝r-3 通過距離∝rなので 不透明度r∝r-2で描画
ビルボード表示 ソートして奥から描画 背後にあるものは隠れる 密度∝r-3 通過距離∝rなので 不透明度r∝r-2で描画 r=1 r=2 r=3

13 ■星やガス雲(SPH)の描画 ■松井秀徳さんの 100万体強の銀河衝突データ(Binary)から作成 読み込みや画像圧縮を 並列処理
8コア中の25~35%程度 (2~3コア相当)を使用

14 ■球としての描画 (田中秀和さん(北大低温研)による分子動力学によるダスト衝突) ■600万体のデータ(亀裂が走る様子)
読み込みや画像圧縮を 並列処理 8コア中の~50%程度 (~4コア相当)を使用

15 ■表現力の向上 ■影の実装 ■影(シャドウボリューム)

16 シャドウボリューム法(1) ステンシルシャドウ法 影のポリゴンを使って、影の落ちるべき領域を判定して、 色違いでもう一度描画

17 +1 -1 -1 シャドウボリューム法(2) (1)透明な影ポリゴンを描画する。 ポリゴンを描画したところには +1 をマークする
(2) 同じように裏面だけ描画する 描画したところには -1 をマークする -1 (3)プラスで残った場所が影になるので、 光の当たらない色で再度描画する。

18 ■表現力の向上 ■影の有無による比較 ■初代Zindaijiでは光源1つ、影1つだけ実装していたが 7つまでの光源と影を同時に扱えるように

19 ■表現力の向上 ■シェーダー言語の利用 左)通常の描画は ポリゴン頂点ごとに計算する。 (星状の切れ目が見える) といった表現も可能に
Toonシェーディング 色の計算を、各ピクセル ごとに行う。 といった表現も可能に Phongシェーディング より少ないポリゴン数で綺麗に表示できる

20 ■レスポンス速度向上 ■SPH表示時の間引き GUI操作の応答時間は ~0.1秒以内が望ましい 間引き表示時にそれを 補うように濃く表示
オリジナル 1/10 1/100

21 レンダリングの種類と描画時間(1) ■一秒当たりの 描画粒子数目安 描画タイプ GT240 GTX560 粒子数目安 GL_POINTS
2010年ごろ補助電源無し の中で速いやつ(推奨300W) 2011年ごろ補助電源あり 6pin x 2で速いやつ(推奨500W) 描画タイプ GT240 GTX560 粒子数目安 GL_POINTS 4千万 1億 ~10億 ビルボード 2000万 4000万 ~4億 SPH粒子と星 200万 ~2000万 球による表示 300万 ~3000万 影つきの表示 10万 ~100万 複数の影 5万 ~50万 注)シーンによって、 数値は相当変動します

22 レンダリングの種類と描画時間(2) ■粒子数の目安 10秒で1枚レンダリングできると、
一時間で360枚、一晩(10時間)で3600枚 = 2分 1/100に間引くと1/10秒でレスポンスするので許容範囲 描画タイプ GT240 GTX560 粒子数目安 GL_POINTS 4千万 1億 ~10億 ビルボード 2000万 4000万 ~4億 SPH粒子と星 200万 ~2000万 球による表示 300万 ~3000万 影つきの表示 10万 ~100万 複数の影 5万 ~50万 星等の集団は ~数億程度

23 レンダリングの種類と描画時間(3) SPHの場合は ~数千万程度 影も入れた デブリなどは ~100万程度 描画タイプ GT240
GTX560 粒子数目安 GL_POINTS 4千万 1億 ~10億 ビルボード 2000万 4000万 ~4億 SPH粒子と星 200万 ~2000万 球による表示 300万 ~3000万 影つきの表示 10万 ~100万 複数の影 5万 ~50万 SPHの場合は ~数千万程度 影も入れた デブリなどは ~100万程度

24 その他追加機能 ■ブーリアン演算 ■ある領域(四角や球) の粒子の表示をON/OFF 断面図の作成 (クラスターの結晶化)

25 現時点でさらにつけたい機能 ■タイムリマップ機能 シーンの時間とシミュレーションの時間を別に制御 (最初に初期状態を回して、 その後シミュレーションを時間を進め、 最後に静止したシミュレーションの中を移動…など) ■テクスチャーの利用 ■図表用に、座標の表示などの強化 ■Windows/Linux/Mac(但しMac版は32bit)


Download ppt "粒子シミュレーション可視化ツール Zindaiji3開発の進展状況 武田隆顕@cfca."

Similar presentations


Ads by Google