《游戏物理引擎开发》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)米灵顿著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302344568
  • 页数:334 页
图书介绍:本书详细阐述了与游戏物理引擎相关的高效解决方案及相应的数据结构和算法,主要包括粒子数学,运动定律,粒子物理引擎,合力,弹力,硬约束条件等内容。

第1章 概述 1

1.1游戏物理 1

1.2物理引擎 2

1.2.1物理引擎的优点 3

1.2.2物理引擎的缺点 3

1.3物理引擎的实现方案 4

1.3.1对象类型 4

1.3.2碰撞处理方案 4

1.3.3冲量和作用力 5

1.3.4构建内容 6

1.4物理引擎中的数学 6

1.4.1必备的数学知识 6

1.4.2数学知识回顾 7

1.4.3本书引入的数学概念 8

1.5本书源代码 8

1.6本书组织方式 9

第1部分 粒子物理 11

第2章 粒子数学 11

2.1向量 11

2.1.1左手空间和右手空间 14

2.1.2向量和方向 15

2.1.3标量和向量的乘法运算 17

2.1.4向量的加法和减法运算 18

2.1.5向量乘法 20

2.1.6分量积 20

2.1.7标量积 21

2.1.8向量积 24

2.1.9正交基向量 26

2.2积分运算 27

2.2.1微分学 27

2.2.2积分运算 30

2.3本章小结 31

第3章 运动定律 32

3.1粒子 32

3.2运动定律 33

3.2.1牛顿第一定律 33

3.2.2牛顿第二定律 34

3.2.3力学方程 34

3.2.4向粒子添加质量 35

3.2.5动量和速度 36

3.2.6重力 36

3.3积分算式 37

3.3.1更新方程 38

3.3.2完整的积分算式 39

3.4本章小结 40

第4章 粒子物理引擎 41

4.1弹道轨迹 41

4.1.1设置发射对象属性 41

4.1.2实现方法 42

4.2焰火效果 44

4.2.1焰火数据 45

4.2.2焰火效果规则集 46

4.2.3实现方法 47

4.3本章小结 50

第2部分 质量集合体物理 51

第5章 合力 51

5.1D’Alembert定理 51

5.2作用力发生器 53

5.2.1接口和多态 54

5.2.2实现方法 54

5.2.3重力发生器 57

5.2.4阻力发生器 57

5.3内建重力和阻尼机制 59

5.4本章小结 59

第6章 弹力 60

6.1胡克定律 60

6.1.1弹力限制条件 61

6.1.2弹性材质 61

6.2弹力发生器 61

6.2.1基础型弹力发生器 62

6.2.2固定弹簧发生器 63

6.2.3弹性橡皮筋 65

6.2.4浮力发生器 66

6.3硬质弹簧 69

6.3.1硬质弹簧产生的问题 70

6.3.2仿硬质弹簧 71

6.4本章小结 75

第7章 硬约束条件 77

7.1简单的碰撞解决方案 77

7.1.1闭合速度 77

7.1.2回弹系数 78

7.1.3碰撞法向和碰撞法线 79

7.1.4冲量 80

7.2碰撞处理方案 81

7.2.1碰撞检测 83

7.2.2处理相交对象 84

7.2.3静态碰撞 87

7.3碰撞处理算法 90

7.3.1处理顺序 90

7.3.2时分引擎 93

7.4类碰撞材质 94

7.4.1绳索 94

7.4.2连杆 97

7.5本章小结 98

第8章 质体物理引擎 100

8.1引擎概述 100

8.2使用物理引擎 105

8.2.1索桥和线缆 105

8.2.2摩擦力 106

8.2.3Blob游戏 107

8.3本章小结 107

第3部分 刚体物理系统 108

第9章 旋转操作的数学知识 108

9.1二维环境下的旋转对象 108

9.1.2角速度 110

9.1.3原点和质心 110

9.2三维环境中的方向 113

9.2.1欧拉角 113

9.2.2轴-角 115

9.2.3旋转矩阵 115

9.2.4四元数 116

9.3角速度和加速度 117

9.3.1点速度 118

9.3.2角加速度 119

9.4实现方案 119

9.4.1矩阵类 119

9.4.2矩阵乘法 120

9.4.3逆矩阵和转置矩阵 127

9.4.4将四元数转换为矩阵 133

9.4.5转换向量 135

9.4.6调整矩阵中的基向量 138

9.4.7四元数类 139

9.4.8四元数的标准化操作 140

9.4.9四元数组合操作 141

9.4.10旋转 142

9.4.11基于角速度的更新操作 142

9.5本章小结 143

第10章 刚体运算定律 144

10.1刚体 144

10.2基于旋转的牛顿第二定律 147

10.3转矩 147

10.3.1转动惯量 148

