《游戏中的数学与物理学 第2版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)JohnPatrickFlynt,(美)DannyKodicek著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302379515
  • 页数:403 页
图书介绍:针对于仿真系统、游戏技术所表现的华丽场景,本书揭示了其幕后技术。对此,业界开发人员将拥有更大的权限创建具有自身团队风格的游戏、仿真引擎。

第1部分 数学知识 2

第1章 数字 2

1.1 概述 2

1.2 数字的书写方式 2

1.2.1 整数、有理数和无理数 2

1.2.2 无理数和实数 3

1.2.3 数位串形式的数字 3

1.2.4 十进制、二进制和十六进制 5

1.3 数字在计算机中的表达方式 5

1.3.1 表达整数 6

1.3.2 有理数和无理数的表达方法 7

1.3.3 标准数字和计算数字 8

1.3.4 公共函数 9

1.3.5 舍入误差和性能 11

1.3.6 BigInteger类 11

1.4 本章练习 12

1.5 本章小结 12

第2章 数学运算 13

2.1 概述 13

2.2 分数 13

2.3 比例、比率以及百分比 20

2.3.1 数值范围间的映射 20

2.3.2 纸张尺寸 20

2.3.3 黄金比率 21

2.3.4 Fibonacci数列 22

2.3.5 滑块 22

2.3.6 百分比计算 23

2.3.7 复利计算 24

2.3.8 债务和利息 24

2.4 指数 25

2.4.1 指数计算 25

2.4.2 数字e和exp()函数 27

2.4.3 真实世界和物理学中的指数函数 27

2.5 对数 27

2.5.1 对数计算 28

2.5.2 通过对数简化计算 28

2.5.3 利用对数处理大数 29

2.6 本章练习 30

2.7 本章小结 30

第3章 代数运算 31

3.1 概述 31

3.2 基本的代数运算 31

3.2.1 变量、参数和常量 31

3.2.2 表达式和数据项 32

3.2.3 函数 32

3.2.4 函数表达方式 33

3.2.5 一一对应、反函数和多值函数 33

3.2.6 多项式 33

3.2.7 等式、公式和不等式 34

3.3 等式计算 34

3.3.1 等式配平 35

3.3.2 简化计算 35

3.3.3 符号和置换操作 36

3.3.4 对原问题进行求解 37

3.4 分解并求解二次等式(方程) 37

3.4.1 分解示例 38

3.4.2 因子和二次表达式 38

3.4.3 求解3次等式 40

3.4.4 求解联立方程 41

3.4.5 替换法求解联立方程 41

3.4.6 基于消去法的联立方程 43

3.4.7 方程组求解函数 44

3.5 函数和函数图 45

3.5.1 何为函数图 45

3.5.2 函数图的绘制和检测 47

3.5.3 函数图反映的数据 50

3.5.4 参数曲线和函数 51

3.6 本章练习 52

3.7 本章小结 52

第4章 几何学和三角学 53

4.1 概述 53

4.2 角度 53

4.2.1 角度和角度值 53

4.2.2 面积和π 55

4.2.3 弧度 56

4.3 三角形 56

4.3.1 三角形类型 56

4.3.2 通用三角形类型 57

4.3.3 直角三角形 58

4.3.4 毕达哥拉斯定理 58

4.3.5 毕达哥拉斯三元数 59

4.3.6 毕达哥拉斯定理推论 59

4.3.7 三角函数 60

4.3.8 三角恒等式 61

4.3.9 反三角函数 62

4.4 三角形计算 63

4.4.1 正弦和余弦定理 63

4.4.2 相似三角形 65

4.4.3 三角形面积 66

4.5 旋转和反射 66

4.5.1 转换 66

4.5.2 旋转对象某一角度 67

4.5.3 围绕中心位置的旋转操作 69

4.5.4 基于特定角度值的快速旋转 69

4.5.5 反射 69

4.5.6 sin()、cos()和圆周运动 70

4.6 本章练习 71

4.7 本章小结 71

第5章 向量 73

5.1 概述 73

5.2 基础知识 73

5.2.1 “指令”向量 73

5.2.2 向量算术 75

5.2.3 向量编程 76

5.2.4 法向量 77

5.2.5 真实世界中的向量和标量 78

5.3 基于向量的运动 78

5.3.1 通过向量描述形状 78

5.3.2 P和Q之间的运动 80

5.3.3 复杂的向量路径 82

5.3.4 奇异路径 83

5.4 向量计算 84

5.4.1 向量及其分量 84

5.4.2 标量积(点积) 85

5.4.3 向量方程 86

5.5 矩阵 89

5.5.1 矩阵基础知识 89

5.5.2 行列式 90

5.5.3 矩阵算术 91

