第1章 基础... 1
1.1 你好,流体模拟... 1
1.1.1 定义状态... 2
1.1.2 计算运动... 3
1.1.3 边界处理... 5
1.1.4 可视化... 6
1.1.5 最终结果... 13
1.2 如何阅读本书... 13
1.2.1 获取代码... 13
1.2.2 阅读代码... 14
1.2.3 阅读数学表达式... 21
1.3 数学... 21
1.3.1 坐标系... 22
1.3.2 向量... 22
1.3.3 矩阵... 34
1.3.4 线性方程组... 38
1.3.5 场... 43
1.3.6 插值... 57
1.4 几何... 64
1.4.1 几何表面... 64
1.4.2 隐式表面... 68
1.4.3 从隐式表面到显式表面... 71
1.4.4 从显式表面到隐式表面... 72
1.5 动画... 73
1.6 基于物理的动画... 78
1.6.1 基础入门... 78
1.6.2 物理动画示例... 80
1.7 流体动画... 93
1.7.1 重力... 94
1.7.2 压力... 95
1.7.3 黏性力... 97
1.7.4 密度约束... 98
第2章 基于粒子的模拟方法... 100
2.1 像修拉一样看世界... 100
2.2 数据结构... 101
2.2.1 粒子系统数据... 101
2.2.2 粒子系统案例... 104
2.2.3 邻居搜索... 110
2.3 光滑粒子法... 117
2.3.1 基础... 118
2.3.2 动力学... 132
2.3.3 结果和局限性... 139
2.4 具有较大时间步长的不可压缩SPH.. 141
2.4.1 预测与校正... 142
2.4.2 实现... 142
2.4.3 结果... 149
2.5 处理... 151
2.6 讨论和延伸阅读... 157
第3章 基于网格的模拟方法... 159
3.1 像素化世界... 159
3.2 数据结构... 160
3.2.1 网格类型... 161
3.2.2 网格系统数据... 169
3.3 微分算子... 172
3.3.1 有限差分... 172
3.3.2 梯度... 174
3.3.3 散度... 176
3.3.4 旋度... 178
3.3.5 拉普拉斯算子... 181
3.4 流体模拟... 182
3.4.1 碰撞处理... 184
3.4.2 对流... 190
3.4.3 重力... 201
3.4.4 黏性力... 201
3.4.5 压力与不可压性... 214
3.5 烟雾模拟... 223
3.5.1 浮力... 224
3.5.2 对流与耗散... 225
3.6 带界面的流体... 226
3.6.1 在网格上定义界面... 226
3.6.2 自由界面流动... 233
3.6.3 结果... 243
3.7 讨论和延伸阅读... 245
第4章 混合求解器... 246
4.1 为什么要混合... 246
4.2 胞中粒子法... 246
4.2.1 从粒子到网格的转换... 249
4.2.2 从网格到粒子的转换... 250
4.2.3 移动粒子... 251
4.2.4 结果... 252
4.3 流体隐式粒子法... 253
4.4 其他方法... 256
4.4.1 粒子水平集法... 256
4.4.2 涡旋粒子法... 257
4.5 讨论和延伸阅读... 257
附录A 基础知识增补... 259
A.1 共轭梯度和预条件共轭梯度的实现... 259
A.2 自适应时间步长... 264
附录B 基于粒子的模拟方法增补... 266
B.1 SPH核函数... 266
B.2 PCISPH推导... 267
附录C 基于网格的模拟方法增补... 271
C.1 网格上的向量与矩阵... 271
C.2 迭代求解器... 274
C.2.1 雅可比方法... 274
C.2.2 高斯-赛德尔方法... 276
C.2.3 共轭梯度法... 277