图书目录

目    录

第1章  笛卡儿坐标系 1

1.1  一维数学 1

1.2  二维笛卡儿空间 4

1.2.1  示例:假设的Cartesia城市 5

1.2.2  任意二维坐标空间 6

1.2.3  使用笛卡儿坐标指定二维中的位置 10

1.3  三维笛卡儿空间 11

1.3.1  新增维度和轴 12

1.3.2  在三维中指定位置 13

1.3.3  左手与右手坐标空间 13

1.3.4  本书中使用的一些重要约定 16

1.4  一些零散的基础知识介绍 17

1.4.1  求和与求积的表示法 17

1.4.2  区间符号 18

1.4.3  角度、度数和弧度 19

1.4.4  三角函数 20

1.4.5  三角函数的恒等式 23

1.5  练习 25

第2章  矢量 29

2.1  向量和其他无聊东西的数学定义 29

2.2  矢量的几何定义 32

2.3  使用笛卡儿坐标指定矢量 33

2.3.1  作为位移序列的矢量 34

2.3.2  零矢量 35

2.4  矢量与点 36

2.4.1  相对位置 36

2.4.2  点与矢量之间的关系 37

2.4.3  一切都是相对的 38

2.5  负矢量 40

2.5.1  正式线性代数规则 40

2.5.2  几何解释 41

2.6  标量和矢量的乘法 42

2.6.1  正式线性代数规则 42

2.6.2  几何解释 43

2.7  矢量的加法和减法 43

2.7.1  正式线性代数规则 44

2.7.2  几何解释 45

2.7.3  从一点到另一点的位移矢量 47

2.8  矢量大小 47

2.8.1  正式线性代数规则 47

2.8.2  几何解释 48

2.9  单位矢量 49

2.9.1  正式线性代数规则 50

2.9.2  几何解释 50

2.10  距离公式 51

2.11  矢量点积 52

2.11.1  正式线性代数规则 52

2.11.2  几何解释 53

2.12  矢量叉积 60

2.12.1  正式线性代数规则 60

2.12.2  几何解释 61

2.13  线性代数恒等式 63

2.14  练习 64

第3章  多个坐标空间 71

3.1  为什么需要多个坐标空间? 71

3.2  一些有用的坐标空间 73

3.2.1  世界空间 73

3.2.2  对象空间 74

3.2.3  相机空间 75

3.2.4  直立空间 75

3.3  基矢量和坐标空间转换 77

3.3.1  双重视角 78

3.3.2  指定坐标空间 85

3.3.3  基矢量 86

3.4  嵌套坐标空间 93

3.5  针对直立空间的再解释 94

3.6  练习 95

第4章  矩阵简介 99

4.1  矩阵的数学定义 99

4.1.1  矩阵维度和表示法 100

4.1.2  方形矩阵 100

4.1.3  作为矩阵的矢量 101

4.1.4  矩阵转置 102

4.1.5  矩阵与标量相乘 103

4.1.6  两个矩阵相乘 103

4.1.7  矢量和矩阵相乘 106

4.1.8  行与列矢量 108

4.2  矩阵的几何解释 109

4.3  线性代数的宏大图景 113

4.4  练习 115

第5章  矩阵和线性变换 121

5.1  旋转 122

5.1.1  在二维中的旋转 122

5.1.2  围绕主轴的三维旋转 122

5.1.3  围绕任意轴的三维旋转 124

5.2  缩放 126

5.2.1  沿主轴缩放 127

5.2.2  任意方向的缩放 128

5.3  正交投影 130

5.3.1  投影到主轴或主平面上 131

5.3.2  投影到任意线或平面上 132

5.4  反射 133

5.5  错切 134

5.6  组合变换 135

5.7  变换的分类 136

5.7.1  线性变换 137

5.7.2  仿射变换 138

5.7.3  可逆变换 138

5.7.4  保持角度的变换 139

5.7.5  正交变换 139

5.7.6  刚体变换 140

5.7.7  变换类型总结 140

5.8  练习 141

第6章  矩阵详解 143

6.1  矩阵的行列式 143

6.1.1  关于2×2和3×3矩阵的行列式 143

6.1.2  子矩阵行列式和余子式 145

6.1.3  任意n×n矩阵的行列式 146

6.1.4  行列式的几何解释 149

6.2  逆矩阵 149

6.2.1  经典伴随矩阵 150

6.2.2  逆矩阵—正式线性代数规则 151

6.2.3  逆矩阵—几何解释 152

6.3  正交矩阵 152

6.3.1  正交矩阵—正式线性代数规则 153

6.3.2  正交矩阵—几何解释 153

6.3.3  矩阵的正交化 155

6.4  关于4×4齐次矩阵 157

6.4.1  关于四维齐次空间 157

6.4.2  关于4×4平移矩阵 158

6.4.3  一般仿射变换 161

6.5  关于4×4矩阵和透视投影 162

6.5.1  针孔相机 164

6.5.2  透视投影矩阵 167

6.6  练习 168

第7章  极坐标系 171

7.1  关于二维极坐标空间 171

