当前位置:首页 > 工业技术
GPU精粹 实时图形编程的技术、技巧和技艺
GPU精粹 实时图形编程的技术、技巧和技艺

GPU精粹 实时图形编程的技术、技巧和技艺PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:(美)Randima Fernando编;姚勇,王小琴译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2006
  • ISBN:7115141762
  • 页数:497 页
图书介绍:本书主要基于当今图形处理单元(GPU)的可编程图形管线,除了讲述用于创建高级视觉效果的基础知识和性能优化技术外,还介绍了前沿开发者所使用的快速技巧。
《GPU精粹 实时图形编程的技术、技巧和技艺》目录

第1部分 自然效果 2

简介 2

1.1 目标和范围 4

第1章 用物理模型进行高效的水模拟 4

1.2.1 波的选择 5

1.2 正弦近似值的加和 5

1.2.2 法线和切线 6

1.2.3 几何波 8

1.2.4 纹理波 11

1.3.1 深度的使用 13

1.3 编辑 13

1.3.2 重载 14

1.3.4 纹理坐标 15

1.3.3 边长的过滤 15

1.4.1 凹凸环境映射参数 16

1.4 运行时的处理 16

1.4.2 顶点和像素的处理 18

1.6 参考文献 19

1.5 小结 19

2.1 引言 21

第2章 水刻蚀的渲染 21

2.2 刻蚀的计算 22

2.3 方法 24

2.5 使用高级着色语言实现 25

2.4 使用OpenGL实现 25

2.7 参考文献 30

2.6 小结 30

3.1 引言 31

第3章 Dawn演示中的皮肤 31

3.3.1 高动态范围的环境 32

3.3 场景的照明 32

3.2 皮肤着色 32

3.3.2 遮挡 34

3.4 皮肤如何对光进行响应 35

3.5.1 顶点Shader 36

3.5 实现 36

3.5.2 像素Shader 41

3.7 参考文献 43

3.6 小结 43

4.1 简介 44

第4章 Dawn演示中的动画 44

4.3.1 高级语言中的变形网格对象 45

4.3 变形网格对象 45

4.2 网格的动画 45

4.3.2 变形网格对象的实现 47

4.4 蒙皮 48

4.6 参考文献 50

4.5 小结 50

5.1 噪声函数 51

第5章 改良的Perlin噪声的实现 51

5.3 最初实现的缺点 52

5.2 最初的实现 52

5.4 对噪声函数的改进 54

5.5 如何在像素shader中产生好的假噪声 56

5.6 不考虑相邻顶点制作凹凸贴图 57

5.8 参考文献 58

5.7 小结 58

6.1 创建逼真的火焰 59

第6章 Vulcan演示中的火 59

6.2.1 火焰和烟的动画 61

6.2 动画精灵的实现 61

6.2.2 使火焰增加多样性 62

6.2.3 动画的存储 63

6.2.4 火焰和烟的混合 64

6.4.1 层次合成 65

6.4 性能 65

6.3 粒子运动 65

6.5 渲染后的效果 67

6.4.2 定制的精灵 67

6.5.2 热微光 68

6.5.1 辉光 68

6.5.3 颗粒 70

6.5.4 最终的程序 71

6.6 小结 72

7.2 概述 73

7.1 引言 73

第7章 无数波动草叶的渲染 73

7.3.2 草体 74

7.3.1 草的纹理 74

7.3 草体的准备 74

7.4.1 一般思路 76

7.4 动画 76

7.4.2 每丛草体的动画 77

7.4.3 每个顶点的动画 79

7.4.4 每个草体的动画 80

7.6 参考文献 82

7.5 小结 82

8.1.1 波动光学 84

8.1 什么是衍射 84

第8章 衍射的模拟 84

8.1.2 衍射的物理学 85

8.2 实现 86

8.3 结果 89

8.5 参考文献 90

8.4 小结 90

简介 92

第2部分 光照和阴影 92

9.1 引言 94

第9章 有效的阴影体渲染 94

9.2.1 多遍渲染 96

9.2 程序结构 96

9.2.3 在无限远处工作 99

