内容简介
《游戏开发物理学(第2版)》详细介绍了在游戏开发中所应用的物理学的思想和原理,帮助读者通过正确地应用物理规律增加游戏的物理真实度。
《游戏开发物理学 第2版》分为四部分,共26章。每个部分都基于前一部分所涵盖的内容而讲述。第一部分介绍基础物理知识,第二部分介绍刚体动力学,第三部分介绍物理模型,第四部分介绍数码物理学。《游戏开发物理学(第2版)》介绍了相关的概念和技术背景,给出了公式和一些代码示例,展示了如何针对一系列问题开发出相应的解决方案。你将在书中学到碰撞、爆炸、声音、抛体以及其他游戏效果的原理和实现,进而可以将其用于Wii、PlayStation、Xbox、智能手机或平板电脑上的游戏之中。
《游戏开发物理学(第2版)》适合那些想增加游戏真实的物理效果的游戏开发人员阅读,尤其适合缺乏扎实的物理或机械基础的游戏开发者。
作者简介
DavidBourg,MiNOMarine的创始人。MiNOMarine是一家从事海军建筑和海运专业服务的公司。他在20世纪90年代创建了一家开发儿童游戏、卡牌游戏以及进行PC到Mac软件移植的公司。他也是《AIforGameProgrammers》一书的合著者。
BryanBywalec,是MiNOMarine的一名架构师,他每天的工作是精确地模拟物理世界。由于对物理的热情,他偏爱那些重视物理效果的游戏,如《KerbleSpaceProgram》。
目录
第一部分基础1
第1章基本概念3
1.1牛顿运动定律3
1.2单位和度量4
1.3坐标系6
1.4向量7
1.5微分和积分7
1.6质量、质心和转动惯量8
1.7牛顿第二运动定律17
1.8惯性张量21
1.9相对论时间26
第2章运动学30
2.1速度和加速度31
2.2 恒定加速度33
2.3 非恒定加速度35
2.4 2D粒子运动学36
2.5 3D粒子运动学39
2.5.1 x分量40
2.5.2 y分量41
2.5.3 z分量42
2.5.4 向量42
2.5.5 击中目标42
2.6 运动粒子爆炸47
2.7 刚体运动学53
2.8 局部坐标轴54
2.9 角速度和角加速度54
第3章力61
3.1力61
3.2力场62
3.3摩擦力63
3.4流体动力阻力64
3.5压力65
3.6浮力66
3.7弹簧和阻尼器68
3.8力和转矩69
3.9总结71
第4章动理学72
4.12D粒子动理学73
4.23D粒子动理学78
4.2.1x分量79
4.2.2y分量80
4.2.3z分量81
4.2.4大炮修订版81
4.3刚体动理学84
第5章碰撞88
5.1冲量-动量原理89
5.2碰撞90
5.3线性冲量和角冲量95
5.4摩擦力98
第6章抛体101
6.1简单轨迹102
6.2阻力106
6.3马格努斯效应113
6.4质量变化118
第二部分刚体动力学119
第7章实时仿真121
7.1对运动方程进行积分121
7.2欧拉方法123
7.3更好的方法129
7.4总结134
第8章粒子135
8.1简单粒子建模139
8.1.1 积分器141
8.1.2 渲染141
8.2 基本仿真器142
8.3 实现外部力144
8.4 实现碰撞146
8.4.1 粒子撞击地面146
8.4.2 粒子和障碍物之间的碰撞152
8.5 调节156
第9章2D刚体仿真器158
9.1模型159
9.1.1转换坐标165
9.1.2积分器166
9.1.3渲染168
9.2基本仿真器168
9.3调节171
第10章实现碰撞响应173
10.1直线碰撞响应174
10.2角度因素180
第11章3D刚体仿真中的转动193
11.1旋转矩阵194
11.2四元数197
11.33D仿真中的四元数204
第12章3D刚体仿真207
12.1建模207
12.2积分211
12.3飞行控制214
第13章连接物体219
13.1弹簧和阻尼器220
13.2连接粒子221
13.3连接刚体227
第14章物理引擎241
14.1创建你自己的物理引擎241
14.1.1物理模型243
14.1.2模拟对象管理器244
14.1.3碰撞检测245
14.1.4碰撞响应246
14.1.5力效应器247
14.1.6数值积分248
第三部分物理模型249
第15章飞机251
15.1几何结构252
15.2升力和阻力254
15.3其他的力259
15.4控制260
15.5建模261
第16章船舶275
16.1稳定性和沉没276
16.1.1稳定性277
16.1.2沉没278
16.2船舶运动280
16.2.1起伏280
16.2.2侧倾281
16.2.3俯仰281
16.2.4相关运动281
16.3阻力和推进281
16.3.1通用阻力281
16.3.2推进286
16.4机动性287
第17章汽车和气垫船290
17.1汽车290
17.1.1阻力290
17.1.2功率291
17.1.3刹车距离292
17.1.4控制方向292
17.2气垫船295
17.2.1气垫船如何工作295
17.2.2阻力297
17.2.3转向299
第18章枪支和爆炸301
18.1弹丸运动301
18.2瞄准302
18.2.1归零准星304
18.2.2呼吸和身体位置306
18.3后坐力和碰撞308
18.4爆炸308
18.4.1粒子爆炸309
18.4.2多边形爆炸312
第19章运动315
19.1高尔夫挥杆建模316
19.2台球324
19.2.1实现326
19.2.2执行初始化328
19.2.3步入仿真331
19.2.4计算力333
19.2.5处理碰撞338
第四部分数码物理学347
第20章触摸屏349
20.1 触摸屏类型349
20.1.1 电阻式349
20.1.2 电容式349
20.1.3 红外和光学成像350
20.1.4 奇特的:色散信号和表面声波350
20.2 物理入门350
20.2.1 电阻式触摸屏350
20.2.2 电容式触摸屏354
20.3 示例程序355
20.4 其他注意事项356
20.4.1 触觉反馈356
20.4.2 游戏中的触摸屏建模357
20.4.3 与鼠标输入的差异357
20.4.4 自定义手势358
第21章加速度计359
21.1加速度理论360
21.1.1加速度计361
21.1.2通用加速度计技术规范362
21.1.3数据裁剪363
21.2感应方向364
21.3感应倾斜365
21.3.1用倾斜来控制一个动画精灵365
21.3.2两个自由度366
第22章从这里到那里的游戏372
22.1基于地理的游戏372
22.1.1地理藏宝和反向地理藏宝372
22.1.2混合现实373
22.1.3街头游戏373
22.2现在什么时候了?373
22.3地点、地点、地点377
22.3.1距离377
22.3.2大圆航向379
22.3.3恒向线380
第23章压力传感器和称重传感器383
23.1在压强之下383
23.2粉碎按钮385
23.3气压计390
第24章3D显示393
24.1双目视线393
24.2立体感基本概念395
24.3显示的类型399
24.3.1补充色立体399
24.3.2线偏振和圆偏振400
24.3.3液晶等离子402
24.3.4裸眼立体效果403
24.3.5高级技术405
24.4编程方面的考虑406
24.4.1主动立体化406
24.4.2被动立体化409
第25章光学追踪410
25.1传感器和SDK411
25.1.1Kinect411
25.1.2OpenCV412
25.2数值微分413
第26章声音416
26.1声音是什么?416
26.2声波的特点和行为419
26.2.1谐波420
26.2.2叠加421
26.2.3音速422
26.2.4衰减423
26.2.5反射424
26.2.6多普勒效应425
26.33D音效426
26.3.1如何感受到3D音效426
26.3.2一个简单的例子428
附录A向量运算431
附录B附录B矩阵运算440
附录C附录C四元数运算448
参考文献459