GPU精粹——实时图形编程的技术、技巧和技艺(附CD-ROM光盘一张)

GPU精粹——实时图形编程的技术、技巧和技艺(附CD-ROM光盘一张) - 图书城
作者:
(美)费尔南多 编,姚勇王小琴
ISBN:
9787115141767 , 7115141762
出版社:
出版日期:
2006-1-1
定价:
78.00
¥58.50元 75折 去卓越网购买 免费配送!
¥58.50元 75折 去当当网购买
内容提要 :
    本书由引领全球计算机图形芯片技术发展的NVIDIA公司组稿,汇集当今国际上前沿开发者们经多年研究和实践得出的实用的实时图形技术成果。本书主要基于当今图形处理器(GPU)的可编程图形管线,除了讲述创建高级视觉效果的基础知识和性能优化技术外,还着重介绍了前沿开发者们总结出来的快速技巧。全书由42篇文章组成,根据主题不同分为6个部分,包括自然效果、光照和阴影、材质、图像处理、性能及实践、超越三角形。
  本书适合于实时渲染相关行业的技术人员阅读,也适合作为相关科研院所的学习研究参考资料。
编辑推荐 :
本书汇集了当今国际上前沿开发者们经多年研究和实践得出的实用的实时图形技术成果。本书主要基于当今图形处理器(GPU)的可编程图形管线,除了讲述用于创建高级视觉效果的基础知识和性能优化技术外,还着重介绍了前沿开发者们总结出来的快速技巧。本书全体撰稿者和编辑人员将他们多年的经验通过这本书贡献给读者,期待能够启发并帮助大家进入神奇的可编程实时图形世界。
本书就是一个高级图形技巧工具箱。无论是编程新手还是图形大师,都会在其中找到实用、有益的、令人难以释手的“瑰宝”。
--Tim Sweeney,Epic Games公司Unreal系列的主力开发人员
www.PearsonEd.com
目录 :
第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
译者序:
在翻译本书时,正值NVIDIA公司的GEFORCE 6800系列显卡在中国发布。GPU发展到今天已经基本具备了CPU运算的大部分功能,32bit浮点精度、分支循环以及条件判断等也在Vertex & Pixel Shader中实现。20世纪90年代末VOODOO显卡进入中国,10多年来PC平台上的实时渲染(Realtime Rendering)软件技术框架已经从纯CPU上软件优化的光栅化渲染经过硬件光栅化加速渲染发展到GPU渲染。实时渲染的主要应用领域,如3D电子游戏、虚拟漫游的软件设计思路,已经从软件优化为主导过渡到围绕GPU硬件功能,以充分发挥3D硬件机能为目的编写渲染架构及设计数据结构上。实时渲染越来越朝着离线渲染的电影级质量迈进,这和3D渲染..
前言:
本书收集了有关实时计算机图形的内容广泛、实践性强的文章,汇集了工业界和学术界专家们的知识和经验。《GPU精粹》是一本短文集,它以相同的风格汇集了精粹作品。对于那些欲披挂上阵、为GPU摩拳擦掌的今日开发者来说,这本书具有独特而宝贵的意义。. 首先也是最重要的,就是这本书直接把重心集中在实时可编程的图形上,即与GPU相关的技术上。每章都经过精心挑选,介绍了对交互式应用(例如电脑游戏)直接有用的思路和技术。各章都提供了作者的领悟和理解,而不是仅仅集中在低水平的APl调用,或专门的数学技巧上。其次,每章都用了很多彩色图表和图像,来举例说明主要概念。最后,撰稿人的经验和多样性将有助于开..
序言:
目前,计算机图形学正处于前所未有的发展时期。近5年来,GPU技术以令人惊异的速度在发展。渲染速率(以每秒钟所渲染的像素计)每6个月就翻一番。成倍地增长已让人兴奋,而翻番再翻番的奇迹就更令人激动了。性能5年来翻番了10次,也就是(2的10次方比2)提高了上千倍!. 与此同时,不仅操作性能得到了提高,计算质量和图形编程的灵活性也逐渐得以改善。5年前,PC和计算机工作站只有图形加速器,没有图形处理器(GPU),而图形加速器只能简单地加速图形渲染。此外,加速器这个名词还意味着计算机执行与以前完全相同的渲染操作,只不过更快速而已。一旦GPU取代了图形加速器,我们就应该摈弃图形加速器的旧观念。让我们..
联系客服 - 加入到博客 - 开发者API - 图书目录 - 关于图书城.com - 对外合作 - 购书指南 - 可以在线阅读吗?
图书城.com © TuShuCheng.com - 京ICP备06069800