9.2.2 顶点缓冲器结构 99

9.3.1 数学 101

9.3 详细的讨论 101

9.3.3 markShadows方法 103

9.3.2 代码 103

9.3.4 findBackfaces方法 104

9.3.5 亮罩和暗罩 105

9.3.6 侧面 106

9.4 调试 107

9.5.2 点光源和聚光灯 108

9.5.1 方向光 108

9.5 几何优化 108

9.5.4 除罩操作 109

9.5.3 剔除阴影体 109

9.6.1 有限的体积 110

9.6 填充率的优化 110

9.6.3 Z-边界 111

9.6.2 XY裁剪 111

9.7 将来的阴影 112

9.8 参考文献 113

10.1 引言 114

第10章 电影级的光照 114

10.2 直射光照明模型 115

10.2.3 造型 116

10.2.2 颜色 116

10.2.1 选择 116

10.2.4 阴影 117

10.2.6 结果 118

10.2.5 纹理 118

10.3 泛光Shader 119

10.5 小结 124

10.4.3 优化 124

10.4 性能分析 124

10.4.1 速度 124

10.4.2 开销 124

10.6 参考文献 125

11.2 靠近的百分比过滤 126

11.1 引言 126

第11章 阴影贴图反走样 126

11.3 平滑滤波的实现 127

11.4 较少地取样 128

11.5 工作原理 129

11.7 参考文献 131

11.6 小结 131

12.1 引言 132

第12章 全方位的阴影映射 132

12.2.1 条件 133

12.2 阴影映射的算法 133

12.1.1 模板阴影 133

12.1.2 阴影映射 133

12.2.2 算法 134

12.3.1 系统需求 135

12.3 实现 135

12.2.3 纹理格式 135

12.2.4 阴影贴图的尺寸 135

12.2.5 几何体的数值范围 135

12.3.3 渲染阶段1:渲染到阴影贴图 136

12.3.2 资源创建 136

12.3.6 阴影的计算 137

12.3.5 光照计算 137

12.3.4 渲染阶段2:基本渲染 137

12.4 添加模糊的阴影 138

12.3.8 最终的着色遍(Lighting×Shadow) 138

12.3.7 技巧和窍门 138

12.6 参考文献 139

12.5 小结 139

13.1 加油站 140

第13章 使用遮挡区间映射产生模糊的阴影 140

13.2 算法 141

13.3 创建映射 142

13.4 渲染 143

13.5 局限性 144

13.6 小结 145

13.7 参考文献 146

14.1 引言 147

第14章 透视阴影贴图 147

14.2.1 虚拟摄像机 148

14.2 PSM算法的问题 148

14.2.2 光源摄像机 152

14.2.3 偏置 157

14.3.1 过滤器 160

14.3 获得更好阴影映射的技巧 160

14.3.2 模糊 161

14.4 结果 164

14.5 参考文献 165

15.2.1 逐像素光照的例子 166

15.2 批和逐像素光照 166

第15章 逐像素光照的可见性管理 166

15.1 GPU书中的可见性 166

15.2.2 究竟需要多少批 167

15.3.4 阴影集合 168

15.3.3 照明集合 168

15.3 作为集合的可见性 168

15.3.1 可见集合 168

15.3.2 光源集合 168

15.4.3 照明集合的生成 169

15.4.2 光源集合的生成 169

15.4 各集合的生成 169

15.4.1 可见集合的生成 169

15.4.4 阴影集合的生成 170

15.5 可见性改善填充率 172

15.8 参考文献 173

15.7 小结 173

15.6 实际的应用 173

简介 176

第3部分 材质 176

16.2 简单的散射近似 177

16.1 次表面散射的视觉效果 177

第16章 次表面散射的实时近似 177

16.3 用深度映射模拟吸收 179

16.3.1 实现细节 182

16.4 纹理空间的漫反散 183

16.3.2 更精密的散射模型 183

16.6 参考文献 187

16.5 小结 187

17.1 概述 188

第17章 环境遮挡 188

17.2 预处理步骤 189

17.3 硬件加速计算遮挡 190

