当前位置:首页 > 工业技术
GPU精粹  3
GPU精粹  3

GPU精粹 3PDF电子书下载

工业技术

  • 电子书积分:19 积分如何计算积分?
  • 作 者:(美)阮金编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302220701
  • 页数:692 页
图书介绍:本书展示了当前最新的GPU编程技术,主要包括几何体、光照和阴影、渲染、图像效果、物理学仿真、GPU计算等内容。
《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

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

6.5 渲染树 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

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 步骤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

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.7 参考资料 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.1 连续方法 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

35.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 地震数据 634

38.3 地震数据处理 635

38.3.1 震波传播 637

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 性能 646

38.6 结论 646

38.7 参考资料 647

第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章 高斯函数的增量计算 669

40.1 介绍和相关工作 669

40.2 多项式向前差分 671

40.3 增量高斯算法 673

40.4 误差分析 675

40.5 性能 677

40.6 结论 678

40.7 参考资料 678

第41章 使用几何体着色器处理紧凑和可变长度的GPU反馈 681

41.1 介绍 681

41.2 为什么要使用几何体着色器 681

41.3 几何体着色器的动态输出 682

41.4 算法和应用 684

41.4.1 构建直方图 684

41.4.2 压缩 686

41.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

相关图书
作者其它书籍
返回顶部