5.5.4 基于转换的矩阵 93

5.6 本章练习 94

5.7 本章小结 95

第6章 微积分 96

6.1 概述 96

6.2 微分和积分 96

6.2.1 函数梯度 96

6.2.2 微分计算 98

6.2.3 应用示例 99

6.2.4 导数信息 100

6.2.5 对数和指数的微分运算 100

6.2.6 三角函数的微分运算 101

6.2.7 参数方程和偏导数 102

6.2.8 积分运算 103

6.3 微分方程 104

6.3.1 常微分方程的特征 104

6.3.2 求解线性ODE 105

6.4 近似方案 106

6.4.1 划界法 106

6.4.2 梯度方案 108

6.5 本章练习 110

6.6 本章小结 110

第2部分 物理学基本内容 114

第7章 加速度、质量和能量 114

7.1 概述 114

7.2 弹道学 114

7.2.1 加速和减速 114

7.2.2 基于恒定加速度的运动方程 115

7.2.3 基于重力的加速度 116

7.2.4 炮弹的运动行为 117

7.3 质量和动量 118

7.3.1 质量和惯性 118

7.3.2 动量计算 119

7.4 能量 119

7.4.1 能量类型 120

7.4.2 能量守恒 120

7.4.3 利用能量守恒求解弹道问题 121

7.5 本章练习 122

7.6 本章小结 123

第8章 简单形状之间的碰撞检测 124

8.1 概述 124

8.2 基本原则 124

8.3 圆形对象间的碰撞 125

8.3.1 圆形 125

8.3.2 移动的圆形和墙壁 126

8.3.3 静止圆和运动点 127

8.3.4 直线上的两个运动圆 128

8.3.5 以某一角度运动的两个圆 129

8.3.6 内嵌圆 130

8.3.7 碰撞点 131

8.4 正方形碰撞 131

8.4.1 正方形和矩形 132

8.4.2 静止矩形和运动点 133

8.4.3 同一角度碰撞的矩形 135

8.4.4 不同角度的两个矩形 137

8.4.5 碰撞点 138

8.5 椭圆形之间的碰撞 138

8.5.1 椭圆 138

8.5.2 通过坐标描述椭圆 139

8.5.3 平移操作 140

8.5.4 静态椭圆和动态点 141

8.5.5 两个椭圆之间的碰撞 142

8.5.6 碰撞点 142

8.6 不同形状对象间的碰撞 142

8.6.1 圆形和矩形之间的碰撞 142

8.6.2 碰撞点 143

8.7 本章练习 143

8.8 本章小结 144

第9章 碰撞处理方案 145

9.1 概述 145

9.2 处理单一碰撞行为 145

9.2.1 球体与墙面之间的碰撞 145

9.2.2 球体与运动的墙面发生碰撞 146

9.2.3 两个运动球体的碰撞 148

9.2.4 非弹性碰撞 149

9.3 处理多次碰撞行为 151

9.3.1 递归碰撞 151

9.3.2 同时碰撞 153

9.4 本章练习 154

9.5 本章小结 154

第10章 复杂形状间的碰撞检测 155

10.1 概述 155

10.2 复杂形状 155

10.2.1 位图和矢量图 155

10.2.2 定义复杂形状 156

10.2.3 碰撞图函数 157

10.2.4 参数函数 158

10.2.5 Bezier曲线和样条 158

10.2.6 Catmull-Rom曲线 159

10.2.7 可移动样条 160

10.2.8 凸形和凹形 161

10.2.9 确定一点是否位于几何形状中 162

10.3 某些合理性问题 164

10.3.1 计算复杂形状的前缘边 164

10.3.2 使用碰撞图 167

10.3.3 计算包围形状 170

10.4 内建方案 173

10.5 本章练习 174

10.6 本章小结 174

第11章 一款简单的撞球游戏 175

11.1 概述 175

11.2 模拟中的主要元素 175

11.2.1 定义撞球桌面 175

11.2.2 定义球体 177

11.2.3 定义物理参数 179

11.3 运行游戏 180

11.3.1 创建球杆 180

11.3.2 游戏主循环 181

11.3.3 基本的剔除操作 184

11.3.4 游戏逻辑 185

11.4 本章练习 186

11.5 本章小结 186

第3部分 复杂运动 188

第12章 力和牛顿定律 188

12.1 概述 188

12.2 作用力 188

12.2.1 牛顿第一定律 188

12.2.2 牛顿第二定律 189

12.2.3 牛顿第三定律 190

12.2.4 冲量 190

12.3 重力 191

12.3.1 万有引力定律 191

12.3.2 重力作用下的行星运动 191

12.3.3 稳定轨道 192

12.3.4 离心力和向心力 193

12.4 火箭和卫星 193

