GPU精粹系列书籍目录一览

来源:互联网 发布:passport视频软件 编辑:程序博客网 时间:2024/05/01 10:54

GPU精粹1

第1部分 自然效果

简介 2
第1章 用物理模型进行高效的水模拟 4
1.1 目标和范围 4
1.2 正弦近似值的加和 5
1.2.1 波的选择 5
1.2.2 法线和切线 6
1.2.3 几何波 8
1.2.4 纹理波 11
1.3 编辑 13
1.3.1 深度的使用 13
1.3.2 重载 14
1.3.3 边长的过滤 15
1.3.4 纹理坐标 15
1.4 运行时的处理 16
1.4.1 凹凸环境映射参数 16
1.4.2 顶点和像素的处理 18
1.5 小结 19
1.6 参考文献 19
第2章 水刻蚀的渲染 21
2.1 引言 21
2.2 刻蚀的计算 22
2.3 方法 24
2.4 使用OpenGL实现 25
2.5 使用高级着色语言实现 25
2.6 小结 30
2.7 参考文献 30
第3章 Dawn演示中的皮肤 31
3.1 引言 31
3.2 皮肤着色 32
3.3 场景的照明 32
3.3.1 高动态范围的环境 32
3.3.2 遮挡 34
3.4 皮肤如何对光进行响应 35
3.5 实现 36
3.5.1 顶点Shader 36
3.5.2 像素Shader 41
3.6 小结 43
3.7 参考文献 43
第4章 Dawn演示中的动画 44
4.1 简介 44
4.2 网格的动画 45
4.3 变形网格对象 45
4.3.1 高级语言中的变形网格对象 45
4.3.2 变形网格对象的实现 47
4.4 蒙皮 48
4.5 小结 50
4.6 参考文献 50
第5章 改良的Perlin噪声的实现 51
5.1 噪声函数 51
5.2 最初的实现 52
5.3 最初实现的缺点 52
5.4 对噪声函数的改进 54
5.5 如何在像素shader中产生好的假噪声 56
5.6 不考虑相邻顶点制作凹凸贴图 57
5.7 小结 58
5.8 参考文献 58
第6章 Vulcan演示中的火 59
6.1 创建逼真的火焰 59
6.2 动画精灵的实现 61
6.2.1 火焰和烟的动画 61
6.2.2 使火焰增加多样性 62
6.2.3 动画的存储 63
6.2.4 火焰和烟的混合 64
6.3 粒子运动 65
6.4 性能 65
6.4.1 层次合成 65
6.4.2 定制的精灵 67
6.5 渲染后的效果 67
6.5.1 辉光 68
6.5.2 热微光 68
6.5.3 颗粒 70
6.5.4 最终的程序 71
6.6 小结 72
第7章 无数波动草叶的渲染 73
7.1 引言 73
7.2 概述 73
7.3 草体的准备 74
7.3.1 草的纹理 74
7.3.2 草体 74
7.4 动画 76
7.4.1 一般思路 76
7.4.2 每丛草体的动画 77
7.4.3 每个顶点的动画 79
7.4.4 每个草体的动画 80
7.5 小结 82
7.6 参考文献 82
第8章 衍射的模拟 84
8.1 什么是衍射 84
8.1.1 波动光学 84
8.1.2 衍射的物理学 85
8.2 实现 86
8.3 结果 89
8.4 小结 90
8.5 参考文献 90

第2部分 光照和阴影
简介 92
第9章 有效的阴影体渲染 94
9.1 引言 94
9.2 程序结构 96
9.2.1 多遍渲染 96
9.2.2 顶点缓冲器结构 99
9.2.3 在无限远处工作 99
9.3 详细的讨论 101
9.3.1 数学 101
9.3.2 代码 103
9.3.3 markShadows方法 103
9.3.4 findBackfaces方法 104
9.3.5 亮罩和暗罩 105
9.3.6 侧面 106
9.4 调试 107
9.5 几何优化 108
9.5.1 方向光 108
9.5.2 点光源和聚光灯 108
9.5.3 剔除阴影体 109
9.5.4 除罩操作 109
9.6 填充率的优化 110
9.6.1 有限的体积 110
9.6.2 XY裁剪 111
9.6.3 Z-边界 111
9.7 将来的阴影 112
9.8 参考文献 113
第10章 电影级的光照 114
10.1 引言 114
10.2 直射光照明模型 115
10.2.1 选择 116
10.2.2 颜色 116
10.2.3 造型 116
10.2.4 阴影 117
10.2.5 纹理 118
10.2.6 结果 118
10.3 泛光Shader 119
10.4 性能分析 124
10.4.1 速度 124
10.4.2 开销 124
10.4.3 优化 124
10.5 小结 124
10.6 参考文献 125
第11章 阴影贴图反走样 126
11.1 引言 126
11.2 靠近的百分比过滤 126
11.3 平滑滤波的实现 127
11.4 较少地取样 128
11.5 工作原理 129
11.6 小结 131
11.7 参考文献 131
第12章 全方位的阴影映射 132
12.1 引言 132
12.1.1 模板阴影 133
12.1.2 阴影映射 133
12.2 阴影映射的算法 133
12.2.1 条件 133
12.2.2 算法 134
12.2.3 纹理格式 135
12.2.4 阴影贴图的尺寸 135
12.2.5 几何体的数值范围 135
12.3 实现 135
12.3.1 系统需求 135
12.3.2 资源创建 136
12.3.3 渲染阶段1:渲染到阴影贴图 136
12.3.4 渲染阶段2:基本渲染 137
12.3.5 光照计算 137
12.3.6 阴影的计算 137
12.3.7 技巧和窍门 138
12.3.8 最终的着色遍(Lighting×Shadow) 138
12.4 添加模糊的阴影 138
12.5 小结 139
12.6 参考文献 139
第13章 使用遮挡区间映射产生模糊的阴影 140
13.1 加油站 140
13.2 算法 141
13.3 创建映射 142
13.4 渲染 143
13.5 局限性 144
13.6 小结 145
13.7 参考文献 146
第14章 透视阴影贴图 147
14.1 引言 147
14.2 PSM算法的问题 148
14.2.1 虚拟摄像机 148
14.2.2 光源摄像机 152
14.2.3 偏置 157
14.3 获得更好阴影映射的技巧 160
14.3.1 过滤器 160
14.3.2 模糊 161
14.4 结果 164
14.5 参考文献 165
第15章 逐像素光照的可见性管理 166
15.1 GPU书中的可见性 166
15.2 批和逐像素光照 166
15.2.1 逐像素光照的例子 166
15.2.2 究竟需要多少批 167
15.3 作为集合的可见性 168
15.3.1 可见集合 168
15.3.2 光源集合 168
15.3.3 照明集合 168
15.3.4 阴影集合 168
15.4 各集合的生成 169
15.4.1 可见集合的生成 169
15.4.2 光源集合的生成 169
15.4.3 照明集合的生成 169
15.4.4 阴影集合的生成 170
15.5 可见性改善填充率 172
15.6 实际的应用 173
15.7 小结 173
15.8 参考文献 173

第3部分 材质
简介 176
第16章 次表面散射的实时近似 177
16.1 次表面散射的视觉效果 177
16.2 简单的散射近似 177
16.3 用深度映射模拟吸收 179
16.3.1 实现细节 182
16.3.2 更精密的散射模型 183
16.4 纹理空间的漫反散 183
16.5 小结 187
16.6 参考文献 187
第17章 环境遮挡 188
17.1 概述 188
17.2 预处理步骤 189
17.3 硬件加速计算遮挡 190
17.4 用环境遮挡贴图来渲染 191
17.5 小结 194
17.6 参考文献 195
第18章 空间的BRDFs 198
18.1 什么是SBRDF 198
18.2 表达式的详述 198
18.3 使用离散光的渲染 200
18.4 使用环境贴图的渲染 202
18.4.1 算法 202
18.4.2 shader代码 204
18.5 小结 207
18.6 参考文献 207
第19章 基于图像的光照 208
19.1 基于图像光照的局部化 208
19.2 顶点Shader 211
19.3 片元Shader 213
19.4 漫反射IBL 215
19.5 影子 215
19.6 使用局部立方体贴图作背景 216
19.7 小结 217
19.8 参考文献 217
第20章 纹理 219
20.1 纹理101 219
20.1.1 求单元 219
20.1.2 对图像采样 220
20.1.3 相邻单元中的图像 220
20.1.4 图像优先级 221
20.1.5 程序化图像 222
20.1.6 图像的随机选择 223
20.2 技术上的考虑 224
20.3 高级特性 225
20.3.1 缩放和转动 225
20.3.2 可控的变量密度 225
20.3.3 程序化的3D 226
20.3.4 随时间变化的纹理 227
20.3.5 Voronoi相关的细胞法 227
20.4 小结 229
20.5 参考文献 229

