成功加入购物车
图书条目标准图
只卖正版,每本书籍经过消毒,塑封包装。3点前下单当天发货。
费尔南多 / 人民邮电出版社 / 2006-01 / 平装
售价 ¥ 256.00
品相 八五品
优惠 满包邮
延迟发货说明
上书时间2021-01-06
卖家超过10天未登录
GPU精粹:实时图形编程的技术、技巧和技艺
本书由引领全球计算机图形芯片技术发展的NVIDIA公司组稿,汇集当今国际上前沿开发者们经多年研究和实践得出的实用的实时图形技术成果。本书主要基于当今图形处理器(GPU)的可编程图形管线,除了讲述创建高级视觉效果的基础知识和性能优化技术外,还着重介绍了前沿开发者们总结出来的快速技巧。全书由42篇文章组成,根据主题不同分为6个部分,包括自然效果、光照和阴影、材质、图像处理、性能及实践、超越三角形。 本书适合于实时渲染相关行业的技术人员阅读,也适合作为相关科研院所的学习研究参考资料。
第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
展开全部
配送说明
...
相似商品
为你推荐
开播时间:09月02日 10:30