株式会社デジタル・フロンティア-Digital Frontier

Header

Main

Houdini Smoke Solver part1

2013/6/3

Tag: ,,,

お久しぶりです。開発の吉田[タック]です。 最近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を楽しみにしてください。
では!

Pocket

コメント

[…] Solverとは? Pyro Solverは以前話していたSmoke SolverとCombustion Model(燃焼モデル)を足した物になります。 Smoke […]

1 thought on “Houdini Smoke Solver part1”

コメントフォーム

コメントは承認制ですので、即時に反映されません。ご了承ください。

*