第4部分 图像处理
简介 232
第21章 实时辉光 234
21.1 技术概述 234
21.2 渲染辉光的步骤 237
21.2.1 辉光源的指定和渲染 237
21.2.2 模糊辉光源 238
21.2.3 分步卷积 238
21.2.4 GPU上的卷积 239
21.3 特定硬件的实现 240
21.3.1 Direct3D 9 240
21.3.2 Direct3D 8 242
21.3.3 Direct3D 7 242
21.4 模糊的其他用途 243
21.5 把效果加入一个游戏引擎 243
21.5.1 渲染场景 243
21.5.2 走样问题 244
21.5.3 DirectX 7的精度问题 244
21.5.4 残留图像效应 245
21.5.5 渐变效果 245
21.6 小结 246
21.7 参考文献 246
第22章 颜色控制 248
22.1 引言 248
22.2 基于通道的颜色校正 248
22.2.1 级别 248
22.2.2 曲线 250
22.3 多通道的彩色校正和变换 252
22.3.1 灰度变换 252
22.3.2 彩色空间的变换 253
22.4 参考文献 255
第23章 景深:技术综述 256
23.1 什么是景深 256
23.1.1 模糊圈的计算 257
23.1.2 主要技术 257
23.2 光线跟踪的景深 258
23.3 累积缓冲区的景深 258
23.4 分层的景深 259
23.5 向前映射的z缓冲区景深 260
23.6 反向映射的z缓冲区景深 261
23.7 小结 265
23.8 参考文献 266
第24章 高质量的过滤 267
24.1 质量与速度 267
24.2 对GPU求导的理解 277
24.3 解析的反走样和纹理化 278
24.4 小结 284
24.5 参考文献 284
第25章 用纹理贴图进行快速过滤宽度的计算 285
25.1 在shader中求导的需求 285
25.2 用纹理计算过滤宽度 287
25.3 讨论 288
25.4 参考文献 289
第26章 OpenEXR图像文件格式 291
26.1 什么是OpenEXR 291
26.1.1 高动态范围图像 291
26.1.2 “半精度”(Half)格式 293
26.1.3 可表示的数值范围 293
26.1.4 彩色分辨率 294
26.1.5 C 接口 294
26.2 OpenEXR文件结构 294
26.2.1 文件头 294
26.2.2 像素 294
26.3 OpenEXR数据压缩 295
26.4 OpenEXR的使用 295
26.4.1 OpenEXR图像的读和显示 295
26.4.2 一个OpenEXR图像的渲染和写入 296
26.5 线性像素值 300
26.6 创建和使用HDR图像 302
26.7 小结 303
26.8 参考文献 304
第27章 图像处理的框架 305
27.1 引言 305
27.2 框架设计 306
27.2.1 操作器和过滤器 306
27.2.2 图像数据 307
27.2.3 丢失的块 308
27.3 实现 310
27.3.1 Image类 311
27.3.2 ImageFilter类 314
27.3.3 过滤的实现 315
27.4 一个示例应用程序 318
27.5 性能和局限性 319
27.6 小结 320
27.7 参考文献 321

第5部分 性能及实践
简介 324
第28章 图形流水线性能 326
28.1 概述 326
28.1.1 流水线 326
28.1.2 方法 326
28.2 定位瓶颈 327
28.2.1 光栅操作 328
28.2.2 纹理带宽 328
28.2.3 片元着色 328
28.2.4 顶点处理 329
28.2.5 顶点和索引传输 329
28.3 优化 329
28.3.1 在CPU上优化 329
28.3.2 减少顶点传输的开销 330
28.3.3 顶点处理的优化 331
28.3.4 加速片元着色 331
28.3.5 减小纹理带宽 332
28.3.6 优化帧缓冲带宽 333
28.4 小结 334
28.5 参考文献 334
第29章 有效的遮挡剔除 335
29.1 什么是遮挡剔除 335
29.1.1 遮挡查询 335
29.1.2 早期z值拒绝 335
29.2 遮挡查询如何工作 336
29.3 初步使用遮挡查询 336
29.3.1 恰当地使用遮挡查询 337
29.3.2 遮挡物和被遮挡物的比较 337
29.4 更进一步的应用 337
29.4.1 将物体排序 339
29.4.2 一个防止误解的说明 339
29.5 关于包围盒 339
29.5.1 静态的物体 340
29.5.2 动画的物体 340
29.6 其他问题 341
29.6.1 CPU消耗太高 341
29.6.2 高分辨率的渲染 341
29.6.3 快速深度写入的性能 342
29.6.4 锥体剔除 342
29.7 一点小忠告 343
29.8 一个应用:透镜耀斑 343
29.8.1 渲染透镜耀斑的旧方法 344
29.8.2 渲染透镜耀斑的新方法 345
29.9 小结 345
29.10 参考文献 346
第30章 FX Composer的设计 347
30.1 工具的开发 347
30.2 设计初衷和使用对象 347
30.3 对象设计 348
30.4 文件格式 352
30.5 用户接口 353
30.6 Direct3D图形的实现 353
30.6.1 设备窗口 353
30.6.2 Direct3D效果 354
30.6.3 ID3DXEffectCompiler 354
30.6.4 ID3DXEffect 355
30.7 场景管理 355
30.8 小结 356
30.9 参考文献 356
第31章 FX Composer的使用 357
31.1 开始 357
31.1.1 材质面板 358
31.1.2 场景图形面板 359
31.1.3 编辑窗口 360
31.1.4 Shader Perf面板 361
31.1.5 属性面板 361
31.1.6 场景面板 363
31.1.7 纹理面板 364
31.1.8 任务面板 365
31.1.9 日志面板 365
31.2 项目示例 366
31.3 小结 367
第32章 Shader接口入门 368
32.1 shader接口的基础 369
32.2 一个灵活的光源描述 371
32.3 材质树 373
32.4 小结 376
32.5 参考文献 376
第33章 将产品的RenderMan shader转化为实时的shader 377
33.1 引言 377
33.2 光照 378
33.2.1 光源 378
33.2.2 光源shader 378
33.2.3 其他的光源参数 379
33.3 顶点程序与片元程序的比较 379
33.4 使用顶点和片元程序 380
33.5 片元程序的优化技术 381
33.5.1 把代码转移到应用层 381
33.5.2 把代码转移到顶点程序 381
33.5.3 通过纹理查询优化 382
33.5.4 向量化的优化 383
33.5.5 最终的优化 383
33.6 小结 384
33.7 参考文献 386
第34章 将硬件着色整合进Cinema 4D 387
34.1 引言 387
34.2 把Cinema 4D连接到CgFX上去 389
34.3 shader和参数管理 390
34.4 模拟离线渲染 391
34.5 结果和性能 393
34.6 收获和教训 394
34.7 参考文献 395
第35章 在实时应用程序中使用高质软件渲染效果 396
35.1 引言 396
35.2 用于硬件渲染的内容流水线 397
35.3 硬件渲染的组件 398
35.3.1 几何数据 398
35.3.2 属性映射 398
35.4 组件的产生 400
35.4.1 创建几何图形 400
35.4.2 对纹理和顶点的渲染 400
35.5 试验情况和结果 403
35.6 小结 408
35.7 参考文献 408
第36章 将Shader整合到应用程序中去 409
36.1 引言 409
36.2 关于shader 409
36.3 一个effect文件的剖析 411
36.3.1 变量 412
36.3.2 结构体 412
36.3.3 pass 412
36.3.4 technique 412
36.3.5 评注 412
36.4 shader数据的类型 413
36.4.1 场景信息 413
36.4.2 材质 414
36.4.3 渲染的场景 414
36.4.4 顶点数据 414
36.5 与shader的通信 414
36.5.1 场景信息 414
36.5.2 材质的参数 415
36.5.3 顶点格式 416
36.5.4 场景 416
36.5.5 就场景对technique和pass的比较 417
36.6 effect文件格式的扩展 417
36.6.1 对预处理程序的支持 417
36.6.2 对shader变化的支持 418
36.6.3 shader继承的添加 418
36.7 小结 419
36.8 参考文献 419