7.1.1  使用二维极坐标定位点 171

7.1.2  别名 174

7.1.3  关于二维中笛卡儿坐标和极坐标之间的变换 177

7.2  为什么有人会使用极坐标? 180

7.3  关于三维极坐标空间 182

7.3.1  圆柱坐标 182

7.3.2  球面坐标 183

7.3.3  在三维虚拟世界中有用的一些极坐标约定 184

7.3.4  球面坐标的别名 186

7.3.5  球面坐标和笛卡儿坐标之间的转换 189

7.4  使用极坐标指定矢量 192

7.5  练习 193

第8章  三维旋转 197

8.1  “定向”含义探微 197

8.2  矩阵形式 199

8.2.1  矩阵的选择 199

8.2.2  方向余弦矩阵 202

8.2.3  矩阵形式的优点 203

8.2.4  矩阵形式的缺点 204

8.2.5  矩阵形式小结 205

8.3  欧拉角 206

8.3.1  欧拉角约定 206

8.3.2  其他欧拉角约定 208

8.3.3  欧拉角的优点 212

8.3.4  欧拉角的缺点 213

8.3.5  欧拉角小结 217

8.4  轴-角和指数映射表示方式 218

8.5  四元数 220

8.5.1  四元数表示法 221

8.5.2  这四个数字的意思 222

8.5.3  四元数变负 222

8.5.4  单位四元数 223

8.5.5  四元数的大小 223

8.5.6  四元数的共轭和逆 224

8.5.7  四元数乘法 225

8.5.8  四元数的“差” 228

8.5.9  四元数点积 228

8.5.10  四元数的对数、指数和标量乘法 229

8.5.11  四元数指数 230

8.5.12  四元数插值 232

8.5.13  四元数的优缺点 236

8.5.14  作为复数的四元数 237

8.5.15  四元数概要 244

8.6  方法比较 245

8.7  表示方式之间的转换 247

8.7.1  将欧拉角转换为矩阵 247

8.7.2  将矩阵转换为欧拉角 250

8.7.3  将四元数转换为矩阵 253

8.7.4  将矩阵转换为四元数 255

8.7.5  将欧拉角转换为四元数 259

8.7.6  将四元数转换为欧拉角 260

8.8  练习 262

第9章  几何图元 267

9.1  表示技术 267

9.2  直线和光线 269

9.2.1  光线 270

9.2.2  直线的特殊二维表示 271

9.2.3  表示方式之间的转换 274

9.3  球体和圆形 275

9.4  包围盒 276

9.4.1  关于AABB的表示方式 277

9.4.2  计算AABB 278

9.4.3  关于AABB与包围球 279

9.4.4  变换AABB 280

9.5  平面 283

9.5.1  平面方程:平面的隐式定义 284

9.5.2  使用3个点定义一个平面 285

9.5.3  超过3个点的“最佳拟合”平面 286

9.5.4  点到平面的距离 288

9.6  三角形 289

9.6.1  表示法 290

9.6.2  三角形的面积 291

9.6.3  重心空间 293

9.6.4  计算重心坐标 296

9.6.5  特殊点 302

9.7  多边形 304

9.7.1  简单多边形和复杂多边形 304

9.7.2  凸多边形和凹多边形 306

9.7.3  三角剖分和扇形分割 310

9.8  练习 311

第10章  三维图形的数学主题 313

10.1  图形工作原理 314

10.1.1  两种主要的渲染方法 315

10.1.2  描述表面特性:BRDF 320

10.1.3  颜色和辐射度测量简介 322

10.1.4  渲染方程 327

10.2  关于三维视图 330

10.2.1  指定输出窗口 330

10.2.2  像素宽高比 331

10.2.3  视锥体 332

10.2.4  视野和缩放 333

10.2.5  正交投影 336

10.3  坐标空间 337

10.3.1  模型、世界和相机空间 337

10.3.2  裁剪空间和裁剪矩阵 338

10.3.3  裁剪矩阵:准备投影 339

10.3.4  裁剪矩阵:应用缩放并准备裁剪 342

10.3.5  屏幕空间 345

10.3.6  坐标空间概述 346

10.4  多边形网格 348

10.4.1  索引三角网格 350

10.4.2  表面法线 353

10.5  纹理映射 360

10.6  标准局部照明模型 363

10.6.1  标准照明公式:概述 363

10.6.2  镜面反射分量 364

10.6.3  漫反射分量 369

10.6.4  环境光和发光分量 371

10.6.5  照明方程:综合考虑各分量 372

10.6.6  标准模型的局限性 374

10.6.7  平面着色和Gouraud着色 375

10.7  光源 378

10.7.1  标准抽象光类型 378

10.7.2  光衰减 381

10.7.3  关于Doom风格体积光 383

10.7.4  预先计算的照明 386

10.8  骷髅动画 387

10.9  凹凸映射 394

10.9.1  切线空间 396

10.9.2  计算切线空间基矢量 397

10.10  实时图形管道 401

10.10.1  缓冲区 408

10.10.2  传递几何体 409

10.10.3  顶点级别的操作 413

