metal fluid simulation

Post on 18-Nov-2014

469 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Metal Fluid Simulation iOS ブログでも解説しています http://wowdev.jp/?p=1380 Qiitaはこちら http://qiita.com/Ushio@github/items/3c206dd1e26195b7627f

TRANSCRIPT

Metalで流体シミュレーション

自己紹介

吉村 篤 !

所属:WOW Twitter : @ushiostarfish Qiita : http://qiita.com/Ushio@github

ナビエ-ストークス方程式

※粘性率一定非圧縮

ナビエ-ストークス方程式

なので

もっと単純に考えよう

↓ 水

格子状に分割

格子状に分割

計算する場合 特定の1マスと 周囲の8マスに着目

①流体の量②速度

①流体の量②速度

①流体の量②速度

①流体の量②速度

①流体の量②速度

①流体の量②速度

①流体の量②速度

①流体の量②速度

①流体の量②速度

それぞれ流体の量と、速度を持つ

流体の量は速度によって変化する

速度 遅速度 早

水は増える!

【移流】

流体の量は速度によって変化する

速度 遅 速度 早

水は減る!

【移流】

流体の量によって圧力が発生

右向きの力!

流体 少流体 多

【圧力】

流体の量によって圧力が発生

左向きの力!

流体 少流体 多

【圧力】

近くの流体は隣に影響を受ける【粘性】

実装上はガウシアンブラー

処理フロー

移流

圧力

外力

減衰

粘性

流体同士以外の力

摩擦等

Metal

Metalだいじなポイント !

①三角形を効率よく描画できる ②並列計算を効率よくやる ③1と2がとってもシームレス

A7チップに最適化してるよ!

Metalのデモは何故こうだったか?

花びら並列計算シミュレーション

水面並列計算シミュレーション

蝶それぞれ並列計算シミュレーション

水面並列計算シミュレーション

どうやって使うの?

Metal API シェーダー

・C++11 ・Metal APIを通じて使う

・Swift or Obj-Cから呼ぶ ・OpenGLより扱い易い ・超低レイヤー ・低オーバーヘッド

描画ループ

テクスチャ計算シェーダー

更新処理

描画シェーダー CAMetalLayer

描画処理

今回の基本フロー

DEMO

細かいところはソースを参照!

https://github.com/Ushio/MetalFuildDemo

A7チップじゃないと動かないよ!

top related