17.4 用环境遮挡贴图来渲染 191

17.5 小结 194

17.6 参考文献 195

18.2 表达式的详述 198

18.1 什么是SBRDF 198

第18章 空间的BRDFs 198

18.3 使用离散光的渲染 200

18.4.1 算法 202

18.4 使用环境贴图的渲染 202

18.4.2 shader代码 204

18.6 参考文献 207

18.5 小结 207

19.1 基于图像光照的局部化 208

第19章 基于图像的光照 208

19.2 顶点Shader 211

19.3 片元Shader 213

19.5 影子 215

19.4 漫反射IBL 215

19.6 使用局部立方体贴图作背景 216

19.8 参考文献 217

19.7 小结 217

20.1.1 求单元 219

20.1 纹理爆炸101 219

第20章 纹理爆炸 219

20.1.3 相邻单元中的图像 220

20.1.2 对图像采样 220

20.1.4 图像优先级 221

20.1.5 程序化图像 222

20.1.6 图像的随机选择 223

20.2 技术上的考虑 224

20.3.2 可控的变量密度 225

20.3.1 缩放和转动 225

20.3 高级特性 225

20.3.3 程序化的3D爆炸 226

20.3.5 Voronoi相关的细胞法 227

20.3.4 随时间变化的纹理 227

20.5 参考文献 229

20.4 小结 229

简介 232

第4部分 图像处理 232

21.1 技术概述 234

第21章 实时辉光 234

21.2.1 辉光源的指定和渲染 237

21.2 渲染辉光的步骤 237

21.2.3 分步卷积 238

21.2.2 模糊辉光源 238

21.2.4 GPU上的卷积 239

21.3.1 Direct3D 9 240

21.3 特定硬件的实现 240

21.3.3 Direct3D 7 242

21.3.2 Direct3D 8 242

21.5.1 渲染场景 243

21.5 把效果加入一个游戏引擎 243

21.4 模糊的其他用途 243

21.5.3 DirectX 7的精度问题 244

21.5.2 走样问题 244

21.5.5 渐变效果 245

21.5.4 残留图像效应 245

21.7 参考文献 246

21.6 小结 246

22.2.1 级别 248

22.2 基于通道的颜色校正 248

第22章 颜色控制 248

22.1 引言 248

22.2.2 曲线 250

22.3.1 灰度变换 252

22.3 多通道的彩色校正和变换 252

22.3.2 彩色空间的变换 253

22.4 参考文献 255

第23章 景深:技术综述 256

23.1 什么是景深 256

23.1.2 主要技术 257

23.1.1 模糊圈的计算 257

23.3 累积缓冲区的景深 258

23.2 光线跟踪的景深 258

23.4 分层的景深 259

23.5 向前映射的z缓冲区景深 260

23.6 反向映射的z缓冲区景深 261

23.7 小结 265

23.8 参考文献 266

24.1 质量与速度 267

第24章 高质量的过滤 267

24.2 对GPU求导的理解 277

24.3 解析的反走样和纹理化 278

24.5 参考文献 284

24.4 小结 284

25.1 在shader中求导的需求 285

第25章 用纹理贴图进行快速过滤宽度的计算 285

25.2 用纹理计算过滤宽度 287

25.3 讨论 288

25.4 参考文献 289

26.1.1 高动态范围图像 291

26.1 什么是OpenEXR 291

第26章 OpenEXR图像文件格式 291

26.1.3 可表示的数值范围 293

26.1.2 “半精度”(Half)格式 293

26.2.2 像素 294

26.2.1 文件头 294

26.1.4 彩色分辨率 294

26.1.5 C++接口 294

26.2 OpenEXR文件结构 294

26.4.1 OpenEXR图像的读和显示 295

26.4 OpenEXR的使用 295

26.3 OpenEXR数据压缩 295

26.4.2 一个OpenEXR图像的渲染和写入 296

26.5 线性像素值 300

26.6 创建和使用HDR图像 302

26.7 小结 303

26.8 参考文献 304

27.1 引言 305

第27章 图像处理的框架 305

27.2.1 操作器和过滤器 306

27.2 框架设计 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

