《基于物理的建模与动画》简介:

本书基于原作者开设的一门关于物理建模的课程编写而成,概括地介绍了这一领域的知识,包括对粒子、粒子系统、刚体、约束系统、铰接体、流体等的模拟,还深入介绍了相关的数学知识。本书兼具实用性与理论性,既有丰富的伪代码供读者参考,也有详细的理论推导帮助读者深入地理解相关的概念。

本书适合计算机专业的中高年级本科生、研究生学习,也可供涉足该领域的研究人员、工程师参考。

《基于物理的建模与动画》目录:

第1部分 基础
第1章 导论
1.1 什么是基于物理的动画
1.2 动态模拟与离散事件模拟
1.3 数学记法约定
1.4 工具包及商用软件
1.5 本书结构
第2章 模拟的基础
2.1 模型及模拟
2.2 牛顿运动定律
2.3 在一维中落下一个球
2.4 运动的微分方程
2.5 基本的模拟循环
2.6 数值近似方法
2.7 空气中的三维运动
2.7.1 跟踪三个维度
2.7.2 空气阻力
2.7.3 风
2.8 总结
第3章 追踪弹跳球
3.1 与平面碰撞
3.1.1 碰撞检测
3.1.2 碰撞测定
3.1.3 更改模拟循环
3.2 碰撞响应
3.2.1 弹性
3.2.2 摩擦力
3.2.3 把所有结合起来
3.3 实现弹跳球
3.3.1 数值精度
3.3.2 静止条件
3.4 多边形的几何学
3.5 点与多边形的碰撞
3.6 特例:三角形相交
3.7 总结
第2部分 基于粒子的模型
第4章 粒子系统
4.1 什么是粒子系统
4.2 随机数、随机矢量及随机点
4.3 粒子生成器
4.4 粒子模拟
4.4.1 运算的编排
4.4.2 撤销粒子
4.4.3 碰撞
4.4.4 几何
4.4.5 高效的随机数
4.5 粒子渲染
4.5.1 点及划痕
4.5.2 精灵
4.5.3 几何图形
4.5.4 体积渲染
4.6 总结
第5章 粒子编排
5.1 加速度操作
5.1.1 引力吸引器
5.1.2 随机加速度
5.1.3 拖拽与反拖拽
5.1.4 速度限制器
5.2 速度操作
5.2.1 仿射速度操作
5.2.2 旋涡
5.3 避障
5.3.1 势场
5.3.2 操控
5.4 总结
第6章 交互粒子系统
6.1 状态向量
6.1.1 单一粒子的状态向量
6.1.2 交互粒子的状态向量
6.1.3 实现
6.2 扩展状态的概念
6.3 空间数据结构
6.3.1 均匀空间网格
6.3.2 八叉树
6.3.3 kd树
6.4 天文模拟
6.4.1 聚簇
6.4.2 一个采用均匀空间网格的简单算法
6.4.3 一个采用八叉树的自适应算法
6.5 群集系统
6.5.1 核心算法
6.5.2 距离与视域
6.5.3 加速度的优先级
6.5.4 绕过障碍
6.5.5 转向与侧飞
6.6 总结
第7章 数值积分
7.1 级数展开与积分
7.2 韦尔莱积分与蛙跳积分
7.2.1 基础韦尔莱积分
7.2.2 速度韦尔莱积分
7.2.3 蛙跳积分
7.3 龙格–库塔积分
7.3.1 一阶和二阶龙格–库塔法
7.3.2 四阶龙格–库塔法
7.4 高阶数值积分的实现
7.4.1 状态向量算法
7.4.2 用更高阶积分做碰撞检测
7.5 积分的精度和稳定性
7.5.1 指数衰减和正弦振荡
7.5.2 指数衰减的积分
7.5.3 正弦振荡的积分
7.5.4 RK方法的性能
7.5.5 阻尼与稳定性
7.6 自适应时步
7.7 隐式积分
7.7.1 直接求解隐式积分
7.7.2 雅克比和线性化函数
7.7.3 求根法求解隐式积分
7.7.4 隐式公式的精度和稳定性
7.8 总结
第8章 可形变弹性网格
8.1 阻尼弹性连接件
8.1.1 阻尼弹簧的数学原理
8.2 弹性网格
8.2.1 支撑杆——一种弹性网格的三维结构元素
8.2.2 用支撑杆构造一个弹性网格
8.2.3 空气阻力与风
8.2.4 弹性网格的模拟
8.2.5 结构刚度
8.3 扭转弹簧
8.3.1 力矩
8.3.2 根据扭转弹簧计算力矩
8.3.3 根据扭转弹簧计算顶点受力
8.3.4 带有扭转弹簧的网格的模拟
8.4 选择好的参数
8.5 碰撞
8.5.1 碰撞的类型
8.5.2 碰撞确定
8.5.3 弹性物体的碰撞响应
8.6 晶格形变器
8.7 布料建模
8.8 总结
第3部分 刚体动力学与约束动力学
第9章 刚体动力学
9.1 刚体状态
9.2 刚体属性
9.2.1 质心
9.2.2 惯性张量
9.3 刚体运动
9.3.1 力矩
9.3.2 更新刚体状态
9.3.3 四元数表示法
9.4 实现
9.5 总结
第10章 刚体的碰撞与接触
10.1 刚体碰撞
10.1.1 与静态物体的无摩擦碰撞
10.1.2 两个运动物体间的无摩擦碰撞
10.2 碰撞检测
10.2.1 包围体
10.2.2 粗略碰撞检测
10.2.3 精确碰撞检测
10.3 线性互补问题
10.3.1 处理多个接触刚体
10.3.2 作为LCP的多个碰撞与静止接触
10.3.3 摩擦力转为LCP
10.4 总结
第11章 约束
11.1 罚函数
11.1.1 P(比例)控制器
11.1.2 PD(比例微分)控制器
11.1.3 PID(比例积分微分)控制器
11.2 约束动力学
11.2.1 单约束
11.2.2 多约束
11.3 约化坐标
11.3.1 广义坐标和广义速度
11.3.2 动能、功和势能
11.3.3 拉格朗日量与拉格朗日方程
11.3.4 落球的例子
11.3.5 钟摆的例子
11.3.6 线上运动的珠子的例子
11.4 总结
第12章 铰接体
12.1 铰接体的结构
12.2 铰接体的动态状态
12.3 空间代数
12.3.1 空间速度与加速度
12.3.2 空间变换
12.3.3 空间力
12.3.4 空间转置
12.3.5 空间内积
12.3.6 空间叉积
12.4 空间代数记号下速度和加速度的传递
12.5 空间孤立量
12.6 第一次循环
12.7 计算空间铰接量
12.8 计算构件加速度
12.9 推广到树状铰接体
12.10 总结
第4部分 流体动力学
第13章 流体动力学基础
13.1 拉格朗日模拟与欧拉模拟
13.2 流体模拟的数学背景知识
13.2.1 标量场和矢量场
13.2.2 梯度
13.2.3 散度
13.2.4 旋度
13.2.5 拉普拉斯算符
13.3 纳维–斯托克斯方程
13.4 势流场
13.5 总结
第14章 光滑粒子流体动力学
14.1 空间采样和重构
14.2 粒子加速度计算
14.2.1 压强梯度
14.2.2 扩散
14.2.3 外部加速度和碰撞
14.3 核函数
14.4 流体表面和表面张力
14.5 模拟算法
14.6 总结
第15章 有限差分算法
15.1 有限差分
15.1.1 数值微分
15.1.2 微分算符
15.1.3 采样和插值
15.1.4 CFL条件
15.2 半拉格朗日法
15.2.1 w1增加外部加速度
15.2.2 w2用回溯法实现拉格朗日对流
15.2.3 w3速度扩散的隐式积分
15.2.4 w4得到一个无散速度场
15.2.5 烟模拟计算的结构
15.2.6 水模拟计算的结构
15.3 FLIP
15.4 总结
附录A 矢量
附录B 矩阵代数
附录C 仿射变换
附录D 坐标系统
附录E 四元数
附录F 重心坐标
索引
· · · · · ·