P31
Air and Smoke
✅ 前面讲的是怎么更新速度;后面讲怎么利用速度做出效果。
- To simulate air and water, we need to advect some physical quantities.
- Smoke (density); water (volume-of-fluid, or signed distance function)
- Volume loss issue in water (how to fix it?)
- If you need to create a mesh from grid for rendering, you need something like marching cube.
P32
Air Simulation
- Air simulation is done in two steps.
- In Step 1, we update the flow (the velocity field) \(\mathbf{u}\).
- In Step 2, we use semi-Lagrangian (page 22) advect all of the other physical quantities, i.e., density, temperature…
- Typically we use Dirichlet boundaries for an open space (or Neumann boundaries for a container.)
- We can use it to simulate underwater as well.
P33
Water Simulation
✅ 要渲染的不是水,而是水与空气的接触面。但通常只模拟水不模拟空气。
-
Two representations
- Volume-of-fluid (as the name suggests…)
✅ 表示1:例如一个格子存储水的体积的百分化。用于早期,无法描述水的界面,因此不精准。
- A signed distance function defined over the grid.
❓ 怎么计算一个格子中的水的百分比?
-
How to advect(更新)?
- Semi-Lagrangian (volume loss)
- Level set method (volume loss),专用于 SDF 表示方法
✅ 水变少是常见问题,两种advect都存在。
P35
After-Class Reading
Osher and Fedkiw.
Level Set Methods and Dynamic Implicit Surfaces.
✅ 介绍流体模拟的很好的书。
本文出自CaterpillarStudyGroup,转载请注明出处。
https://caterpillarstudygroup.github.io/GAMES103_mdbook/