10.10.4  裁剪 414

10.10.5  背面剔除 417

10.10.6  光栅化、着色和输出 418

10.11  一些HLSL示例 420

10.11.1  贴花着色和HLSL基础知识 420

10.11.2  基础的每个像素Blinn-Phong照明 422

10.11.3  使用Gouraud着色算法 431

10.11.4  凹凸映射 436

10.11.5  蒙皮网格 439

10.12  深入阅读建议 443

10.13  练习 444

第11章  力学1:线性运动学和微积分 449

11.1  概述 449

11.1.1  忽略的东西 449

11.1.2  关于宇宙的一些有用的谎言 450

11.2  基本数量和单位 452

11.3  平均速度 455

11.4  瞬时速度和导数 458

11.4.1  极限参数和导数的定义 459

11.4.2  导数示例 463

11.4.3  通过定义计算导数 465

11.4.4  导数的表示法 469

11.4.5  一些求导法则和快捷方式 471

11.4.6  泰勒级数的一些特殊函数的导数 474

11.4.7  链式法则 476

11.5  加速度 478

11.6  恒定加速度下的运动 480

11.7  积分 493

11.7.1  积分的例子 495

11.7.2  导数与积分之间的关系 497

11.7.3  微积分小结 501

11.8  匀速圆周运动 502

11.8.1  平面内的匀速圆周运动 503

11.8.2  三维中的匀速圆周运动 507

11.9  练习 509

第12章  力学2:线性和旋转动力学 513

12.1  牛顿的3个基本定律 513

12.1.1  牛顿的前两个定律:力与质量 514

12.1.2  惯性参考系 517

12.1.3  牛顿第三定律 518

12.2  一些简单的力定律 521

12.2.1  重力 521

12.2.2  摩擦力 524

12.2.3  弹簧力 528

12.3  动量 536

12.3.1  动量守恒 539

12.3.2  质心 540

12.4  冲击力和碰撞 543

12.4.1  完全非弹性碰撞 545

12.4.2  一般碰撞响应 547

12.4.3  关于Dirac Delta 554

12.5  旋转动力学 555

12.5.1  旋转运动学 556

12.5.2  关于二维旋转动力学 558

12.5.3  关于三维旋转动力学 565

12.5.4  与旋转的碰撞响应 568

12.6  实时刚体模拟器 570

12.6.1  物理引擎状态变量 571

12.6.2  高级概述 576

12.6.3  欧拉积分 581

12.6.4  旋转的积分 584

12.7  深入阅读建议 586

12.8  练习 588

第13章  三维曲线 591

13.1  参数多项式曲线 591

13.1.1  参数曲线 592

13.1.2  多项式曲线 592

13.1.3  矩阵表示法 594

13.1.4  两种简单的曲线 595

13.1.5  单项式端点 595

13.1.6  速度和切线 596

13.2  多项式插值 598

13.2.1  艾特肯的算法 600

13.2.2  拉格朗日基多项式 603

13.2.3  多项式插值汇总 607

13.3  埃尔米特曲线 608

13.4  贝塞尔曲线 613

13.4.1  关于de Casteljau算法 614

13.4.2  伯恩斯坦基多项式 619

13.4.3  贝塞尔导数及其与埃尔米特形式的关系 624

13.5  细分 627

13.5.1  细分单项式曲线 628

13.5.2  细分贝塞尔曲线 629

13.6  样条曲线 631

13.6.1  游戏规则 633

13.6.2  节点 634

13.7  埃尔米特和贝塞尔样条曲线 635

13.8  连续性 638

13.8.1  参数连续性 639

13.8.2  几何连续性 641

13.8.3  曲线平滑度 642

13.9  自动切线控制 642

13.9.1  Catmull-Rom样条 643

13.9.2  TCB样条 645

13.9.3  端点条件 649

13.10  练习 650

第14章  后记 653

14.1  接下来做什么 653

14.2  练习 653

附录A  几何测试 655

A.1  在二维隐式直线上的最近点 655

A.2  参数化光线上的最近点 656

A.3  平面上的最近点 657

A.4  圆或球体上的最近点 657

A.5  轴向对齐的包围盒中的最近点 658

A.6  相交测试 659

A.7  在二维中两条隐式直线的交点 659

A.8  在三维中两条光线的交点 660

A.9  光线和平面的交点 662

A.10  轴向对齐的包围盒与平面的交点 663

A.11  3个平面的交点 664

A.12  光线与圆或球体的交点 665

A.13  两个圆或球的交点 667

A.14  球体与轴向对齐的包围盒的交点 669

A.15  球体与平面的交点 669

A.16  光线与三角形的交点 671

A.17  两个AABB的交点 676

A.18  光线与AABB的交点 679

附录B  练习答案 683

B.1  第1章 683

B.2  第2章 684

B.3  第3章 696

B.4  第4章 697

B.5  第5章 701

B.6  第6章 703

B.7  第7章 705

B.8  第8章 710

B.9  第9章 712

B.10  第10章 717

B.11  第11章 719

B.12  第12章 722

B.13  第13章 729

参考文献 737