简介 324

第5部分 性能及实践 324

28.1.2 方法 326

28.1.1 流水线 326

第28章 图形流水线性能 326

28.1 概述 326

28.2 定位瓶颈 327

28.2.3 片元着色 328

28.2.2 纹理带宽 328

28.2.1 光栅操作 328

28.3.1 在CPU上优化 329

28.3 优化 329

28.2.4 顶点处理 329

28.2.5 顶点和索引传输 329

28.3.2 减少顶点传输的开销 330

28.3.4 加速片元着色 331

28.3.3 顶点处理的优化 331

28.3.5 减小纹理带宽 332

28.3.6 优化帧缓冲带宽 333

28.5 参考文献 334

28.4 小结 334

29.1.2 早期z值拒绝 335

29.1.1 遮挡查询 335

第29章 有效的遮挡剔除 335

29.1 什么是遮挡剔除 335

29.3 初步使用遮挡查询 336

29.2 遮挡查询如何工作 336

29.4 更进一步的应用 337

29.3.2 遮挡物和被遮挡物的比较 337

29.3.1 恰当地使用遮挡查询 337

29.5 关于包围盒 339

29.4.2 一个防止误解的说明 339

29.4.1 将物体排序 339

29.5.2 动画的物体 340

29.5.1 静态的物体 340

29.6.2 高分辨率的渲染 341

29.6.1 CPU消耗太高 341

29.6 其他问题 341

29.6.4 锥体剔除 342

29.6.3 快速深度写入的性能 342

29.8 一个应用:透镜耀斑 343

29.7 一点小忠告 343

29.8.1 渲染透镜耀斑的旧方法 344

29.9 小结 345

29.8.2 渲染透镜耀斑的新方法 345

29.10 参考文献 346

30.2 设计初衷和使用对象 347

30.1 工具的开发 347

第30章 FX Composer的设计 347

30.3 对象设计 348

30.4 文件格式 352

30.6.1 设备窗口 353

30.6 Direct3D图形的实现 353

30.5 用户接口 353

30.6.3 ID3DXEffectCompiler 354

30.6.2 Direct3D效果 354

30.7 场景管理 355

30.6.4 ID3DXEffect 355

30.9 参考文献 356

30.8 小结 356

31.1 开始 357

第31章 FX Composer的使用 357

31.1.1 材质面板 358

31.1.2 场景图形面板 359

31.1.3 编辑窗口 360

31.1.5 属性面板 361

31.1.4 ShaderPerf面板 361

31.1.6 场景面板 363

31.1.7 纹理面板 364

31.1.9 日志面板 365

31.1.8 任务面板 365

31.2 项目示例 366

31.3 小结 367

第32章 Shader接口入门 368

32.1 shader接口的基础 369

32.2 一个灵活的光源描述 371

32.3 材质树 373

32.5 参考文献 376

32.4 小结 376

33.1 引言 377

第33章 将产品的RenderMan shader转化为实时的shader 377

33.2.2 光源shader 378

33.2.1 光源 378

33.2 光照 378

33.3 顶点程序与片元程序的比较 379

33.2.3 其他的光源参数 379

33.4 使用顶点和片元程序 380

33.5.2 把代码转移到顶点程序 381

33.5.1 把代码转移到应用层 381

33.5 片元程序的优化技术 381

33.5.3 通过纹理查询优化 382

33.5.5 最终的优化 383

33.5.4 向量化的优化 383

33.6 小结 384

33.7 参考文献 386

34.1 引言 387

第34章 将硬件着色整合进Cinema 4D 387

34.2 把Cinema 4D连接到CgFX上去 389

34.3 shader和参数管理 390

34.4 模拟离线渲染 391

34.5 结果和性能 393

34.6 收获和教训 394

34.7 参考文献 395

35.1 引言 396

第35章 在实时应用程序中使用高质软件渲染效果 396

35.2 用于硬件渲染的内容流水线 397

35.3.2 属性映射 398

35.3.1 几何数据 398

35.3 硬件渲染的组件 398

35.4.2 对纹理和顶点的渲染 400