第6部分 超越三角形
简介 422
第37章 用于GPU计算的工具箱 424
37.1 用GPU进行计算 424
37.1.1 编程模型 425
37.1.2 并行编程 426
37.1.3 高级的GPU程序 426
37.2 约减 426
37.2.1 并行的约减 427
37.2.2 有关约减的注意事项 428
37.3 排序和搜索 428
37.3.1 Bitonic归并排序 428
37.3.2 二分搜索 430
37.4 挑战 432
37.4.1 有限的输出 432
37.4.2 缓慢的回读 433
37.4.3 GPU和CPU的比较 433
37.5 小结 433
37.6 参考文献 433
第38章 在GPU上的快速流体动力学模拟 435
38.1 引言 435
38.1.1 目的 436
38.1.2 假设 436
38.1.3 方法 436
38.2 数学背景 436
38.2.1 不可压缩流体的Navier-Stokes方程式 437
38.2.2 Navier-Stokes方程式的各项 438
38.2.3 矢量微积分的简要复习 438
38.2.4 解Navier-Stokes方程式 439
38.3 实现 443
38.3.1 CPU-GPU的类比 444
38.3.2 片运算 445
38.3.3 片元程序的实现 445
38.4 应用 450
38.4.1 模拟液体和气体 450
38.4.2 浮力和对流 450
38.5 扩展 451
38.5.1 旋涡状态的限制 452
38.5.2 三维 452
38.5.3 交错排列的网格 452
38.5.4 任意边界 452
38.5.5 流体的自由表面 453
38.6 小结 453
38.7 参考文献 453
第39章 体渲染技术 454
39.1 引言 454
39.2 体渲染 455
39.3 基于纹理的体渲染 456
39.4 实现细节 459
39.4.1 数据的表达和处理 459
39.4.2 代理几何体 460
39.4.3 渲染 461
39.5 高级技术 463
39.5.1 体光照 463
39.5.2 程序化渲染 467
39.6 对性能的考虑 467
39.7 小结 469
39.8 参考文献 469
第40章 用于三维超声波可视化的实时着色 471
40.1 背景 471
40.2 引言 473
40.2.1 笛卡尔网格数据的体渲染 473
40.2.2 体渲染锥体网格中的数据 475
40.3 结果 480
40.4 小结 480
40.5 参考文献 480
第41章 实时立体图 481
41.1 什么是立体图 481
41.1.1 立体摄影 481
41.1.2 随机点立体图 481
41.1.3 单个图像的立体图 483
41.2 单个图像立体图的创建 484
41.2.1 参数 484
41.2.2 渲染 485
41.2.3 动画的单个图像立体图的创建 486
41.2.4 片元程序 488
41.3 示例应用程序 489
41.4 参考文献 490
第42章 变形 491
42.1 什么是变形 491
42.2 在GPU上的变形 492
42.2.1 变形的公式 492
42.2.2 写顶点程序 492
42.2.3 法线的变形 493
42.3 局限性 494
42.4 性能 495
42.5 例子:波浪变形 495

42.6 小结 497


GPU精粹2

