SlideShare a Scribd company logo
1 of 24
Download to read offline
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チップじゃないと動かないよ!

More Related Content

Viewers also liked

静的リンクライブラリ
静的リンクライブラリ静的リンクライブラリ
静的リンクライブラリ
ushiostarfish _
 
Blur based Weber–Fechner law
Blur based Weber–Fechner lawBlur based Weber–Fechner law
Blur based Weber–Fechner law
ushiostarfish _
 
ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法
ushiostarfish _
 
曲面レイトレ入門
曲面レイトレ入門曲面レイトレ入門
曲面レイトレ入門
Toru Matsuoka
 
レイトレ空間構造入門
レイトレ空間構造入門レイトレ空間構造入門
レイトレ空間構造入門
Toru Matsuoka
 

Viewers also liked (20)

静的リンクライブラリ
静的リンクライブラリ静的リンクライブラリ
静的リンクライブラリ
 
La espiral de la tercera ley de kepler. Astronomía, Sistema Solar, Tierra
La espiral de la tercera ley de kepler. Astronomía, Sistema Solar, TierraLa espiral de la tercera ley de kepler. Astronomía, Sistema Solar, Tierra
La espiral de la tercera ley de kepler. Astronomía, Sistema Solar, Tierra
 
Blur based Weber–Fechner law
Blur based Weber–Fechner lawBlur based Weber–Fechner law
Blur based Weber–Fechner law
 
SWWDC2012_11_17
SWWDC2012_11_17SWWDC2012_11_17
SWWDC2012_11_17
 
Photo mosaic 検証
Photo mosaic 検証Photo mosaic 検証
Photo mosaic 検証
 
2013-07-12 (金) レッツゴーデベロッパー変真 前夜祭
2013-07-12 (金) レッツゴーデベロッパー変真 前夜祭2013-07-12 (金) レッツゴーデベロッパー変真 前夜祭
2013-07-12 (金) レッツゴーデベロッパー変真 前夜祭
 
Isca13 study
Isca13 studyIsca13 study
Isca13 study
 
Raytracing4
Raytracing4 Raytracing4
Raytracing4
 
ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法
 
CUDA & OpenCL GPUコンピューティングって何?
CUDA & OpenCL GPUコンピューティングって何?CUDA & OpenCL GPUコンピューティングって何?
CUDA & OpenCL GPUコンピューティングって何?
 
MayaFluidからの流体シミュレーション入門
MayaFluidからの流体シミュレーション入門MayaFluidからの流体シミュレーション入門
MayaFluidからの流体シミュレーション入門
 
曲面レイトレ入門
曲面レイトレ入門曲面レイトレ入門
曲面レイトレ入門
 
実践QBVH
実践QBVH実践QBVH
実践QBVH
 
ボリュームレンダリング入門
ボリュームレンダリング入門ボリュームレンダリング入門
ボリュームレンダリング入門
 
MCMCベースレンダリング入門
MCMCベースレンダリング入門MCMCベースレンダリング入門
MCMCベースレンダリング入門
 
Open Problems in My Little Raytracer
Open Problems in My Little RaytracerOpen Problems in My Little Raytracer
Open Problems in My Little Raytracer
 
物理ベースレンダラedupt解説
物理ベースレンダラedupt解説物理ベースレンダラedupt解説
物理ベースレンダラedupt解説
 
レイトレ空間構造入門
レイトレ空間構造入門レイトレ空間構造入門
レイトレ空間構造入門
 
御清聴ありがとうございました
御清聴ありがとうございました御清聴ありがとうございました
御清聴ありがとうございました
 
フォトンマッピング入門
フォトンマッピング入門フォトンマッピング入門
フォトンマッピング入門
 

Metal Fluid Simulation