图书介绍
3D游戏引擎设计 实时计算机图形学的应用方法 第2版PDF|Epub|txt|kindle电子书版本网盘下载
![3D游戏引擎设计 实时计算机图形学的应用方法 第2版](https://www.shukui.net/cover/8/35016786.jpg)
- (美)艾伯利著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302343004
- 出版时间:2013
- 标注页数:730页
- 文件大小:169MB
- 文件页数:761页
- 主题词:三维动画软件-游戏程序-程序设计
PDF下载
下载说明
3D游戏引擎设计 实时计算机图形学的应用方法 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 概述1
1.1 图形硬件和游戏发展史1
1.2 本书版本与软件发展史1
1.3 章节导读2
第2章 图形系统4
2.1 基础知识4
2.1.1 坐标系5
2.1.2 右手规则/左手规则和叉积计算6
2.1.3 点和向量9
2.2 转换操作11
2.2.1 线性转换11
2.2.2 仿射转换19
2.2.3 透视转换20
2.2.4 透视投影的特征22
2.2.5 齐次点和矩阵25
2.3 相机28
2.3.1 透视相机模型28
2.3.2 模型空间和对象空间31
2.3.3 世界空间31
2.3.4 视见空间、相机空间和眼睛空间32
2.3.5 剪裁空间、投影空间或齐次空间34
2.3.6 窗口空间37
2.3.7 整合结果38
2.4 剔除操作和剪裁操作45
2.4.1 对象剔除操作45
2.4.2 背面剔除46
2.4.3 基于视锥体的剪裁操作48
2.5 光栅化操作53
2.5.1 直线段53
2.5.2 圆形57
2.5.3 椭圆58
2.5.4 三角形62
2.6 顶点属性64
2.6.1 颜色64
2.6.2 光照和材质65
2.6.3 纹理69
2.6.4 透明度和混合操作80
2.6.5 雾效果84
2.6.6 其他85
2.6.7 光栅化属性85
2.7 软件、硬件和API86
2.7.1 概述86
2.7.2 可移植性和性能87
2.8 API规范89
2.8.1 矩阵的表达和存储方式89
2.8.2 矩阵累积计算93
2.8.3 视见矩阵93
2.8.4 投影矩阵95
2.8.5 窗口坐标系97
2.8.6 旋转操作99
2.8.7 基于图形API的快速计算100
第3章 渲染器103
3.1 软件渲染104
3.1.1 顶点着色器104
3.1.2 背面剔除106
3.1.3 剪裁操作108
3.1.4 光栅化操作111
3.1.5 边缓冲区111
3.1.6 扫描线处理过程113
3.1.7 像素着色器115
3.1.8 模板缓冲机制117
3.1.9 深度缓冲区119
3.1.10 Alpha混合操作120
3.1.11 颜色蒙版120
3.1.12 纹理采样121
3.1.13 帧缓冲区122
3.2 硬件渲染122
3.3 抽象渲染API123
3.3.1 构造和析构124
3.3.2 相机管理125
3.3.3 全局状态管理125
3.3.4 缓冲区清除操作126
3.3.5 对象绘制127
3.3.6 纹理和2D绘制127
3.3.7 其他操作128
3.3.8 资源管理129
3.4 渲染器的核心内容139
3.4.1 场景绘制139
3.4.2 几何图元绘制141
3.4.3 视效应用143
3.4.4 加载和解析着色器程序144
3.4.5 着色器程序的验证153
第4章 场景图157
4.1 场景图设计157
4.1.1 核心类160
4.1.2 空间层次结构设计164
4.1.3 对象共享机制166
4.2 几何状态168
4.2.1 顶点缓冲区和索引缓冲区168
4.2.2 转换操作169
4.2.3 包围体177
4.2.4 几何类型182
4.3 渲染状态188
4.3.1 全局状态188
4.3.2 光照190
4.3.3 视效194
4.4 更新操作195
4.4.1 几何状态更新195
4.4.2 渲染状态更新204
4.5 剔除操作212
4.5.1 层次结构的剔除操作215
4.5.2 基于排序的剔除操作217
4.6 绘制操作218
4.6.1 单路绘制操作219
4.6.2 单一视效和多路绘制222
4.6.3 多视效绘制操作224
4.7 场景图编译器225
4.7.1 基于表达式的场景图226
4.7.2 编译语义229
第5章 控制器动画231
5.1 关键帧动画232
5.1.1 位置插值232
5.1.2 方向插值计算233
5.1.3 缩放插值233
5.2 关键帧压缩234
5.2.1 基于B样条曲线的匹配点235
5.2.2 B样条曲线计算238
5.2.3 3阶优化计算245
5.3 逆向动力学249
5.3.1 基于Jacobian方法的数值方案251
5.3.2 基于非线性优化的数值方案252
5.3.3 基于循环坐标下降法的数值方案252
5.4 蒙皮机制255
5.5 顶点变形257
5.6 粒子系统258
第6章 空间排序259
6.1 二叉空间划分树259
6.1.1 构造BSP树260
6.1.2 BSP树的应用262
6.2 基于节点的排序268
6.3 入口269
6.4 用户自定义地图276
6.5 遮挡剔除276
第7章 细节级别278
7.1 精灵对象和广告板278
7.2 离散细节级别279
7.3 连续细节级别280
7.3.1 基于二次误差测度的简化方案280
7.3.2 重组顶点和索引值284
7.3.3 地形284
7.4 无限细节级别285
第8章 碰撞检测286
8.1 分离轴方案288
8.1.1 凸多边形和凸多面体极值289
8.1.2 静态对象296
8.1.3 基于恒定线速度的运动对象302
8.1.4 有向包围盒322
8.2 运动对象之间的碰撞计算327
8.2.1 伪距离328
8.2.2 运动对象之间的接触状态329
8.2.3 计算首次碰撞时刻331
8.2.4 一阶导数计算334
8.3 动态碰撞检测系统336
8.3.1 抽象基类336
8.3.2 特定对象类型组合的伪距离341
8.3.3 基于轴对齐包围盒的碰撞剔除344
8.4 对象拾取操作349
8.4.1 构造拾取光线350
8.4.2 获取场景图的支持351
8.4.3 维持相机高度355
8.4.4 躲避行为356
8.5 碰撞躲避路径356
8.5.1 环境、关卡和房间357
8.5.2 房间之间的运动行为360
8.5.3 关卡之间的运动行为361
8.5.4 室外环境中的运动361
8.5.5 结构图(蓝图)361
8.5.6 可视图362
8.5.7 构建轮廓边365
8.5.8 基本数据结构372
8.5.9 可视图的高效计算方案372
第9章 物理学375
9.1 粒子系统375
9.2 质体-弹簧系统377
9.2.1 曲线质体377
9.2.2 表面质体379
9.2.3 空间质体381
9.2.4 任意结构对象384
9.3 变形体386
9.4 刚体386
9.4.1 刚体类388
9.4.2 计算惯性张量391
第10章 标准对象392
10.1 线性对象392
10.2 平面对象394
10.3 盒体对象396
10.4 二次曲面396
10.4.1 球体396
10.4.2 椭球体396
10.4.3 圆柱体397
10.4.4 圆锥体398
10.5 球扫掠体399
10.5.1 胶囊体399
10.5.2 菱形体399
第11章 曲线400
11.1 定义400
11.2 基于弧长的参数重置操作401
11.3 Bezier曲线402
11.3.1 定义402
11.3.2 计算过程403
11.3.3 升阶计算403
11.3.4 降阶计算404
11.4 自然、钳式以及封闭式三次样条405
11.4.1 自然曲线406
11.4.2 钳式样条406
11.4.3 封闭样条407
11.5 B样条曲线407
11.5.1 节点向量类型408
11.5.2 计算过程408
11.5.3 局部控制413
11.5.4 封闭曲线413
11.6 NURBS曲线414
11.7 张力-连续性-偏移样条416
11.8 参数细分418
11.8.1 基于均匀采样的细分方案418
11.8.2 基于弧长的细分方案418
11.8.3 基于中点距离的细分方案419
11.8.4 基于三次曲线的快速细分方案420
11.9 曲线路径上对象的方向421
11.9.1 基于Frenet坐标系的方向422
11.9.2 基于固定Up向量的方向422
第12章 曲面423
12.1 简介423
12.2 Bezier矩形面片424
12.2.1 定义424
12.2.2 计算过程424
12.2.3 升阶计算425
12.2.4 降阶计算425
12.3 Bezier三角形面片426
12.3.1 定义426
12.3.2 计算过程428
12.3.3 升阶计算428
12.3.4 降阶计算428
12.4 B样条矩形面片430
12.5 NURBS矩形面片430
12.6 基于曲线的表面构造过程431
12.6.1 柱面431
12.6.2 广义柱面432
12.6.3 旋转曲面433
12.6.4 管状表面433
12.7 参数细分434
12.7.1 矩形面片细分434
12.7.2 三角形面片的细分操作443
第13章 包含测试449
13.1 球体449
13.1.1 球体中的点449
13.1.2 包含数据点的球体449
13.1.3 合并球体454
13.2 盒体455
13.2.1 盒体中的点455
13.2.2 包含点的盒体455
13.2.3 合并盒体461
13.3 胶囊体462
13.3.1 胶囊体中的点463
13.3.2 包含点的胶囊体463
13.4 菱形体465
13.4.1 菱形体中的点465
13.4.2 包含点的菱形体465
13.4.3 菱形体的合并操作466
13.5 圆柱体467
13.5.1 圆柱体中的点467
13.5.2 包含点的圆柱体467
13.5.3 移至最小面积中心处的最小二乘直线468
13.5.4 圆柱体合并操作468
13.6 椭球体469
13.6.1 椭球体中的点469
13.6.2 包含点的椭球体470
13.6.3 椭球体的合并操作470
第14章 距离计算方案471
14.1 点与线性对象之间的距离471
14.1.1 点与直线之间的距离471
14.1.2 点与射线之间的距离472
14.1.3 点与线段之间的距离472
14.2 线性对象至线性对象之间的距离473
14.2.1 直线与直线之间的距离473
14.2.2 直线与射线之间的距离474
14.2.3 直线与线段之间的距离475
14.2.4 射线与射线之间的距离475
14.2.5 射线与线段之间的距离476
14.2.6 线段与线段之间的距离476
14.3 点与三角形之间的距离477
14.4 线性对象与三角形之间的距离480
14.4.1 直线与三角形之间的距离480
14.4.2 射线与三角形之间的距离483
14.4.3 线段与三角形之间的距离483
14.5 点与矩形之间484
14.6 线性对象与矩形之间的距离485
14.6.1 直线与矩形之间的距离485
14.6.2 射线与矩形之间的距离487
14.6.3 线段与矩形之间的距离488
14.7 三角形(或矩形)与三角形(或矩形)之间的距离488
14.8 点和有向盒体之间的距离490
14.9 线性对象与有向盒体之间的距离491
14.9.1 直线与有向盒体之间的距离491
14.9.2 射线与有向盒体之间的距离493
14.9.3 线段与有向盒体之间的距离493
14.10 三角形与有向盒体之间的距离494
14.11 矩形和有向盒体之间的距离495
14.12 有向盒体与有向盒体之间的距离496
14.13 混合方案498
14.13.1 点与椭圆之间的距离498
14.13.2 点与椭球体之间的距离499
14.13.3 点与二次曲线或二次表面之间的距离499
14.13.4 点与3D圆之间的距离500
14.13.5 圆与3D圆之间的距离501
第15章 相交计算504
15.1 线性对象和凸对象504
15.2 线性对象和平面对象506
15.3 线性对象和有向盒体508
15.3.1 相交测试查询508
15.3.2 相交信息查询513
15.4 线性对象和球体517
15.4.1 直线和球体517
15.4.2 射线和球体519
15.4.3 线段和球体519
15.5 直线和球体扫掠体521
15.5.1 直线和胶囊体521
15.5.2 直线和菱形体524
15.6 直线和二次表面525
15.6.1 直线和椭球体526
15.6.2 直线和圆柱体526
15.6.3 直线和圆锥体526
15.7 基于平面的对象剔除操作527
15.7.1 有向盒体527
15.7.2 球体528
15.7.3 胶囊体528
15.7.4 菱形体528
15.7.5 椭球体529
15.7.6 圆柱体530
15.7.7 圆锥体531
15.7.8 凸多边形或凸多面体532
第16章 数值方案533
16.1 方程组533
16.1.1 线性方程组533
16.1.2 多项式方程组533
16.2 特征系统535
16.2.1 二次多项式的极值535
16.2.2 约束型二次多项式的极值535
16.3 最小二乘匹配方案536
16.3.1 点(x,f(x))的匹配方案537
16.3.2 基于正交回归的线性匹配方案537
16.3.3 平面点(x,y,f(x,y))的平面匹配方案538
16.3.4 基于正交回归的数据点的平面匹配方案539
16.3.5 圆与2D数据点之间的匹配方案539
16.3.6 球体与3D数据点之间的匹配方案540
16.3.7 二次曲线与2D数据点之间的匹配方案542
16.3.8 二次曲面与3D数据点之间的匹配方案542
16.4 最小化计算543
16.4.1 一维方案543
16.4.2 多维处理方案544
16.5 根值计算546
16.5.1 一维方案546
16.5.2 多维方案549
16.6 积分运算550
16.6.1 Romberg积分550
16.6.2 Gaussian求积法553
16.7 微分方程554
16.7.1 常微分方程554
16.7.2 偏微分方程556
16.8 快速函数计算559
16.8.1 平方根以及平方根倒数运算559
16.8.2 正弦、余弦和正切运算560
16.8.3 反正切运算561
第17章 旋转计算562
17.1 旋转矩阵562
17.1.1 轴/角-矩阵562
17.1.2 矩阵-轴/角564
17.1.3 插值计算565
17.2 四元数565
17.2.1 四元数的线性代数观点567
17.2.2 向量旋转569
17.2.3 旋转积569
17.2.4 四元数的古典观570
17.2.5 轴/角-四元数572
17.2.6 四元数-轴/角572
17.2.7 矩阵-四元数572
17.2.8 四元数-矩阵572
17.2.9 插值计算573
17.3 Euler角573
17.4 性能问题575
17.5 非均匀缩放576
17.5.1 Gram-Schmidt标准正交法577
17.5.2 特征分解578
17.5.3 极分解法578
17.5.4 奇异值分解法578
第18章 面向对象结构580
18.1 面向对象的软件设计580
18.1.1 软件质量580
18.1.2 模块化581
18.1.3 复用582
18.1.4 函数和数据583
18.1.5 面向对象584
18.2 风格、命名规则和命名空间584
18.3 运行期类型信息587
18.3.1 单继承系统587
18.3.2 多重继承系统590
18.3.3 宏592
18.4 模板592
18.5 共享对象和引用计数594
18.6 流机制599
18.6.1 流API600
18.6.2 Object类API602
18.7 名称和唯一标识符608
18.7.1 名称字符串608
18.7.2 唯一标识符609
18.8 初始化和终止操作610
18.8.1 潜在问题610
18.8.2 基于类的通用处理方案613
18.9 应用程序层617
18.9.1 处理命令行参数618
18.9.2 Application类621
18.9.3 ConsoleApplication类624
18.9.4 WindowApplication类626
18.9.5 WindowApplication3类632
18.9.6 引擎管理646
第19章 内存管理651
19.1 游戏机内存预算651
19.2 内存泄露检测和收集统计信息652
19.3 通用内存管理658
19.3.1 基于顺序适配的内存请求658
19.3.2 基于伙伴系统的分配方案665
19.3.3 基于分离存储方案的内存分配668
19.3.4 内存压缩668
第20章 基于着色器的特效670
20.1 顶点颜色670
20.2 光照和材质671
20.2.1 环境光673
20.2.2 有向光源673
20.2.3 点光源675
20.2.4 聚光灯676
20.3 纹理679
20.4 多重纹理680
20.5 凹凸贴图682
20.5.1 生成法线贴图682
20.5.2 生成切空间信息684
20.5.3 着色器程序685
20.6 光泽贴图688
20.7 球体贴图690
20.8 立方体贴图692
20.9 折射695
20.10 平面反射697
20.11 平面阴影700
20.12 投影纹理703
20.13 阴影贴图706
20.14 体积雾707
20.15 蒙皮机制708
20.16 虹彩效果710
20.17 水流效果712
附录A 在Wild Magic中生成着色器714
A.1 着色器程序714
A.2 创建几何数据719
A.3 着色器效果(不使用类数据)721
A.4 创建ShaderEffect的派生类723
A.5 着色器常量的动态更新724
参考文献725