35.4.1 创建几何图形 400

35.4 组件的产生 400

35.5 试验情况和结果 403

35.7 参考文献 408

35.6 小结 408

36.2 关于shader 409

36.1 引言 409

第36章 将Shader整合到应用程序中去 409

36.3 一个effect文件的剖析 411

36.3.5 评注 412

36.3.4 technique 412

36.3.1 变量 412

36.3.2 结构体 412

36.3.3 pass 412

36.4.1 场景信息 413

36.4 shader数据的类型 413

36.5.1 场景信息 414

36.5 与shader的通信 414

36.4.2 材质 414

36.4.3 渲染的场景 414

36.4.4 顶点数据 414

36.5.2 材质的参数 415

36.5.4 场景 416

36.5.3 顶点格式 416

36.6.1 对预处理程序的支持 417

36.6 effct文件格式的扩展 417

36.5.5 就场景对technique和pass的比较 417

36.6.3 shader继承的添加 418

36.6.2 对shader变化的支持 418

36.8 参考文献 419

36.7 小结 419

简介 422

第6部分 超越三角形 422

37.1 用GPU进行计算 424

第37章 用于GPU计算的工具箱 424

37.1.1 编程模型 425

37.2 约减 426

37.1.3 高级的GPU程序 426

37.1.2 并行编程 426

37.2.1 并行的约减 427

37.3.1 Bitonic归并排序 428

37.3 排序和搜索 428

37.2.2 有关约减的注意事项 428

37.3.2 二分搜索 430

37.4.1 有限的输出 432

37.4 挑战 432

37.6 参考文献 433

37.5 小结 433

37.4.2 缓慢的回读 433

37.4.3 GPU和CPU的比较 433

38.1 引言 435

第38章 在GPU上的快速流体动力学模拟 435

38.2 数学背景 436

38.1.3 方法 436

38.1.1 目的 436

38.1.2 假设 436

38.2.1 不可压缩流体的Navier-Stokes方程式 437

38.2.3 矢量微积分的简要复习 438

38.2.2 Navier-Stokes方程式的各项 438

38.2.4 解Navier-Stokes方程式 439

38.3 实现 443

38.3.1 CPU-GPU的类比 444

38.3.3 片元程序的实现 445

38.3.2 片运算 445

38.4.2 浮力和对流 450

38.4.1 模拟液体和气体 450

38.4 应用 450

38.5 扩展 451

38.5.4 任意边界 452

38.5.3 交错排列的网格 452

38.5.1 旋涡状态的限制 452

38.5.2 三维 452

38.7 参考文献 453

38.6 小结 453

38.5.5 流体的自由表面 453

39.1 引言 454

第39章 体渲染技术 454

39.2 体渲染 455

39.3 基于纹理的体渲染 456

39.4.1 数据的表达和处理 459

39.4 实现细节 459

39.4.2 代理几何体 460

39.4.3 渲染 461

39.5.1 体光照 463

39.5 高级技术 463

39.6 对性能的考虑 467

39.5.2 程序化渲染 467

39.8 参考文献 469

39.7 小结 469

40.1 背景 471

第40章 用于三维超声波可视化的实时着色 471

40.2.1 笛卡尔网格数据的体渲染 473

40.2 引言 473

40.2.2 体渲染锥体网格中的数据 475

40.5 参考文献 480

40.4 小结 480

40.3 结果 480

41.1.2 随机点立体图 481

41.1.1 立体摄影 481

第41章 实时立体图 481

41.1 什么是立体图 481

41.1.3 单个图像的立体图 483

41.2.1 参数 484

41.2 单个图像立体图的创建 484

41.2.2 渲染 485

41.2.3 动画的单个图像立体图的创建 486

41.2.4 片元程序 488

41.3 示例应用程序 489

41.4 参考文献 490

42.1 什么是变形 491

第42章 变形 491

42.2.2 写顶点程序 492

42.2.1 变形的公式 492

42.2 在GPU上的变形 492

42.2.3 法线的变形 493

42.3 局限性 494

42.5 例子:波浪变形 495

42.4 性能 495

42.6 小结 497

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