10.3.2世界坐标系中的惯性张量 151

10.4基于旋转的D’Alembert定理 153

10.5刚体积分运算 158

10.6本章小结 159

第11章 刚体物理引擎 161

11.1引擎概述 161

11.2物理引擎应用 163

11.2.1飞行模拟器 164

11.2.2帆船模拟器 168

11.3本章小结 173

第4部分 碰撞检测系统 174

第12章 碰撞检测 174

12.1碰撞检测管线 174

12.2粗略碰撞检测 175

12.3包围体 175

12.3.1层次结构 177

12.3.2构造层次结构 182

12.3.3子对象层次结构 187

12.4空间数据结构 188

12.4.1二分空间划分 189

12.4.2八叉树和四叉树 192

12.4.3网格方案 194

12.4.4多分辨率图 196

12.5本章小结 196

第13章 生成碰撞 198

13.1碰撞几何体 198

13.1.1图元组装 199

13.1.2生成碰撞几何体 199

13.2碰撞生成过程 200

13.2.1碰撞数据 201

13.2.2点-面碰撞 203

13.2.3边-边碰撞 203

13.2.4边-面碰撞 204

13.2.5面-面碰撞 204

13.2.6前期退出 205

13.3图元碰撞算法 205

13.3.1球体间的碰撞 206

13.3.2球体和平面之间的碰撞 208

13.3.3盒体与平面之间的碰撞 211

13.3.4球体与盒体之间的碰撞 213

13.3.5盒体间的碰撞 216

13.3.6效率和通用多面体 223

13.4本章小结 224

第5部分 接触型物理系统 225

第14章 碰撞处理方案 225

14.1冲量和冲击转矩 225

14.1.1冲击转矩 226

14.1.2旋转碰撞 227

14.1.3处理旋转碰撞 228

14.2碰撞冲量 228

14.2.1调整碰撞坐标系 229

14.2.2基于冲量的速度变化 234

14.2.3基于速度的冲量变化 237

14.2.4计算期望速度变化 238

14.2.5冲量计算 239

14.2.6冲量应用 239

14.3处理相交行为 240

14.3.1方案选取 241

14.3.2实现非线性投影 243

14.3.3避免过度的旋转 245

14.4碰撞处理过程 247

14.4.1碰撞处理管线 247

14.4.2预置碰撞数据 249

14.4.3处理相交问题 253

14.4.4处理速度 258

14.4.5更新算法的替代方案 260

14.5本章小结 262

第15章 静态接触和摩擦力 264

15.1静态作用力 264

15.2微碰撞 266

15.2.1移除速度 267

15.2.2减少复原 268

15.2.3计算最新速度 269

15.3摩擦力类型 269

15.3.1静态摩擦力和动态摩擦力 270

15.3.2各向同性摩擦力和各向异性摩擦力 272

15.4摩擦力实现方案 272

15.4.1基于冲量的摩擦力 273

15.4.2调整速度处理算法 274

15.4.3整合方案 279

15.5碰撞和连续碰撞处理 281

15.6本章小结 282

第16章 稳定性和优化问题 283

16.1稳定性 283

16.1.1四元数漂移 284

16.1.2斜面上的相交 284

16.1.3积分稳定性 286

16.1.4保守碰撞检测的优点 287

16.1.5调整数学精确度 288

16.2优化操作 289

16.2.1休眠机制 289

16.2.2相交和速度误差处理 295

16.2.3碰撞(接触)分组机制 297

16.2.4代码优化 298

16.3本章小结 300

第17章 整合方案 301

17.1引擎综述 301

17.2物理引擎应用 302

17.2.1布娃娃系统 303

17.2.2断裂物理学 306

17.2.3爆炸物理学 310

17.3引擎的局限性 316

17.3.1堆砌型对象 316

17.3.2反作用力摩擦力 316

17.3.3关节组装 316

17.3.4硬质弹簧 317

17.4本章小结 317

第6部分 扩展引擎 318

第18章 其他物理引擎 318

18.1同步碰撞处理 318

18.1.1Jacobian方案 318

18.1.2线性互补问题 319

18.2约化坐标方案 321

18.3本章小结 322

参考文献 323

附录A 常见惯性能量 324

A.1离散质体 324

A.2连续质体 324

A.3常见形状 325

A.3.1长方体 325

A.3.2球体 325

A.3.3圆柱体 326

A.3.4圆锥体 326

附录B 游戏中常见的摩擦系数 327

附录C 其他程序设计语言 328

C.1C语言 328

C.2Java语言 328

C.3公共语言运行库(.NET) 329

C.4Lua语言 329

附录D 数学背景知识 330

D.1向量 330

D.2四元数 331

D.3矩阵 332

D.4积分运算 333

D.5物理运算 333

D.6其他公式 334