目录
第Ⅰ部分几何复杂性
第1章实现照片级真实感的虚拟
植物 5
1.1场景管理 6
1.1.1种植栅格 6
1.1.2种植策略 6
1.1.3实时优化 7
1.2草层 7
1.2.1通过溶解模拟Alpha透明 9
1.2.2变化 10
1.2.3光照 11
1.2.4风 12
1.3地面杂物层 12
1.4树和灌木层 13
1.5阴影 14
1.6后处理 15
1.6.1天空圆顶辉散 16
1.6.2全场景辉光 16
1.7本章小结 17
参考文献 18
第2章使用基于GPU几何体剪切图
的地形渲染 19
2.1几何体剪切图简介 19
2.2GPU实现概览 21
2.2.1数据结构 22
2.2.2剪切图大小 22
2.3渲染 23
2.3.1活动层 23
2.3.2顶点和索引缓冲区 23
2.3.3视锥剪切 24
2.3.4DrawPrimitive调用 25
2.3.5顶点着色器 25
2.3.6像素着色器 27
2.4更新 28
2.4.1升采样 28
2.4.2残差 29
2.4.3法线图 30
2.5结果和讨论 30
2.6本章小结和改进 31
2.6.1顶点纹理 31
2.6.2去掉法线图 31
2.6.3不需要存储空间的地形
合成 31
参考文献 31
第3章几何体实例化的内幕 33
3.1为什么要对几何体实例化? 34
3.2定义 34
3.2.1几何体包 34
3.2.2实例属性 35
3.2.3几何体实例 35
3.2.4渲染和纹理场景 35
3.2.5几何体批次 36
3.3实现 37
3.3.1静态批次 38
3.3.2动态批次 39
3.3.3顶点常量实例化 40
3.3.4几何体实例API批次 43
3.4本章小结 46
参考文献 48
第4章分段缓冲 49
4.1问题空间 49
4.2解决方案 50
4.3方法 50
4.3.1分段缓冲的第一步 50
4.3.2分段缓冲的第二步 50
4.3.3分段缓冲的第三步 51
4.4改进分段缓冲技术 51
4.5本章小结 51
参考文献 51
第5章用多流来优化资源管理 53
5.1概览 53
5.2实现 55
5.2.1DirectX9.0中的多流 55
5.2.2资源管理 57
5.2.3处理顶点 59
5.3本章小结 63
?〔慰嘉南?63
第6章让硬件遮挡查询发挥作用 65
6.1引言 65
6.2受益于遮挡查询的场景 66
6.3遮挡裁减 66
6.4层的停等方法 67
6.4.1为什么使用层 67
6.4.2层结构 67
6.4.3层的算法 68
6.4.4问题1:停滞 68
6.4.5问题2:查询的额外开销 68
6.5一致性层裁减 69
6.5.1想法1:猜测 69
6.5.2想法2:提升,提升 70
6.5.3算法 70
6.5.4实现细节 71
6.5.5停滞比较少的原因 73
6.5.6查询较少的原因 73
6.5.7如何遍历层 73
6.6优化 74
6.6.1用真正的几何体查询 74
6.6.2只有Z的渲染遍 74
6.6.3近似的可见性 74
6.6.4保守的可见性测试 74
6.7本章小结 75
参考文献 76
第7章带有位移映射的细分表面自
适应镶嵌 77
7.1细分表面 77
7.1.1一些定义 78
7.1.2Catmull-Clark细分 78
7.1.3用细分来镶嵌 79
7.1.4面片化表面 80
7.1.5GPU镶嵌算法 80
7.1.6致密镶嵌 84
7.2位移映射 84
7.2.1改变平滑度测试 85
7.2.2用法线映射着色 85
7.3本章小结 86
参考文献 86
第8章?使用距离函数的逐像素位移
映射 87
8.1简介 87
8.2准备工作 89
8.3距离映射算法 89
8.4计算距离图 92
8.5着色器 92
8.5.1顶点着色器 92
8.5.2片段着色器 92
8.5.3关于过滤的注意事项 94
8.6结果 94
8.7本章小结 95
参考文献 96
第Ⅱ部分着色、光照和阴影
第9章S.T.A.L.K.E.R.中的延期
着色 101
9.1引言 101
9.2几种观点 102
9.3优化 103
9.3.1优化的对象 103
9.3.2光照优化 104
9.3.3G缓冲区建立的优化 106
9.3.4阴影优化 108
9.4改善质量 109
9.4.1“虚拟位置”的威力 109
9.4.2环境遮挡 110
9.4.3材质和表面光照的交互 111
9.5反走样 111
9.5.1高效的调和映射 113
9.5.2处理透明 114
9.6尝试过但没有包含入最终
代码的内容 114
9.6.1高程图 114
9.6.2实时的全局照明 115
9.7本章小结 115
参考文献 116
第10章动态辐照度环境映射实时
计算 117
10.1辐照度(irradiance)环境
映射 117
10.2球面调和卷积 119
10.3映射到GPU上 120
10.3.1空域到频域 121
10.3.2卷积和恢复 122
10.4以后的工作 123
10.5本章小结 123
参考文献 123
第11章近似的双向纹理函数 125
11.1引言 125
11.2采集 126
11.2.1建立和采集 126
11.2.2汇集着色图 127
11.3渲染 128
11.3.1细节算法 128
11.3.2实时渲染 129
11.4结果 130
11.5本章小结 132
参考文献 132
第12章基于贴面的纹理映射 133
12.1方法简介 134
12.2纹理贴面的构造 135
12.3纹理贴面打包 135
12.4纹理贴面映射 137
12.5mipmap问题 138
12.6本章小结 140
参考文献 140
第13章在GPU上实现mental
images的Phenomena
渲染器 141
13.1引言 141
13.2着色器和Phenomena 142
13.3用Cg实现Phenomena 143
13.3.1Cg顶点程序和可变
参数 144
13.3.2片段程序着色器的main()
入口点 145
13.3.3通用着色器接口 145
13.3.4一个简单的着色器
例子 146
13.3.5全局的状态变量 148
13.3.6光着色器 149
13.3.7纹理着色器 151
13.3.8凹凸映射 152
13.3.9环境着色器和体着
色器 153
13.3.10返回结构体的着色器 154
13.3.11渲染毛发 154
13.3.12组合所有东西 155
13.4本章小结 155
参考文献 156
第14章动态环境遮挡和间接光照 157
14.1表面元素 158
14.2环境遮挡 158
14.2.1多遍阴影算法 160
14.2.2改善性能 160
14.3间接光照和面光源 162
14.4本章小结 164
参考文献 164
第15章蓝图渲染和草图绘制 165
15.1基本原理 166
15.1.1中间渲染结果 166
15.1.2边增强 166
15.1.3深度子图形渲染 167
15.2蓝图渲染 167
15.2.1深度剥离 167
15.2.2析取可见边和不可
见边 169
15.2.3合成蓝图 170
15.2.4深度屏蔽 171
15.2.5使用蓝图渲染显示
建筑 171
15.3草图渲染 171
15.3.1边和颜色面片 172
15.3.2应用不确定性 172
15.3.3调整深度 173
15.3.4草图渲染的变体 173
15.3.5控制不确定性 174
15.3.6减少雨景效果 175
15.4本章小结 176
参考文献 176
第16章精确的大气散射 179
16.1引言 179
16.2解散射方程 180
16.2.1Rayleigh散射与Mie
散射 180
16.2.2相位函数 181
16.2.3外向散射方程 181
16.2.4内向散射方程 182
16.2.5表面散射方程 182
16.3实时渲染 182
16.4挤入着色器中 184
16.4.1去除一个维度 184
16.4.2去除其他维度 184
16.5实现散射的着色器 185
16.5.1顶点着色器 185
16.5.2片段着色器 187
16.6增加高动态范围渲染 188
16.7本章小结 188
参考文献 189
第17章利用像素着色器分支的
高效模糊边缘阴影 191
17.1现有的阴影生成技术 191
17.2用单张阴影图产生模糊
阴影 192
17.2.1模糊尖锐边缘阴影 192
17.2.2提高效率 195
17.2.3实现细节 196
17.3本章小结 199
参考文献 200
第18章将顶点纹理位移用于水的
真实感渲染 201
18.1水的模型 202
18.2实现 202
18.2.1水的表面模型 202
18.2.2实现细节 203
18.2.3对高度图采样 203
18.2.4质量的提高与优化 204
18.2.5渲染局部的扰动 208
18.3本章小结 209
参考文献 209
第19章通用的折射模拟 211
19.1基本方法 212
19.2折射掩码 213
19.3示例 215
19.3.1水的模拟 215
19.3.2玻璃的模拟 217
19.4本章小结 219
?〔慰嘉南?219
第Ⅲ部分高质量渲染
第20章快速三阶纹理过滤 225
20.1高阶过滤 225
20.2快速递归三次卷积 226
20.3mipmapping 230
20.4导数重建 232
20.5本章小结 235
参考文献 236
第21章高质量反走样的光栅化 237
21.1概述 237
21.2降采样 239
21.2.1与现有软硬件的对比 239
21.2.2用GPU进行降采样 240
21.3延伸 240
21.4过滤器的细节 241
21.5两遍分离式的过滤器 242
21.6分块和累加 243
21.7代码 243
21.7.1渲染循环 244
21.7.2降采样类 245
21.7.3实现细节 246
21.8本章小结 246
参考文献 247
第22章快速的预过滤线条 249
22.1为什么尖锐的直线看起来很
糟糕 249
22.2限制信号的带宽 250
22.3预处理 252
22.4运行时 253
22.4.1线段的建立(CPU) 253
22.4.2表查找(GPU) 254
22.5实现的问题 256
22.5.1绘制宽线 256
22.5.2组合多条线段 256
22.6示例 256
22.7本章小结 258
参考文献 258
第23章NaluDemo的头发动画和渲染 261
23.1头发的几何体 262
23.1.1布局和增长 262
23.1.2控制头发 263
23.1.3数据流 263
23.1.4镶嵌 263
23.1.5插值 264
23.2动力学和碰撞 265
23.2.1约束条件 265
23.2.2碰撞 266
23.2.3鳍 266
23.3头发的着色 267
23.3.1用于头发的实时反射
模型 268
23.3.2头发中实时的体化阴影 271
23.4本章小结和未来的工作 274
参考文献 274
第24章使用查找表加速颜色变换 275
24.1查找表的基础知识 275
24.1.1一维查找表 275
24.1.2三维查找表 276
24.1.3插值 278
24.2实现 278
24.2.1把查找表映射到GPU
的策略 278
24.2.2Cg着色器 278
24.2.3系统集成 280
24.2.4把三维查找表扩展到用
于高动态范围图像 281
24.3本章小结 282
参考文献 282
第25章AppleMotion中的GPU图像处理 285
25.1设计 285
25.1.1喜爱的和厌恶的 285
25.1.2选择语言 287
25.1.3CPU向后支持 287
25.2实现 288
25.2.1GPU资源的限制 288
25.2.2被零除 289
25.2.3丢失的顶点分量 289
25.2.4双线过滤 290
25.2.5高精度存储 294
25.3调试 294
25.4本章小结 295
参考文献 296
第26章实现改进的Perlin噪声 297
26.1随机但平滑 297
26.2存储与计算 297
26.3实现细节 298
26.4本章小结 302
参考文献 302
第27章高级的高质量过滤 303
27.1在GPU上实现过滤 303
27.1.1访问图像样本 303
27.1.2卷积过滤 304
27.2数字图像的重采样 307
27.2.1背景知识 307
27.2.2反走样问题 307
27.2.3图像重建 310
27.3冲击过滤:锐化图像的方法 312
27.4过滤器的实现技巧 314
27.5高级应用 314
27.5.1时间变形 314
27.5.2运动模糊的消除 314
27.5.3自适应的纹理过滤 315
27.6本章小结 315
参考文献 315
第28章Mipmap级的测量 317
28.1哪个mipmap层是可
见的? 318
28.2GPU抢险队 318
28.2.1像素点计数 318
28.2.2引擎中的实际考虑 321
28.2.3扩展 322
28.3实验结果 324
28.4本章小结 325
参考文献 326
第Ⅳ部分GPU的通用计算:初级读本
第29章流式体系结构和技术趋势 331
29.1技术趋势 331
29.1.1核心技术趋势 331
29.1.2后果 332
29.2高性能计算的关键 334
29.2.1高效计算的方法 334
29.2.2高效通信的方法 335
29.2.3与CPU对比 335
29.3流式计算 336
29.3.1流式编程模型 336
29.3.2构建一个流式处理器 337
29.4未来和挑战 338
29.4.1技术趋势 338
29.4.2功耗管理 338
29.4.3支持更高的可编程性和
功能性 339
29.4.4来自CPU的GPU功能性
(或反之亦然) 339
参考文献 339
第30章GeForce6系列GPU的体系结构 341
30.1GPU如何适合于整体计算
系统 342
30.2整体系统体系结构 342
30.2.1图形操作的功能结构图 343
30.2.2非图形操作的功能结
构图 346
30.3GPU特性 347
30.3.1固定函数特性 348
30.3.2着色器Model3.0编程
模型 349
30.3.3支持的数据存储格式 353
30.4性能 354
30.5达到最佳性能 354
30.5.1积极地使用z裁减 355
30.5.2加载数据时利用纹理
数学 355
30.5.3使用片段程序的分支 355
30.5.4尽可能使用fp16作中
间值 355
30.6本章小结 356
第31章把计算概念映射到GPU 357
31.1数据并行的重要性 357
31.1.1哪种类型的计算可以很
好地映射到GPU 357
31.1.2示例:在栅格上模拟 358
31.1.3流通信:聚集与散布 359
31.2GPU计算资源清单 359
31.3CPU-GPU类比 362
31.3.1流:GPU纹理=CPU
数组 362
31.3.2核:GPU片段程序=CPU
“内循环” 362
31.3.3渲染到纹理=反馈 362
31.3.4几何体光栅化=计算的
调用 363
31.3.5纹理坐标=计算的域 363
31.3.6顶点坐标=计算的
范围 363
31.3.7缩减 363
31.4从类比到实现 364
31.5一个简单的例子 366
31.6本章小结 368
参考文献 368
第32章尝试GPU计算 369
32.1选择快速算法 369
32.1.1局部性 369
32.1.2允许计算的准则 370
32.1.3考虑下载和读回 371
32.2了解浮点 371
32.3实现散列 373
32.3.1转换成聚集 373
32.3.2地址排序 374
32.3.3渲染点 375
32.4本章小结 375
参考文献 376
第33章在GPU上实现高效的并行数据结构 377
33.1流式编程 377
33.2GPU存储器模型 379
33.2.1存储器体系结构 379
33.2.2GPU流类型 380
33.2.3GPU核的存储器访问 381
33.3基于GPU的数据结构 382
33.3.1多维数组 382
33.3.2结构体 387
33.3.3稀疏数据结构 387
33.4性能考虑 391
33.4.1依赖的纹理读取 391
33.4.2计算频度和程序特化 391
33.4.3PbufferSurvivalGuide 392
33.5本章小结 393
参考文献 393
第34章GPU流程控制习惯用法 395
34.1流程控制的挑战 395
34.2基本的流程控制策略 396
34.2.1判定 396
34.2.2把分支向着流水线上端
移动 396
34.2.3z裁减 397
34.2.4分支指令 399
34.2.5选择一种分支机制 399
34.3使用遮挡查询的数据依赖
循环 400
34.4本章小结 400
第35章GPU程序优化 401
35.1数据并行计算 401
35.1.1指令级并行性 401
35.1.2数据级并行性 403
35.2计算频率 404
35.2.1循环内不变量的预
计算 405
35.2.2用查找表进行预计算 406
35.2.3避免内循环分支 407
35.2.4swizzle操作 407
35.3评价和负载平衡 408
35.4本章小结 409
参考文献 410
第36章用于GPGPU应用程序的流式缩减操作 411
36.1通过紧缩来过滤 411
36.1.1累加和扫描 412
36.1.2通过搜索/聚集来散布 413
36.1.3过滤性能 415
36.2动机:碰撞检测 416
36.3用于细分表面的过滤 419
36.4本章小结 421
参考文献 421
第Ⅴ部分面向图像的计算
第37章GPU上的八叉树纹理 425
37.1一个GPU加速的层次结构:
N3树 426
37.1.1定义 426
37.1.2实现 427
37.2应用1:在网格表面上色 431
37.2.1建立八叉树 431
37.2.2上色 432
37.2.3渲染 432
37.2.4把八叉树纹理转换成标准
2D纹理 434
37.3应用2:表面模拟 436
37.4本章小结 437
参考文献 438
第38章使用光栅化的高质量全局照明渲染 439
38.1通过光栅化的全局照明 440
38.2最终聚集简介 441
38.2.1两遍的方法 441
38.2.2最终聚集 441
38.2.3两遍方法的问题 442
38.3通过光栅化的最终聚集 443
38.3.1最终聚集光线的聚类 443
38.3.2光线投射作为多次平行
投影 445
38.4实现细节 446
38.4.1初始化 446
38.4.2?疃劝??446
38.4.3采样 447
38.4.4性能 447
38.5GPU上的全局照明渲染器 448
38.5.1第一遍 448
38.5.2生成可见点数据 448
38.5.3第二遍 448
38.5.4其他解决方案 449
38.6本章小结 451
参考文献 451
第39章使用逐步求精辐射度方法的
全局照明 453
39.1辐射度的基础 454
逐步求精 454
39.2GPU实现 455
39.2.1使用半球投影的可
见性 456
39.2.2构成因子的计算 458
39.2.3选择下一个发射者 459
39.3渐进细分 459
39.3.1纹理四叉树 459
39.3.2四叉数细分 460
39.4性能 460
39.5本章小结 460
参考文献 461
第40章GPU上的计算机视觉 463
40.1引言 463
40.2实现框架 463
40.3应用示例 464
40.3.1把一系列片段程序用于
计算机视觉 464
40.3.2求和操作 467
40.3.3创建全景照片的方
程组 469
40.3.4特征向量的计算 471
40.4并行计算机视觉处理 473
40.5本章小结 474
参考文献 474
第41章延迟过滤:困难数据格式的
??渲染 477
41.1引言 477
41.2为什么要延迟 478
41.3延迟过滤算法 479
41.4为什么它可以工作 481
41.5本章小结:何时延迟 481
参考文献 482
第42章保守光栅化 485
42.1问题定义 486
42.2两种保守算法 487
42.2.1剪切空间 487
42.2.2第一种算法 488
42.2.3第二种算法 489
42.3鲁棒性问题 492
42.4保守深度 492
42.5结果和本章小结 493
参考文献 494
第Ⅵ部分模拟与数值算法
第43章蛋白质结构预测的GPU
计算 497
43.1介绍 497
43.2Floyd-Warshall算法以及
绑定距离的平滑 498
43.3GPU实现 499
43.3.1动态更新 499
43.3.2数据纹理的索引 499
43.3.3三角形划分 500
43.3.4向量化 500
43.4试验结果 501
43.5本章小结和工作展望 502
参考文献 502
第44章用于解线性方程组的GPU框架 505
44.1概述 505
44.2表示 506
44.2.1“单浮点”的表示 506
44.2.2向量 506
44.2.3矩阵 507
44.3运算 509
44.3.1向量运算 509
44.3.2向量缩减 509
44.3.3矩阵与向量的积 510
44.3.4把所有的组合起来 511
44.3.5共轭梯度求解器 511
44.4一个偏微分方程的例子 512
44.5本章小结 515
参考文献 516
第45章GPU上的期权定价 517
45.1期权概述 517
45.2Black-Scholes模型 518
45.3Lattice模型 521
45.3.1二项模型 521
45.3.2欧式期权定价 522
45.4本章小结 525
参考文献 526
第46章改进的GPU排序 527
46.1排序算法 527
46.2一种简单的方法 528
46.3快速排序 529
46.3.1实现奇偶合并排序 529
46.4使用所有的GPU资源 531
46.5本章小结 535
参考文献 536
第47章复杂边界的流体模拟 537
47.1简介 537
47.2LatticeBoltzmann方法 538
47.3基于GPU的LBM 539
47.3.1算法介绍 539
47.3.2数据封装 540
47.3.3迁移 541
47.4基于GPU的边界处理 541
47.4.1基于GPU的体素化
方法 542
47.4.2周期性边界 543
47.4.3流出边界 544
47.4.4障碍物边界 544
47.5可视化 545
47.6实验结果 546
47.7本章小结 547
参考文献 548
第48章基于FFT的医学图像重建 551
48.1背景 551
48.2傅里?侗浠?552
48.2FFT算法 553
48.4在GPU上的实现 553
48.4.1方法1:主要使用片段
处理器 555
48.4.2方法2:使用顶点处理器、
光栅器和片段处理器 556
48.4.3负载平衡 558
48.4.4基准测试结果 558
48.5医学成像中的FFT 559
48.5.1磁共振成像 559
48.5.2MRI结果 560
48.5.3超声波成像 562
48.6本章小结 564
参考文献 565