12.4.1 地球静止轨道 193

12.4.2 高速飞行的炮弹 194

12.5 本章练习 195

12.6 本章小结 195

第13章 角运动 196

13.1 概述 196

13.2 杠杆物理 196

13.2.1 转矩 196

13.2.2 转动惯量 198

13.2.3 惯性片状物体 199

13.3 旋转 200

13.3.1 芭蕾舞演员和旋转陀螺 200

13.3.2 旋转动能 201

13.4 旋转碰撞 202

13.4.1 旋转直线和圆形之间的碰撞检测 202

13.4.2 圆和运动直线 204

13.4.3 直线间的碰撞检测 206

13.4.4 两条旋转直线 209

13.4.5 处理角碰撞 210

13.5 向撞球游戏中加入旋转行为 212

13.6 本章练习 212

13.7 本章小结 213

第14章 摩擦力 214

14.1 概述 214

14.2 摩擦力的工作方式 214

14.2.1 摩擦系数 214

14.2.2 摩擦力和能量 216

14.2.3 空气阻力和临界下降速度 216

14.3 摩擦力和角运动 217

14.3.1 轮胎和牵引力 217

14.3.2 摩擦力和打滑现象 219

14.4 本章练习 220

14.5 本章小结 220

第15章 绳索、滑轮和传送带 221

15.1 概述 221

15.2 拉动对象 221

15.2.1 不可扩展的绳索 221

15.2.2 桌面上的绳索 222

15.2.3 绳索和圆周运动 222

15.2.4 滑轮 224

15.3 连续动量 225

15.3.1 传送带 225

15.3.2 火箭燃料 226

15.4 本章练习 227

15.5 本章小结 227

第16章 振荡现象 228

16.1 概述 228

16.2 弹簧 228

16.2.1 拉伸弹簧所产生的作用力 228

16.2.2 通过弹簧测量重量 229

16.3 简谐运动 230

16.3.1 简谐运动方程 230

16.3.2 其他SHM示例 231

16.3.3 参数计算 232

16.4 阻尼简谐运动 233

16.4.1 DHM方程 233

16.4.2 实际阻尼计算 234

16.5 弹簧的复杂性 236

16.5.1 共振与秋千 236

16.5.2 联接弹簧:链接运动 236

16.6 弹簧运动的计算过程 237

16.6.1 基于弹簧的作用力 237

16.6.2 非阻尼和非联接弹簧 238

16.6.3 纯DHM振荡 240

16.7 波 241

16.7.1 波运动 241

16.7.2 波类型 242

16.7.3 波的叠加和削减 242

16.7.4 波的物理行为 243

16.8 本章练习 245

16.9 本章小结 245

第4部分 3D数学 248

第17章 3D形状 248

17.1 概述 248

17.2 3D向量 248

17.2.1 添加第三个维度 248

17.2.2 向量(叉)积 249

17.2.3 使用叉积结果 250

17.2.4 齐次坐标 252

17.3 渲染机制 253

17.3.1 投影平面 254

17.3.2 透视 256

17.3.3 正交投影 257

17.4 光线投射 258

17.4.1 通过3D引擎计算路径上的对象 258

17.4.2 拾取、拖曳以及投掷操作 259

17.5 本章练习 260

17.6 本章小结 261

第18章 转换操作 262

18.1 概述 262

18.2 描述空间位置 262

18.2.1 位置、旋转和缩放 262

18.2.2 转换矩阵 264

18.3 转换应用 266

18.3.1 利用转换操作构建运动行为 266

18.3.2 插值计算 268

18.3.3 四元数 268

18.3.4 父转换和子转换 269

18.4 本章练习 271

18.5 本章小结 271

第19章 碰撞检测 272

19.1 概述 272

19.2 碰撞场景世界 272

19.2.1 球体 272

19.2.2 动球体和墙面 273

19.2.3 球体和运动点或两个球体 274

19.2.4 碰撞点 274

19.3 碰撞球体 274

19.3.1 椭球体 274

19.3.2 椭球体和运动点或平面 275

19.3.3 两个椭球体 275

19.4 碰撞盒体 276

19.4.1 盒体 276

19.4.2 盒体和移动点 276

19.4.3 两个盒体之间的碰撞 277

19.4.4 盒体与球体之间的碰撞 278

19.5 碰撞柱体 279

19.5.1 圆柱体 279

19.5.2 圆柱体与点或球体之间的碰撞 280

19.5.3 圆锥体与球体或粒子间的碰撞 281

19.5.4 两个圆柱体间的碰撞 282

19.6 其他碰撞类型 282

19.6.1 包围球、包围椭球体与包围盒 283

19.6.2 网格间的碰撞 283

19.7 三维空间中的碰撞处理 283

19.8 本章练习 283

