Houdini Smoke Solver part1
2013/6/3
Tag: fluid,Houdini,smoke,solver
お久しぶりです。開発の吉田[タック]です。 最近Houdini12.5が出てから、もっと注目されようになった気がします。
4月のユーザー・ミーティングで結構な人が集まってました。特にFLIPのFluid Solverが新しくなり、スケールが大きいFluidに対応したり、OpenVBに対応したり、雲と海の機能追加もされています。
エフェクト人にたまらない項目ばかり…
そこで軽くHoudiniのVolume Field Solverを紹介し、Part2で実際使った例を紹介したいと思っています。
今回Part1ではSolverを理解し、ノードの概念を少し説明します。まだHoudiniを始めたばかりですが…
SOP vs DOP
Surface Operator(SOP)はGeometryを作るためのノードでDynamic Operator(DOP)はDynamicsを行うためのノードになります。実際、Particle Operator(POP)を使ってDynamicsも行えますが、今回はスルーします。
簡単に言いますとSOPでVolumeの形やそこに入れる煙を作り、作ったSOPをDOPでシミュレーションを行います。
Gridとは?
SOPとDOPでGridは何か?
HoudiniではSOPのGridはVolumeと呼ばれ、そのVolumeをDOPでFieldとして使います。
Fieldの種類としてScalarとVectorがあります。
Scalarの場合はGrid1つの箱(Voxel)に対し、1つの値を持てて、Vectorの場合は3つになります。
Fog Volume vs Signed Distance Field(SDF)
オブジェクトがVoxelに入っているか、入っていないかの計算が2つあります。
Fog Volumeでは0か1、1が入っている、0が入っていない。
SDFでは値がマイナスでは存在している。プラスでは存在していない。
SurfaceのエッジをFog Volumeより細かく出来るのがメリットです。
Houdiniで
先にVolumeを作って、それに対してDynamicsを行います。
①Volume
Volumeノードを直接作ったり、GeometryをVolumeに変換したり出来ます。
Geometryを変換する時、isooffsetやfluidsourceを使ったりします。
②Dynamics
DOP networkノードを使ってDynamicsを行います。
DOP networkノードにこのようなNetworkを組みます。
左側のData chainでは作ったSOP Volumeを使い、Fieldとして扱います。
右側のSolver chainではDynamicsに関するノードを準備します。
Multisolverでまとめ計算を行います。
Advection(移流)
Solver chainの方でgravityや風とか作りますがAdvection(移流)も追加したりします。
Advection Typeは3つ用意されています。
1. Single Stage: 1パスadvection
2. Modified MacCormack: 2パス advection, 計算エラーを削減しもっとシャープなfluid結果が得られます。
ゆっくり動くFluidでの結果はいいですが、早く動くFluidほど結果が化けます。
3. BFECC:3パス advection, さらにシャープな結果。早く動くFluidで一番いい結果を得られます。
でもその分時間がかかります。
ここで終わりと言いたいところですが、Divergenceの問題が残っています。
Volumeの全体にdensityが流れていかない。
Divergenceを0にする必要があります。
それを行うのに3つのノードが用意されています。
1. Gas Project Non Divergence
2. Gas Project Non Divergence Multigrid: 早い、collisionやfree surfaceに対応していない。
3. Gas Project Non Divergence Variationa: 角度があるところでvelocity fieldの計算がベター。
角度があるところで階段ができにくい。collisionやfree surfaceに対応していない。
今回はここまでにしておきます。
Part2を楽しみにしてください。
では!
[…] Solverとは? Pyro Solverは以前話していたSmoke SolverとCombustion Model(燃焼モデル)を足した物になります。 Smoke […]
Posted at 2014.04.14 12:01 by デジタル・フロンティア-Digital Frontier | DF TALK | Houdini Pyro Solver