GPU精粹3

第Ⅰ部分  几何体 2
第1章  使用GPU生成复杂的
程序化地形 7
1.1 介绍 7
1.2 Marching Cubes算法和
密度函数 7
1.2.1 在单元内生成多边形 8
1.2.2 查找表 9
1.3 地形生成系统概述 10
1.3.1 在地形块内部
生成多边形 10
1.3.2 生成密度值 11
1.3.3 写一个有趣的
密度函数 11
1.3.4 定制地形 14
1.4 在地形块中生成多边形 16
1.4.1 边缘数据 17
1.4.2 生成地形块:方法1 19
1.4.3 生成地形块:方法2 19
1.4.4 生成地形块:方法3 21
1.5 纹理和光影 23
1.6 对实际应用的考虑 27
1.6.1 细节层次 27
1.6.2 外部对象的碰撞
和光照问题 28
1.7 结论 29
1.8  参考资料 29
第2章  群体动画渲染 31
2.1 目的 32
2.2 实例化的简单回顾 32
2.3 技术细节 33
2.3.1 基于常量的实例化 34
2.3.2 使用动画纹理的调色板蒙皮 35
2.3.3 几何变化 38
2.3.4 LOD系统 39
2.4 其他考虑因素 39
2.4.1 颜色变化 39
2.4.2 性能 39
2.4.3 整合 40
2.5 结论 40
2.6 参考资料 40
第3章  DirectX 10混合形状:
打破限制 41
3.1 介绍 41
3.2 Dawn例子的实现 43
3.2.1 DirectX 10的特性 43
3.2.2 定义网格 43
3.2.3 流输出的方法 44
3.2.4 缓冲区-模板方法 47
3.3 运行例子 51
3.4 性能 51
3.5 参考资料 52
第4章  下一代SpeedTree渲染 53
4.1 介绍 53
4.2 轮廓裁减 53
4.2.1 轮廓鳍挤压 54
4.2.2 高度追踪 56
4.2.3 轮廓细节层次 58
4.3 阴影 59
4.3.1 树叶自遮挡 59
4.3.2  级联阴影贴图 61
4.4 树叶光照 62
4.4.1 两边光照 62
4.4.2 镜面光照 64
4.5 高动态范围和反锯齿 64
4.6 半透明覆盖 65
4.6.1 将半透明覆盖应用于
SpeedTree 65
4.6.2 细节层次的交叉衰减 65
4.6.3 轮廓边反锯齿 66
4.7 结论 68
4.8 参考资料 69
第5章  普遍自适应的网格优化 71
5.1 介绍 71
5.2 总览 72
5.3 自适应优化模式 73
实现方法 74
5.4 渲染工作流 74
5.4.1 深度标签计算 74
5.4.2 CPU阶段的渲染循环 75
5.4.3 GPU阶段的优化处理 76
5.5 结果 76
5.6 结论和改进 79
5.7 参考资料 79
第6章  GPU生成的树的
过程式风动画 81
6.1 介绍 81
6.2 GPU上的过程式动画 81
6.3 现象学方法 82
6.3.1 风场 82
6.3.2 树的概念结构 82
6.3.3 模拟的两种分类 83
6.4 模拟步骤 86
HLSL中的四元数库 89
6.5 渲染树 89
DirectX 10 89
6.6 分析和比较 90
6.6.1 优势 91
6.6.2 劣势 91
6.6.3 性能评估 91
6.7 结论 92
6.8 参考资料 92
第7章  GPU上基于点的
变形球可视化 93
7.1 变形球、光滑粒子流体力学
和表面粒子 93
7.1.1 各种方法的对比 94
7.1.2 在GPU上基于点的
表面可视化 95
7.2 限制粒子 96
7.2.1 定义显式表面 96
7.2.2  速度限制等式 97
7.2.3  在GPU中计算密度场 99
7.2.4  选择散函数 99
7.2.5  创建并查询散列表 100
7.3  局部粒子斥力 102
7.3.1  斥力等式 102
7.3.2  GPU端最近的邻居 104
7.4  全局粒子传播 106
7.5  性能 109
7.6  渲染 110
7.7  结论 111
7.8  参考文献 111
第Ⅱ部分  光照和阴影 114
第8章  区域求和的差值阴影贴图 119
8.1  介绍 119
8.2  相关工作 120
8.3  percentage-closer过滤 120
percentage-closer过滤的问题 121
8.4  差值阴影贴图 122
8.4.1  过滤差值阴影贴图 123
8.4.2  偏离 124
8.4.3  光渗色 126
8.4.4  数值稳定性 128
8.4.5  实现注释 129
8.4.6  差值阴影贴图和软阴影 130
8.5  区域求和差值阴影贴图 131
8.5.1  生成区域求和表 132
8.5.2  数字固定性重访问 132
8.5.3  结果 133
8.6  Percentage-Closer软阴影 135
8.6.1  遮挡体查找 135
8.6.2  渐变区域尺寸估计 135
8.6.3  阴影过滤 136
8.6.4  结果 136
8.7  结论 136
8.8  参考资料 137
第9章  使用全局照明实现互动
的电影级重光照 139
9.1  介绍 139
9.2  算法总览 140
9.3  聚集样本 141
9.4  一次反射的间接照明 143
9.5  用于压缩的小波 144
9.6  增加多次反射 146
9.7  对稀疏矩阵数据进行压缩 147
9.8  基于GPU的重光照引擎 148
9.8.1  直接照明 149
9.8.2  小波变换 149
9.8.3  稀疏矩阵乘法 151
9.9  结果 152
9.10  结论 153
9.11  参考资料 153
第10章  在可编程GPU中实现
并行分割的阴影贴图 155
10.1  介绍 155
10.2  算法 156
10.2.1  步骤1:分割视锥体 157
10.2.2  稀疏矩阵乘法
变换矩阵 160
10.2.2  步骤2:计算光的
变换矩阵 160
10.2.3  步骤3和4:产生PSSM
和综合阴影 163
10.3  基于硬件的实现方法 164
10.3.1  多步方法 164
10.3.2  DirectX 9级别的加速 166
10.3.3  DirectX 10级别的加速 168
10.4  进一步的优化 177
10.5  结果 177
10.6  结论 180
10.7  参考资料 180
第11章  使用层次化的遮挡剔除
和几何体着色器得到
高效鲁棒的阴影体 183
11.1  介绍 183
11.2  阴影体综述 183
11.2.1  Z-Pass和Z-Fail 184
11.2.2  阴影体生成 185
11.2.3  性能和优化方法 186
11.3  实现方法 186
11.3.1  针对低质量网络的
鲁棒阴影 186
11.3.2  使用几何体着色器
动态生成阴影体 188
11.3.3  使用层次化遮挡
裁剪提高性能 192
11.4  结论 194
11.5  参考资料 195
第12章  高质量的环境遮挡 197
12.1  回顾 197
12.2  问题 198
12.2.1  圆盘形状的失真 199
12.2.2  高频的尖点失真 199
12.3  一个鲁棒的解决方法 200
12.3.1  对不连续性进行
光滑处理 200
12.3.2  移除尖点并加入细节 201
12.4  结果 204
12.5  性能 205
12.6  一些注意事项 206
12.6.1  强制收敛 206
12.6.2  可调整的参数 207
12.7  后续工作 209
12.8  参考资料 210
第13章  作为后置处理的体积
光照散射 211
13.1  介绍 211
13.2  云隙光 212
13.3  体积光照散射 212
13.4  后置处理像素着色器 214
13.5  屏幕空间遮挡方法 215
13.5.1  遮挡pre-pass方法 215
13.5.2  遮挡模板方法 216
13.5.3  遮挡对比方法 216
13.6  一些注意事项 216
13.7  演示 216
13.8  扩展 217
13.9  结论 217
13.10  参考资料 218
第Ⅲ部分  渲染 220
第14章  用于真实感实时皮肤
渲染的高级技术 225
14.1  皮肤外观 225
14.1.1  皮肤表面反射 226
14.1.2  皮肤子表面反射 227
14.2  皮肤渲染系统总述 228
14.3  镜面表面反射 229
14.4  散射理论 233
14.4.1  漫反射剖面 233
14.4.2  使用漫反射剖面渲染 234
14.4.3  漫反射剖面的形状 235
14.4.4  一个高斯和漫反射剖面 236
14.4.5  拟合预测的或
测量的剖面 237
14.4.6  配置漫反射剖面 238
14.4.7  对皮肤的高斯和拟合 238
14.5  高级子表面散射 239
14.5.1  纹理空间漫反射 240
14.5.2  改进的纹理空间漫反射 241
14.5.3  经过修改的半
透明阴影贴图 256
14.6  一个快速的布隆过滤器 260
14.7  结论 261
14.8  后续工作 261
14.9  参考资料 262
第15章  可播放的全方位捕捉 265
15.1  介绍 265
15.2  数据捕捉流水线 266
15.3  动态纹理的压缩和解压 268
15.3.1  主要分量分析 268
15.3.2  压缩 270
15.3.3  解压缩 271
15.3.4  可变PCA 272
15.3.5  实际使用中的考虑 273
15.4  串连特性 274
15.5  结论 275
15.6  参考资料 280
第16章  Crysis中植被的过程化
动画和着色 283
16.1  过程化动画 283
实现细节 284
16.2  植被着色 287
16.2.1  环境光照 288
16.2.2  边的光滑化 288
16.2.3  整合 289
16.2.4  实现细节 289
16.3  结论 291
16.4  参考资料 292
第17章  鲁棒的多镜面反射和折射 293
17.1  介绍 293
17.2  跟踪辅助光线 294
17.2.1  层次化距离图的生成 295
17.2.2  层次化距离图的
光线跟踪 295
17.3  反射和折射 300
17.4  结果 302
17.5  结论 306
17.6  参考资料 306
第18章  用于浮雕映射的松散式
锥形步进 309
18.1  介绍 309
18.2  浮雕映射总览 310
18.3  锥形步进映射 313
18.4  松散式锥形步进 313
18.4.1  计算松散式锥形映射图 314
18.4.2  使用松散式锥形
映射图进行渲染 317
18.5  结论 320
18.6  补充读物 321
18.6  参考资料 321
第19章  Tabula Rasa中的
延迟着色 323
19.1  介绍 323
19.2  一些背景知识 324
19.3  所支持的向前着色 324
19.3.1  一个受限的特效集 325
19.3.2  单效果,多技术 325
19.3.3  光照优先度 326
19.4  先进的光照特性 326
19.4.1  双向光照 327
19.4.2  球体映射 327
19.4.3  盒式光照 328
19.4.4  阴影贴图 328
19.4.5  进一步的扩展 330
19.5  可读取深度和法线缓存
的优点 331
19.5.1  高级水体和折射 331
19.5.2  与分辨率无关的边检测 332
19.6  一些注意事项 334
19.6.1  材质属性 334
19.6.2  精确度 336
19.7  优化 336
19.7.1  高效的光照体积 337
19.7.2  模板掩码 337
19.7.3  动态分支 338
19.8  问题 338
19.8.1  混合透明度几何体 338
19.8.2  内存带宽 339
19.8.3  内存管理 340
19.9  结果 340
19.10  结论 342
19.11  参考资料 343
第20章  基于GPU的重要性采样 345
20.1  介绍 345
20.2  渲染公式 346
20.2.1  蒙特卡洛积分 346
20.2.2  重要性采样 346
20.2.3  对材质函数进行采样 347
20.3  拟随机低差异序列 349
20.4  使用mipmap过滤的样本 350
20.5  性能 353
20.6  结论 355
20.7  补充读物及参考资料 355
第Ⅳ部分  图像效果 358
第21章  真正的Impostor 363
21.1  介绍 363
21.2  算法和实现细节 364
21.3  结果 367
21.4  结论 368
21.5  参考资料 369
第22章  在GPU上处理法线贴图 371
22.1  传统实现 371
22.1.1  投影 371
22.1.2  包围盒 372
22.2  加速结构 373
22.2.1  一致网格 373
22.2.2  3D数值微分分析 373
22.3  GPU的处理 374
22.3.1  序号限制 375
22.3.2  内存和结构限制 375
22.4  实现 376
22.4.1  设置以及预处理 376
22.4.2  单路径实现 378
22.4.3  多路径实现 383
22.4.4  反走样 383
22.5  结果 383
22.6  结论 385
22.7  参考资料 386
第23章  高速的离屏粒子 387
23.1  动机 387
23.2  离屏渲染 388
23.2.1  离屏深度测试 388
23.2.2  获取深度 388
23.3  向下采样深度 389
23.3.1  点采样深度 390
23.3.2  最大深度采样 391
23.4  深度测试与柔和粒子 391
23.5  alpha混合 392
23.6  混合分辨率渲染 393
23.6.1  边检测 394
23.6.2  与模板进行合成 394
23.7  结果 396
23.7.1  图像质量 396
23.7.2  性能 396
23.8  结论 398
23.9  参考资料 398
第24章  保持线性的重要性 399
24.1  介绍 399
24.2  光照、显示以及颜色空间 399
24.2.1  数字图像捕捉、
生成及显示中的问题 399
24.2.2  题外话:何为线性 400
24.2.3  显示器并非线性,
渲染器为线性 400
24.3  症状 402
24.3.1  非线性输入纹理 402
24.3.2  mipmap 402
24.3.3  光照 403
24.3.4  负负不得正 403
24.4  解决方法 405
24.4.1  输入图像(扫描、绘画
以及数字图片) 406
24.4.2  输出图像(最终渲染) 407
24.4.3  中间颜色缓存 408
24.5  结论 408
24.6  补充读物 408
第25章  在GPU上渲染向量图 411
25.1  介绍 411
25.2  二次曲线 411
25.3  三次样条 413
25.3.1  弯形曲线 417
25.3.2  环形曲线 418
25.3.3  尖形曲线 419
25.3.4  二次曲线 419
25.4  三角化 420
25.5  抗锯齿 421
25.6  代码 422
25.7  结论 423
25.8  参考资料 424
第26章  通过颜色进行对象探测:
使用 GPU进行实时视频
图像处理 425
26.1  图像处理概况 425
26.2  根据颜色进行对象检测 427
26.2.1  创建标记 428
26.2.2  查找质心 430
26.2.3  将一幅图像整合到
输入信号上 432
26.3  结论 433
26.4  补充读物 433
第27章  作为后置处理效果的
运动模糊 435
27.1  介绍 435
27.2  从深度缓存提取对象位置 436
27.3  执行运动模糊 438
27.4  处理动态对象 439
27.5  屏蔽对象 439
27.6  额外的工作 439
27.7  结论 439
27.8  参考资料 439
第28章  实用景深后期处理 441
28.1  介绍 441
28.2  相关工作 441
28.2.1  总览 441
28.2.2  特定技术 442
28.3  景深 442
28.4  算法的改进 443
28.4.1  最初的随机方法
(Stochastic Approach) 444
28.4.2  作为聚集的散射方法 444
28.4.3  模糊方法 445
28.5  完整的算法 448
28.5.1  深度信息 448
28.5.2  可变宽度的模糊 448
28.5.3  散光圈半径 449
28.5.4  关于第一人称视角
武器的考虑 450
28.5.5  完整的着色器代码 450
28.6  结论 455
28.7  局限和后续工作 456
28.8  参考资料 458
第Ⅴ部分  物理仿真 460
第29章  GPU上实时刚体仿真 465
29.1  介绍 466
29.1.1  平移 466
29.1.2  旋转 467
29.1.3  形状表示 468
29.1.4  碰撞检测 469
29.1.5  碰撞交互 470
29.2  GPU上刚体仿真 470
29.2.1  概述 470
29.2.2  数据结构 472
29.2.3  步骤1:计算粒子值 473
29.2.4  步骤2:网格生成 474
29.2.5  步骤3:碰撞检测
与交互 475
29.2.6  步骤4:动量计算 476
29.2.7  步骤5:计算位置
和四元组 476
29.2.8  渲染 476
29.2.9  性能 477
29.3  应用 477
29.3.1  颗粒状材料 478
29.3.2  液体 478
29.3.3  耦合 479
29.4  结论 480
29.5  附录 480
29.6  参考资料 480
第30章  实时仿真与3D流体渲染 483
30.1  介绍 483
30.2  仿真 484
30.2.1  背景 484
30.2.2  流体运动方程 485
30.2.3  速度求解 485
30.2.4  固-流体交互 490
30.2.5  烟雾 501
30.2.6  火 502
30.2.7  水 502
30.2.8  性能考虑 503
30.2.9  存储 504
30.2.10  数值问题 504
30.3  渲染 506
30.3.1  体积渲染 506
30.3.2  液体渲染 511
30.4  结论 512
30.5  参考资料 512
第31章  使用CUDA进行快速
N-body仿真 515
31.1  介绍 515
31.2  全对N-body仿真 516
31.3  全对N-body算法的
CUDA实现 518
31.3.1  体-体之间力的计算 518
31.3.2  块计算 519
31.3.3  把块聚集到线程块中 520
31.3.4  定义线程块的网格 521
31.4  性能评测 522
31.4.1  优化 523
31.4.2  性能结果分析 525
31.5  以前使用GPU进行
N-body仿真的方法 526
31.6  分层的N-body方法 526
31.7  结论 527
31.8  参考资料 527
第32章  使用CUDA进行宽阶段
碰撞检测 531
32.1  宽阶段算法 531
32.1.1  排序和搜索 531
32.1.2  空间划分 532
32.1.3  并行空间划分 534
32.2  空间划分的一种
CUDA实现 535
32.2.1  初始化 536
32.2.2  构建单元ID数组 537
32.2.3  单元ID数组的排序 538
32.2.4  创建碰撞单元列表 547
32.2.5  遍历碰撞单元列表 548
32.3  性能结果 548
32.4  结论 549
32.5  参考资料 549
第33章  用于碰撞检测的LCP
算法 的CUDA实现 551
33.1  并行处理 551
33.2  物理流程 552
33.3  确定接触点 553
33.3.2  连续方法 553
33.3.2  离散方法(基于一致性) 554
33.3.3  解析接触点 554
33.4  数学优化 554
33.4.1  线性规划 554
33.4.2  线性互补问题 555
33.4.3  二次规划 556
33.5  凸面距离计算 556
33.6  使用CUDA的LCP并行
解决方安 558
33.7  结果 561
33.8  参考资料 563
第34章  使用单过程GPU扫描和
四面体转换的有向距离场 565
34.1  介绍 565
34.1.1  有向距离场总览 565
34.1.2  方法的概览 566
34.2  扫描方法中的泄露瑕疵 566
34.2.1  平面测试 566
34.2.2  如何构建包围体 567
34.2.3  多边形模型的折叠 569
34.3  四边形GPU扫描方法 570
34.3.1  计算壳 571
34.3.2  计算四边形的交叉区域 571
34.3.3  使用角度权重的
伪法线计算有向距离 572
34.4  结果 575
34.5  结论 578
34.6  后续工作 578
34.6.1  算法的改进 578
34.6.2  对实现方法进行改进 578
34.7  补充读物 578
34.8  参考资料 580
第Ⅵ部分  GPU计算 582
第35章  使用GPU进行病毒特征
的快速匹配 587
35.1  介绍 587
35.2  模式匹配 589
35.3  GPU实现 590
35.4  结果 593
35.5  结论和后续工作 595
36.6  参考资料 596
第36章  用GPU进行AES加密
和解密 597
36.1  用于整数流处理的新功能 597
36.1.1  转换反馈模式 597
36.1.2  GPU编程扩展 598
36.2  AES算法概述 599
36.3  AES在GPU上的实现 601
36.3.1  输入/输出和状态 602
36.3.2  初始化 603
36.3.3  轮操作 603
36.3.4  最后一轮 607
36.4  性能 607
36.4.1  顶点程序与片段程序 607
36.4.2  与基于CPU的加密
的比较 608
36.5  对并行的考虑 608
36.5.1  操作的块密码模式 608
36.5.2  用于并行处理的模式 609
36.6  结论和后续工作 610
36.7  参考资料 611
第37章  使用CUDA进行高效
的随机数生成及应用 613
37.1  Monte Carlo仿真 614
37.2  随机数生成器 616
37.2.1  简介 616
37.2.2  均匀到高斯的转换
生成器 617
37.2.3  高斯转换的类型 620
37.2.4  Wallace 高斯生成器 621
37.2.5  把Wallace高斯
生成器集成到仿真中 624
37.3  示例程序 625
37.3.1  亚式期权 626
37.3.2  回顾期权的变体 627
37.3.3  结果 629
37.4  结论 630
37.5  参考资料 630
第38章  使用CUDA进行地球
内部成像 633
38.1  介绍 633
38.2  地震数据 633
38.3  地震数据处理 635
38.3.1  震波传播 636
38.3.2  使用SRMIP算法
进行震波偏移 638
38.4  GPU实现 640
38.4.1  GPU/CPU通信 641
38.4.2  CUDA的实现 642
38.4.3  震波传播内核 643
38.5  性能 645
38.6  结论 646
38.7  参考资料 646
第39章  使用CUDA的并行
前缀和(扫描方法) 649
39.1  介绍 649
39.2  实现 650
39.2.1  并行扫描的雏形 650
39.2.2  一种高效的并行
扫描算法 652
39.2.3  避免bank冲突 654
39.2.4  随机长度的数组 656
39.2.5  进一步优化及性能结果 657
39.2.6  CUDA对OpenGL
实现的优势 659
39.3  扫描的应用 660
39.3.1  流压缩 660
39.3.2  区域求和表 661
39.3.3  基数排序 663
39.3.4  前人的贡献 665
39.4  结论 666
39.5  参考资料 666
第40章  Gaussian的增量计算 669
40.1  介绍和相关工作 669
40.2  多项式向前差分 671
40.3  增量高斯算法 673
40.4  误差分析 675
40.5  性能 677
40.6  结论 678
40.7  参考资料 678
第41章  使用几何shader处理紧凑
和可变长度的GPU反馈 681
41.1  介绍 681
41.2  为什么要使用几何体
着色器 681
41.3  几何体着色器的动态输出 682
41.4  算法和应用 684
41.4.1  构建直方图 684
41.4.2  压缩 686
14.4.3  Hough变换 686
41.4.4  角点检测 689
41.5  优势:GPU本地性和SLI 690
41.6  性能和限制 691
41.6.1  总括 691
41.6.2  Hough图最大值检测
的性能 691
41.7  结论 692
41.8  参考资料 692


0 1
原创粉丝点击