本书延续了畅销书《GPU精粹》的第1卷,细述了在今天的图形处理器(GPU)上最新的可编程技术。随着GPU进入手机、手持游戏设备和游戏机领域,GPU专业知识在今天的竞争环境中显得更为重要。实时图形程序员会发现用于建立高级的视觉特效、管理复杂场景的策略和高级图像处理技术的最新算法。读者还会学到一些新方法,把GPU的强大处理能力运用到其他计算密集型程序中,比如科学计算和金融。书中有20章专门讲述GPGPU编程,从基本的概念到高级技术。本书提供了一些专家撰写的最前沿的GPU编程技术,为读者介绍了利用GPU巨大功能的实用方法。
第Ⅰ部分 几何复杂性\r\n 第1章 实现照片级真实感的虚拟植物\r\n 第2章 使用基于GPU几何体剪切图的地形渲染\r\n 第3章 几何体实例化的内幕 \r\n 第4章 分段缓冲 \r\n 第5章 用多流来优化资源管理\r\n 第6章 让硬件遮挡查询发挥作用\r\n 第7章 带有位移映射的细分表面自\r\n 第8章 使用距离函数的逐像素位移\r\n第Ⅱ部分 着色、光照和阴影\r\n 第9章 S.T.A.L.K.E.R.中的延期着色\r\n 第10章 动态辐照度环境映射实时计算\r\n 第11章 近似的双向纹理函数\r\n 第12章 基于贴面的纹理映射 \r\n 第13章 在GPU上实现mental images的Phenomena渲染器 \r\n 第14章 动态环境遮挡和间接光照 \r\n 第15章 蓝图渲染和草图绘制 \r\n 第16章 精确的大气散射 \r\n 第17章 利用像素着色器分支的高效模糊边缘阴影 \r\n 第18章 将顶点纹理位移用于水的真实感渲染 \r\n 第19章 通用的折射模拟 \r\n第Ⅲ部分 高质量渲染\r\n 第20章 快速三阶纹理过滤 \r\n 第21章 高质量反走样的光栅化 \r\n 第22章 快速的预过滤线条 \r\n 第23章 Nalu Demo的头发动画和渲染 \r\n 第24章 使用查找表加速颜色变换 \r\n 第25章 Apple Motion中的GPU图像处理 \r\n 第26章 实现改进的Perlin噪声 \r\n 第27章 高级的高质量过滤 \r\n 第28章 Mipmap级的测量 \r\n第Ⅳ部分 GPU的通用计算:初级读本\r\n 第29章 流式体系结构和技术趋势 \r\n 第30章 GeForce 6系列GPU的体系结构 \r\n 第31章 把计算概念映射到GPU \r\n 第32章 尝试GPU计算 \r\n 第33章 在GPU上实现高效的并行数据结构 \r\n 第34章 GPU流程控制习惯用法 \r\n 第35章 GPU程序优化 \r\n 第36章 用于GPGPU应用程序的流式缩减操作 \r\n第Ⅴ部分 面向图像的计算\r\n 第37章 GPU上的八叉树纹理 \r\n 第38章 使用光栅化的高质量全局照明渲染 \r\n 第39章 使用逐步求精辐射度方法的全局照明\r\n 第40章 GPU上的计算机视觉 \r\n 第41章 延迟过滤:困难数据格式的渲染 \r\n 第42章 保守光栅化 \r\n第Ⅵ部分 模拟与数值算法\r\n 第43章 蛋白质结构预测的GPU计算 \r\n 第44章 用于解线性方程组的GPU框架 \r\n 第45章 GPU上的期权定价 \r\n 第46章 改进的GPU排序\r\n 第47章 复杂边界的流体模拟 \r\n 第48章 基于FFT的医学图像重建
《GPU精粹2》的主编是NVIDIA公司的软件工程师Matt Pharr。Matt也是Physically Based Rendering:From Theory to Implementation(Morgan Kaufmann,2004)一书的合著者之一。“GPU精粹”系列编辑是Randima Fernando。Randy 主编了“GPU精粹”的第1卷(Addison-Wesley,2004),而且是The Cg Tutorial(Addiosn-Wesley,2003)的合著者,其论文“Adaptive Shadow Maps”曾发表于SIGGRAPH2001。
“GPU精粹”的第1卷构思于2003年春季,即在第一代完全可编程的GPU出现不久之后。结果,书在一年之内就发行了,而且很快变成了一本畅销书,书中提供了一些最佳想法,让您可以尽可能地利用最新的可编程图形硬件。
GPU编程是一个变化快速的领域,而且写续篇的时机已经成熟。自从出现可编程图形处理器以来,它们以难以置信的速度变得更快更灵活。早期的可编程GPU只在顶点级支持可编程,而今天复杂的逐像素程序已经很常见了。一年前,实时GPU程序的长度经常是几十条指令,而今年的GPU可以处理有上百条指令的复杂程序,并仍可以以交互的速率渲染。可编程的图形甚至已经超越了PC并快速地扩展到控制台、手持式游戏设备和移动电话。
直到最近,关注性能的开发者可能仍在考虑用汇编语言编写GPU程序。然而,现在高级GPU编程语言已经普及,开发者为GPU编写汇编程序而烦恼已经极其罕见了,这要感谢编译器的进步和GPU能力的快速提高。作为对比的是,游戏开发者从使用CPU汇编语言发展到用高级语言写游戏花费了多年时间。
这种快速的变化自然使“精粹”风格的书适合于汇集这种尖端技术,并把它扩散到开发者论坛。通过公认专家编写的特色章节,本书提供了该领域中众多最令人兴奋的新思路。
图形硬件和编程环境的革新已经在该如何使用可编程性方面激发了进一步的革新。虽然可编程着色一直是离线软件渲染的主要产品,但在GPU上,可编程性的出现导致了用于可编程着色的各种新技术的发明,现在的发展远远地超过了程序化模式生成和纹理合成, GPU上着色器尖端技术的使用正在快速进入全新的领域,这引领了动画、光照和粒子系统等方面新技术的发展。
GPU的灵活性和速度已经培养了对“在GPU上做超越计算机图形的计算”的浓厚兴趣:在GPU上的通用计算(或GPGPU)。“GPU精粹”系列中的本书用了大量篇幅讲解这个新主题,包括GPGPU编程技术的简介、若干代表性的应用和关键算法的深入讨论。随着GPU性能的增长继续强于CPU的增长,对越来越多的程序员来说,这些主题将会越来越重要,因为GPU将对很多计算密集型应用提供更好的结果。
基于这种背景,我们为参与《GPU精粹2》发出一个公开号召。而得到的回应是压倒性的:在开放提交的短时间内就收到了150多章的提议,包括关于GPU编程的各个主题。本书只能包含其中的1/3;许多优秀的提议无法被包括进来纯粹是因为篇幅所限。编辑们很艰难地把那些内容削减成本书的48章。我们感谢提交了提议的每个人。
本书中的内容都通过了一系列严格的复审过程,本书的编辑、各章的作者以及在某些情况下来自NVIDIA的其他书评人都仔细地读过这些内容并给出了改进或修改建议。由于书评人为本书提供了高质量的反馈,因此最终内容的质量有了显著地改进。我们感谢所有的书评人,他们为本书的编撰付出了大量时间和努力。
读者对象
我们希望读者熟悉计算机图形学和GPU编程的基础,包括图形API,如Direct3D和OpenGL,以及GPU语言,如HLSL,GLSL和Cg。对GPGPU编程感兴趣的读者可能发现对并行编程的概念有一些基本了解是有帮助的。
游戏、可视化应用程序和其他交互式应用程序的开发者,以及计算机图形学的研究者,将会发现本书是一个无价的日常资源。尤其是下一代控制台的开发者将会发现很多及时和可用的内容。
范例
本书附有CD-ROM,内容包含书中所描述技术的代码示例、视频和其他示范。这张CD-ROM是对书中想法的有价值的补充。在很多情况下,由作者提供的可实践范例将会提供更多的启迪。您可以在本书的网站http:// developer.nvidia.com/GPUGems2/找到样章、更新的CD-ROM内容和补充材料等。
致谢
本书融入了许多人的巨量工作。首先,撰稿人在很短的时间内写了很多很好的章节。他们的努力已经成为有价值的、及时的且能启发思维的合集。
部分编辑Kevin Bjorke,Cem Cebenoyan,Simon Green,Mark Harris,Craig Kolb和Matthias Wloka——在本书上花费了很多时间,他们与作者一起修改、润色章节,直到它们变得出色为止,和作者商议最好的GPU编程实践,并且友善地提醒他们截止期限。没有这些编辑们的专注和奉献,我们现在仍然处于提交的提议状态。Chris Seitz也细心地关注有关本书编撰过程中的许多法律、后勤和商业问题。
NVIDIA公司的其他人也是本书的贡献者。我们在此感谢Spender Yuen,他耐心地在书的图片和封面上做了令人惊奇的工作。当插图的数量超过150幅后,Helen Ho也来帮忙了。我们感谢Caroline Lie和她的团队,他们持续不断地支持我们的项目。同样地,在我们进行项目开发时,Teresa Saffaie和Catherine Kilkenny总是乐意帮着我们审稿。Jim Black协调开发者和撰稿者之间的通信,包括Tim Sweeney,感谢他为本书撰写了这么精彩的序言。
Addison-Wesley的Peter Gordon,Julie Nahil和Kim Boedigheimer监管了这个项目,并帮助督促生产流水线,我们才可以尽可能及时地发行本书。Christopher Keane的审稿技巧和Jules Keane的协助不可估量地改善了内容,最后完成的时候,Curt Johnson为本书的上市提供了帮助。
NVIDIA管理团队一些成员的支持对本项目的成功是功不可没的。Mark Daly和Dan Vivoli发现了为“GPU精粹”系列增加第2卷的价值并始终支持本书。Nick Triantos给了Matt时间为这个项目工作并在若干GPGPU章节上给予了反馈。Jonah Alben和Tony Tamasi对关于GeForce 6系列架构的章节提供了深刻见解和有价值的反馈。我们真诚地感谢Jen-Hsun Huang,他建立了这个项目,构建出创新的、具有挑战性的和深谋远虑的环境,使NVIDIA公司成为一个如此令人愉快的工作地点。
最后,我们感谢NVIDIA公司的所有的同事,感谢他们一天天推进计算机图形学的发展,他们的努力使这一项目成为可能。
Matt Pharr,NVIDIA公司
Randima (Randy) Fernando,NVIDIA公司
无封面