煙に巻かれる Stanford Bunny
煙密度、表面上の剥離点、生成されたVortex Primitiveを重ねた流体シミュレーション。出典: Y. Chen, T. Kanai, “Obstacle-Aware Fluid Control via Vector Potential Editing”, Figure 3, Computer Animation and Virtual Worlds 37(3), e70131 (2026).
今回のStanford bunny
今回のStanford bunnyは、事前計算済みの煙の速度場へあとから複雑な障害物を挿入できるかを調べる評価に使われています。論文記載値は35,967頂点・69,451面です。
形状をsimulation gridと同じ解像度のSigned Distance Fieldへ変換し、表面法線と距離を使って煙が内部へ入り込まないようvector potentialを編集します。さらに、表面から流れが剥離しそうな場所へVortex Primitiveを生成して後流の渦を加えます。
128^3 gridの250 frame平均では1 frameあたり13.16 msで、boundary editing 0.13 ms、VPM 12.80 ms、advection 0.23 msです。今回は煙を避けさせるだけでなく、耳や脚の周囲に渦まで生やされています。
今回の扱い:SDF化され、煙の障害物にされ、表面付近へ渦粒子を生成される
状態:無傷
論文の内容
Baked velocity fieldへ障害物を追加する
高品質な煙simulationを事前計算し、実行時に再生する方式では、あとから追加した障害物を元のvelocity fieldは知りません。そのままでは流体がsolid内部を通ります。
通常はpressure projectionでdivergence-free conditionを回復しますが、毎frame global Poisson solveを行うと事前計算の利点が小さくなります。
提案法はvelocityではなくvector potentialを編集し、curlから速度場を再構成します。
SDF境界処理
障害物はSigned Distance Fieldで表現し、gradientからsurface normalを取得します。表面近傍だけpotentialをnormal方向へblendし、curl後のvelocityがtangent planeに沿うfree-slip型境界を近似します。
transition bandは約1.414 cell幅で、この局所編集は複雑形状でも0.13 ms/frameでした。
Vortex Primitiveでwakeを戻す
free-slipだけではboundary layer由来のvorticityが弱く、後流が滑らかになります。
そこでcurvature、local velocity、簡易的なpressure-gradient proxyからseparation candidateを選び、Lagrangian vortex particleを生成します。particleの影響はvelocityへ直接加えずvector potentialへ加えます。
Parameter trade-off
default circulation coefficientは0.5、core radiusは2.5h、decay rateは0.5です。particle上限は10,000です。
circulationを強くするとenstrophyは増えますが、surface-normal方向への不要なvelocityも増えます。複雑形状ではこのtrade-offが明確に観測されています。
GPU実装
C++ / CUDAで実装し、OpenVDBとNanoVDBを利用します。Poisson solveにはcuSPARSE / cuSOLVERを使用します。
128^3条件ではpreprocessing 588.81 msに対し、per-frame editingは13.16 msでした。ただしpreprocessingとper-frame処理を直接比べて「常に45倍高速」と解釈すべきではありません。
制約
評価されている障害物はstaticです。moving obstacleではSDFやseparation pointsがframe間で変化するため、temporal consistencyが新たな課題になります。
また一方向のfluid-solid interactionであり、fluid forceによるsolid motionやdeformationは扱いません。
論文情報
Obstacle-Aware Fluid Control via Vector Potential Editing
Yizhang Chen, Takashi Kanai
- Published: 2026年5月26日
- Journal: Computer Animation and Virtual Worlds 37(3)
- DOI: https://doi.org/10.1002/cav.70131
- 分野: Computer Graphics / Fluid Simulation / Vector Potential / Vortex Methods
- 使用モデル: Stanford bunny
- 使用箇所: Section 4.1–4.5、Figure 3、Tables 3・4
- 論文記載: 35,967 vertices / 69,451 faces
- grid: 128^3
- frames: 250
- boundary editing: 0.13 ms/frame
- VPM: 12.80 ms/frame
- advection: 0.23 ms/frame
- total: 13.16 ms/frame
- 用途: 複雑障害物の境界編集・渦生成・GPU performance評価