19.9 本章小结 284

第20章 光照和纹理 285

20.1 概述 285

20.2 光照 285

20.2.1 真实光照 285

20.2.2 模拟光照 286

20.3 材质 288

20.3.1 表面颜色 288

20.3.2 图像贴图和纹理 290

20.3.3 贴图与形状之间的匹配 292

20.3.4 纹理链 293

20.4 着色机制 295

20.4.1 Gouraud和Phong着色 295

20.4.2 顶点法线 296

20.5 本章练习 296

20.6 本章小结 296

第21章 建模技术 298

21.1 概述 298

21.2 数学3D建模 298

21.2.1 旋转表面 298

21.2.2 3D样条 299

21.2.3 NURBS 300

21.2.4 基于正弦和余弦函数的表面 302

21.2.5 细分操作 303

21.3 动画表面 304

21.3.1 布料和头发 304

21.3.2 水波 306

21.4 骨骼动画 306

21.4.1 与骨骼协同工作 306

21.4.2 逆向动力学 308

21.5 本章练习 310

21.6 本章小结 310

第5部分 游戏算法 314

第22章 加速方案 314

22.1 概述 314

22.2 简单和复杂的计算方案 314

22.2.1 计算复杂度 314

22.2.2 使用查找表 315

22.2.3 整数计算 316

22.3 伪物理模拟 318

22.3.1 对碰撞执行简化计算 318

22.3.2 简化运动行为 319

22.3 剔除操作 320

22.3.1 空间划分 320

22.3.2 四叉树和八叉树 321

22.3.3 二分空间 322

22.3.4 包围体层次结构 323

22.4 本章练习 324

22.5 本章小结 324

第23章 贴图游戏 325

23.1 概述 325

23.2 根据位数据创建游戏 325

23.2.1 构造贴图场景 325

23.2.2 基本的运动行为和相机控制 326

23.2.3 基本的碰撞行为 327

23.2.4 复杂贴图单元 329

23.3 高级贴图机制 330

23.3.1 等轴测视图 330

23.3.2 3D贴图类游戏 331

23.3.3 基于样条的贴图单元 334

23.4 本章练习 334

23.5 本章小结 334

第24章 迷宫类游戏 335

24.1 概述 335

24.2 迷宫分类 335

24.2.1 图和连接性 335

24.2.2 迷宫转向 337

24.3 生成迷宫 339

24.3.1 处理迷宫数据 339

24.3.2 自动生成迷宫 340

24.3.3 多连通迷宫 343

24.3.4 更为复杂的迷宫结构 344

24.4 迷宫漫游 345

24.4.1 碰撞检测和相机控制 345

24.4.2 视线 346

24.4.3 迷宫的进程 348

24.4.4 路径搜索和A*算法 349

24.5 本章练习 351

24.6 本章小结 351

第25章 博弈论和人工智能 352

25.1 概述 352

25.2 博弈论简介 352

25.2.1 零和游戏 352

25.2.2 求解游戏 354

25.2.3 Tic-Tac-Toe游戏中的博弈论 356

25.2.4 Tic-Tac-Toe游戏的搜索方案 357

25.2.5 限制条件 360

25.3 战术型AI 360

25.3.1 棋类游戏的工作方式 361

25.3.2 程序训练 361

25.3.3 基于Tic-Tac-Toe游戏的战术AI 362

25.4 自顶向下型AI 362

25.4.1 目标和子目标 363

25.4.2 改变目标的时机 363

25.4.3 Tic-Tac-Toe游戏的自顶向下AI方案 364

25.5 自底向上型AI 365

25.5.1 神经网络 366

25.5.2 神经网络训练 368

25.5.3 行为者和涌现性 368

25.5.4 Tic-Tac-Toe的自底向上AI方案 369

25.6 本章练习 370

25.7 本章小结 370

第26章 搜索技术 371

26.1 概述 371

26.2 问题求解方式 371

26.2.1 问题表达 371

26.2.2 搜索答案 372

26.2.3 交互行为 374

26.3 用例学习 374

26.3.1 前期准备 374

26.3.2 编写搜索函数 376

26.4 遗传算法 376

26.4.1 自然选择 377

26.4.2 遗传算法分析 378

26.4.3 调整过程 379

26.5 本章练习 380

26.6 本章小结 381

附录A 术语表 382

附录B 代码引用 394

B.1 数据类型 394

B.2 变量 395

B.3 操作符 395

附录C 希腊字母 396

附录D 学习资源 397

D.1 数学 397

D.2 专业资源 398

D.2.1 碰撞检测 398

D.2.2 3D引擎和几何学 398

D.2.3 游戏物理 398

D.2.4 迷宫、搜索和人工智能 398

附录E 练习答案 400