第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