作者 |
约翰·F.休斯 约翰·F. 休斯安德里斯·范·达姆摩根·麦奎尔戴维·F. 斯克拉詹姆斯·D. 福利史蒂文· K. 费纳科 |
丛书名 |
计算机科学丛书 |
出版社 |
机械工业出版社 |
ISBN |
9782105189595 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8054338 - 计算机图形学原理及实践(原书第3版)(基础篇)--------------------------- 本书是计算机图形学领域的著作,系统全面地介绍了计算机图形学领域的关键概念、算法、技术和应用。本书先介绍了如何创建二维和三维图像,接下来介绍了更为广泛的话题,包括图像表示和操纵、图像和信号处理、图像的缩放、纹理和纹理映射、交互技术、曲线分割、曲面分割、形状的隐式表示、网格、光、材料和散射、颜色、光传输、概率和蒙特卡洛集成、动画、空间数据结构、现代图形学硬件等内容。 ---------------------------8078191 - 计算机图形学原理及实践(原书第3版)(进阶篇)--------------------------- 本书是计算机图形学领域的经典著作,系统全面地介绍了计算机图形学领域的关键概念、算法、技术和应用。本书先介绍了如何创建二维和三维图像,接下来介绍了更为广泛的话题,包括图像表示和操纵、图像和信号处理、图像的缩放、纹理和纹理映射、交互技术、曲线分割、曲面分割、形状的隐式表示、网格、光、材料和散射、颜色、光传输、概率和蒙特卡洛集成、动画、空间数据结构、现代图形学硬件等内容。 |
目录 |
[套装书具体书目] 8054338 - 计算机图形学原理及实践(原书第3版)(基础篇) - 9787111611806 - 机械工业出版社 - 定价 99 8078191 - 计算机图形学原理及实践(原书第3版)(进阶篇) - 9787111670087 - 机械工业出版社 - 定价 149 ---------------------------8054338 - 计算机图形学原理及实践(原书第3版)(基础篇)--------------------------- 出版者的话 译者序 前言 作者简介 第1章 绪论1 1.1 计算机图形学简介1 1.1.1 计算机图形学的世界3 1.1.2 应用领域的现状与前景3 1.1.3 关于用户界面的思考5 1.2 简要历史6 1.3 一个光照的例子7 1.4 目标、资源和适度的抽象8 1.4.1 深度理解与常见的做法9 1.5 图形学中的常数和一些参数值的量级9 1.5.1 光能量和光子到达率9 1.5.2 显示器的特性和眼睛的分辨率10 1.5.3 数码相机的特性10 1.5.4 复杂应用的处理需求10 1.6 图形管线11 1.6.1 纹理映射与近似12 1.6.2 更为详细的图形管线13 1.7 图形学与艺术、设计、感知的关系14 1.8 基本图形系统16 1.8.1 图形数据16 1.9 视为黑盒的多边形绘制18 1.10 图形系统中的交互18 1.11 不同类型的图形应用18 1.12 不同类型的图形包19 1.13 构建真实感绘制模块:概述20 1.13.1 光线20 1.13.2 物体和材料21 1.13.3 接收来自场景中的光线22 1.13.4 图像显示22 1.13.5 人类视觉系统23 1.13.6 数学运算23 1.13.7 积分和采样24 1.14 学习计算机图形学24 第2章 2D图形学简介——基于WPF26 2.1 引言26 2.2 2D图形流水线概述26 2.3 2D图形平台的演变27 2.3.1 从整数坐标到浮点数坐标27 2.3.2 即时模式与保留模式29 2.3.3 过程语言与描述性语言30 2.4 使用WPF定义2D场景31 2.4.1 XAML应用程序结构31 2.4.2 采用抽象坐标系定义场景31 2.4.3 坐标系的选择范围33 2.4.4 WPF画布坐标系34 2.4.5 使用显示变换35 2.4.6 构造并使用模块化模板37 2.5 用WPF实现的2D图形动态显示42 2.5.1 基于描述性动画的动态显示42 2.5.2 基于过程代码的动态显示44 2.6 支持各种形状系数45 2.7 讨论和延伸阅读46 第3章 一个古老的绘制器47 3.1 一幅丢勒的木刻画47 3.2 可见性49 3.3 实现49 3.3.1 绘图52 3.4 程序55 3.5 局限性57 3.6 讨论和延伸阅读59 3.7 练习60 第4章 2D图形测试平台62 4.1 引言62 4.2 测试平台的细节63 4.2.1 使用2D测试平台63 4.2.2 割角63 4.2.3 基于测试平台的程序的结构64 4.3 C#代码68 4.3.1 坐标系70 4.3.2 WPF数据依赖71 4.3.3 事件处理71 4.3.4 其他几何物体73 4.4 动画73 4.5 交互74 4.6 测试平台的一个应用程序74 4.7 讨论77 4.8 练习77 第5章 人类视觉感知简介78 5.1 引言78 5.2 视觉系统79 5.3 眼睛82 5.3.1 眼睛的生理机能82 5.3.2 眼睛中的光感受器83 5.4 恒常性及其影响85 5.5 延续性87 5.6 阴影88 5.7 讨论和延伸阅读89 5.8 练习90 第6章 固定功能的3D图形平台和层次建模简介92 6.1 引言92 6.1.1 WPF 3D部分的设计92 6.1.2 对光与物体交互的物理过程的近似93 6.1.3 WPF 3D概述93 6.2 网格和光照属性94 6.2.1 场景设计94 6.2.2 生成更真实的光照98 6.2.3 固定功能绘制中的“光照”与“着色”101 6.3 曲面表示和绘制102 6.3.1 基于插值的着色处理(Gouraud着色)102 6.3.2 将表面设置为多面体表面和平滑表面104 6.4 WPF中的表面纹理105 6.4.1 基于分片拼接的纹理映射106 6.4.2 基于拉伸的纹理映射107 6.5 WPF反射模型107 6.5.1 颜色设置107 6.5.2 光源几何108 6.5.3 反射率108 6.6 基于场景图进行层次建模112 6.6.1 模块化建模的动因112 6.6.2 自顶向下的部件层次结构设计113 6.6.3 自下而上的构建和组合114 6.6.4 构件的重用118 6.7 讨论120 第7章 2D和3D空间中的基础数学与几何121 7.1 引言121 7.2 记号121 7.3 集合121 7.4 函数122 7.4.1 反正切函数123 7.5 坐标124 7.6 坐标运算124 7.6.1 向量126 7.6.2 如何理解向量127 7.6.3 向量长度127 7.6.4 向量运算127 7.6.5 矩阵乘法130 7.6.6 其他类型的向量131 7.6.7 隐式直线132 7.6.8 平面直线的隐式描述133 7.6.9 能否采用y=mx+b134 7.7 直线求交134 7.7.1 参数化参数化直线求交134 7.7.2 参数化隐式直线求交135 7.8 更一般的求交计算135 7.8.1 光线平面求交136 7.8.2 光线球求交137 7.9 三角形138 7.9.1 重心坐标138 7.9.2 空间三角形139 7.9.3 半平面和三角形140 7.10 多边形141 7.10.1 内/外测试141 7.10.2 非简单多边形的内部143 7.10.3 平面多边形的符号面积:分而治之143 7.10.4 空间多边形的法向量144 7.10.5 更一般多边形的符号面积145 7.10.6 倾斜原理145 7.10.7 重心坐标的模拟146 7.11 讨论147 7.12 ---------------------------8078191 - 计算机图形学原理及实践(原书第3版)(进阶篇)--------------------------- 出版者的话 译者序 前言 作者简介 第17章 图像表示与操作1 17.1 引言1 17.2 什么是图像1 17.2.1 一幅图像存储的信息2 17.3 图像文件格式2 17.3.1 选择图像格式3 17.4 图像合成4 17.4.1 图像合成中像素的含义5 17.4.2 计算U over V5 17.4.3 简化合成6 17.4.4 其他合成运算6 17.4.5 物理单位和合成7 17.5 其他图像类型7 17.5.1 术语8 17.6 MIP图8 17.7 讨论和延伸阅读9 17.8 练习10 第18章 图像和信号处理11 18.1 引言11 18.1.1 概述11 18.1.2 重要的术语、假设和概念13 18.2 历史动因14 18.3 卷积17 18.4 卷积的性质19 18.5 卷积的计算20 18.6 重建21 18.7 函数类21 18.8 采样22 18.9 数学考虑23 18.9.1 基于频率的合成与分析25 18.10 傅里叶变换的定义28 18.11 在一个区间上的函数的傅里叶变换28 18.11.1 采样和区间上的带宽限制30 18.12 推广到更大的区间和整个R上31 18.13 傅里叶变换的例子32 18.13.1 基本例子32 18.13.2 盒函数的变换是sinc函数32 18.13.3 区间上的例子34 18.14 采样的近似34 18.15 涉及极限的例子35 18.15.1 窄盒函数和delta函数35 18.15.2 梳子函数及其变换35 18.16 傅里叶逆变换36 18.17 傅里叶变换的性质36 18.18 应用37 18.18.1 带宽限制37 18.18.2 在频谱中解释复制39 18.19 重建和带宽限制40 18.20 再谈走样43 18.21 讨论和延伸阅读44 18.22 练习47第19章 图像缩放48 19.1 引言48 19.2 图像放大49 19.3 图像缩小51 19.4 算法实用化52 19.5 有限支撑近似54 19.5.1 实用的带限函数56 19.6 其他图像操作和效率56 19.7 讨论和延伸阅读58 19.8 练习59 第20章 纹理与纹理映射60 20.1 引言60 20.2 各种纹理映射61 20.2.1 环境映射62 20.2.2 凹凸映射62 20.2.3 轮廓绘制63 20.3 根据参数化构建切向量64 20.4 纹理图的取值范围65 20.5 确定纹理坐标66 20.6 应用实例69 20.7 采样、走样、滤波以及重构69 20.8 纹理合成71 20.8.1 基于傅里叶变换的纹理合成71 20.8.2 Perlin噪声71 20.8.3 反应扩散纹理73 20.9 数据驱动的纹理合成74 20.10 讨论和延伸阅读76 20.11 练习77第21章 交互技术79 21.1 引言79 21.2 用户界面与计算机图形学79 21.2.1 一般规则82 21.2.2 交互事件处理84 21.3 二维操作的多触点交互85 21.3.1 问题定义86 21.3.2 构建程序86 21.3.3 交互器87 21.4 三维空间中基于鼠标的物体操作90 21.4.1 跟踪球界面90 21.4.2 弧球界面93 21.5 基于鼠标的相机操作:Unicam94 21.5.1 平移94 21.5.2 旋转95 21.5.3 附加操作96 21.5.4 评估96 21.6 选择最佳界面96 21.7 一些界面实例96 21.7.1 第一人称射击游戏控制96 21.7.2 3ds Max变换小工具97 21.7.3 Photoshop的自由变换模式97 21.7.4 Chateau98 21.7.5 Teddy99 21.7.6 Grabcut与通过笔画的选择99 21.8 讨论和延伸阅读100 21.9 练习102 第22章 样条曲线和细分曲线104 22.1 引言104 22.2 基本多项式曲线104 22.3 两条曲线间的拟合曲线段:Hermite曲线104 22.3.1 Bézier曲线106 22.4 曲线拼接与CatmullRom样条107 22.4.1 CatmullRom样条的推广109 22.4.2 CatmullRom样条的应用110 22.5 三次B样条110 22.5.1 其他B样条111 22.6 细分曲线112 22.7 讨论和延伸阅读113 22.8 练习113 第23章 样条曲面和细分曲面114 23.1 引言114 23.2 Bézier曲面片114 23.3 CatmullClark细分曲面116 23.4 细分曲面造型119 23.5 讨论和延伸阅读120 第24章 形状的隐式表示121 24.1 引言121 24.2 隐式曲线121 24.3 隐式曲面124 24.4 表示隐函数125 24.4.1 插值方法125 24.4.2 样条曲线126 24.4.3 数学模型及采样隐式表示127 24.5 隐式函数的其他表示127 24.6 转换成多面体网格128 24.6.1 移动立方体131 24.7 多面体网格到隐式表示的转换132 24.8 纹理隐式模型132 24.8.1 模型变换和纹理132 24.9 光线跟踪隐式曲面133 24.10 动画中的隐式形状133 24.11 讨论和延伸阅读134 24.12 练习135 第25章 网格136 25.1 引言136 25.2 网格拓扑137 25.2.1 表面三角化和有边界表面138 25.2.2 计算和存储邻接关系139 25.2.3 更多网格术语141 25.2.4 网格嵌入和网格拓扑142 25.3 网格几何143 25.3.1 网格含义144 25.4 细节层次145 25.4.1 渐进式网格148 25.4.2 其他网格简化途径151 25.5 网格应用1:移动立方体算法、网格修复、网格优化151 25.5.1 移动立方体算法的变化形式151 25.5.2 网格修复153 25.5.3 差分或拉普拉斯坐标系154 25.5.4 拉普拉斯坐标的应用156 25.6 网格应用2:变形传递和三角形排序优化158 25.6.1 变形传递158 25.6.2 有利于提高硬件效率的三角形重排序161 25.7 讨论和延伸阅读163 25.8 练习164 第26章 光165 26.1 引言165 26.2 光的物理学原理165 26.3 微观角度166 26.4 光的波动性169 26.4.1 衍射170 26.4.2 偏振171 26.4.3 光在界面的偏折172 26.5 菲涅耳定律和偏振174 26.5.1 辐射度计算与非偏振形式的菲涅耳方程175 26.6 将光建模为连续流176 26.6.1 概率密度的简单介绍177 26.6.2 进一步对光进行建模178 26.6.3 角度和立体角178 26.6.4 计算立体角180 26.6.5 一个重要的变量置换182 26.7 对光的度量184 26.7.1 辐射术语185 26.7.2 辐射度185 26.7.3 两个辐射度计算的例子186 26.7.4 辐射照度187 26.7.5 辐射出射度189 26.7.6 辐射功率或辐射通量189 26.8 其他度量190 26.9 导数的方法190 26.10 反射率191 26.10.1 相关项193 26.10.2 镜子、玻璃、互易性和BRDF194 26.10.3 L的不同写法195 26.11 讨论和延伸阅读195 26.12 练习196 第27章 材质和散射198 27.1 引言198 27.2 物体级散射198 27.3 表面散射199 27.3.1 脉冲现象199 27.3.2 散射模型的种类199 27.3.3 散射的物理约束200 27.4 散射类型200 27.5 基于经验和现象的散射模型204 27.5.1 镜面“散射”204 27.5.2 朗伯反射204 27.5.3 Phong和BlinnPhong模型206 27.5.4 Lafortune模型208 27.5.5 采样209 27.6 基于测量的模型209 27.7 镜面反射和漫反射的物理模型210 27.8 基于物理的散射模型210 27.8.1 重谈菲涅耳方程组211 27.8.2 TorranceSparrow模型212 27.8.3 CookTorrance模型214 27.8.4 OrenNayar模型215 27.8.5 波动理论模型216 27.9 表达形式的选择216 27.10 评估标准217 27.11 沿表面的变化217 27.12 对用户的适用性218 27.13 更复杂的散射218 27.13.1 参与介质218 27.13.2 次表面散射220 27.14 材质模型的软件接口221 27.15 讨论和延伸阅读222 27.16 练习223 第28章 颜色225 28.1 引言225 28.1.1 颜色的含义225 28.2 光的光谱分布226 28.3 颜色感知现象和眼睛生理学227 28.4 颜色的感知229 28.4.1 亮度感知229 28.5 颜色描述233 28.6 关于颜色的传统认识235 28.6.1 原色235 28.6.2 紫色并不是真正的颜色236 28.6.3 物体具有颜色,在白光下即可看出236 28.6.4 蓝色和绿色合成青色237 28.6.5 颜色就是RGB237 28.7 颜色感知的长处和短处237 28.8 标准的颜色描述238 28.8.1 CIE颜色描述238 28.8.2 色度图的应用241 28.9 感知颜色空间242 28.9.1 其他242 28.10 阶段小结243 28.11 白色244 28.12 亮度编码、幂指数以及γ矫正244 28.13 描述颜色245 28.13.1 RGB颜色模型246 28.14 CMY和CMYK颜色模型248 28.15 YIQ颜色模型248 28.16 视频标准249 28.17 HSV和HLS250 28.17.1 颜色选择250 28.17.2 调色板250 28.18 颜色插值251 28.19 计算机图形学中对颜色的使用252 28.20 讨论和延伸阅读253 28.21 练习253 第29章 光线传播255 29.1 引言255 29.2 光线传播概述255 29.2.1 绘制方程(第一种类型)257 29.3 略做前瞻258 29.4 一般散射的绘制方程260 29.4.1 度量方程261 29.5 再谈散射262 29.6 实例263 29.7 求解绘制方程265 29.8 光线传播路径分类265 29.8.1 引人注目的视觉现象和光线传播266 29.9 讨论268 29.10 练习268 第30章 概率和蒙特卡罗积分269 30.1 引言269 30.2 数值积分269 30.3 随机变量和随机算法270 30.3.1 离散概率及其与计算机程序的联系270 30.3.2 期望值272 30.3.3 数学期望的性质和相关术语273 30.3.4 连续型概率274 30.3.5 概率密度函数276 30.3.6 球面域上的应用278 30.3.7 一个简单的例子279 30.3.8 在光线散射中的应用279 30.4 再谈连续型概率280 30.5 重要性采样和积分283 30.6 混合概率284 30.7 讨论和延伸阅读285 30.8 练习285 第31章 解绘制方程:理论方法288 31.1 引言288 31.2 方程的近似求解法288 31.3 方法1:构建近似方程288 31.4 方法2:限制定义域289 31.5 方法3:采用统计方法估计290 31.5.1 通过采样和估计求级数的和290 31.6 方法4:二分法292 31.7 其他方法293 31.8 再谈绘制方程293 31.8.1 关于符号295 31.9 我们需要计算什么296 31.10 离散化方法:辐射度算法298 31.11 对光线传播路径进行分离303 31.12 绘制方程的级数解304 31.13 光线传播的其他表述方式305 31.14 级数解的近似值306 31.15 对散射的近似:球面调和函数307 31.16 蒙特卡罗方法入门309 31.17 路径跟踪313 31.18 路径跟踪和马尔可夫链314 31.18.1 马尔可夫链方法314 31.18.2 递归法318 31.18.3 建立一个路径跟踪器320 31.18.4 多种重要性采样324 31.18.5 双向路径跟踪325 31.18.6 中心光线传播算法326 31.19 光子映射327 31.19.1 图像空间的光子映射算法330 31.20 讨论和延伸阅读331 31.21 练习333 第32章 绘制实践334 32.1 引言334 32.2 表示法334 32.3 曲面表示及BSDF的局部表示方法334 32.3.1 镜面和点光源338 32.4 光的表示方法339 32.4.1 光源的表示方法339 32.5 基本的路径跟踪器340 32.5.1 预备知识341 32.5.2 路径跟踪器的代码343 32.5.3 结果与讨论351 32.6 光子映射353 32.6.1 结果与讨论359 36.6.2 对光子映射的进一步讨论361 32.7 泛化362 32.8 绘制与调试363 32.9 讨论和延伸阅读366 32.10 练习370 第33章 着色器373 33.1 引言373 33.2 不同形式的图形管线373 33.3 发展历史374 33.4 一个包含着色器的简单图形程序377 33.5 Phong着色器381 33.6 环境映射382 33.7 两个版本的卡通着色器384 33.8 基本的XToon着色385 33.9 讨论和延伸阅读387 33.10 练习387 第34章 表意式绘制388 34.1 引言388 34.1.1 表意式绘制的例子390 34.1.2 本章结构390 34.2 表意式绘制的挑战391 34.3 标记和笔画392 34.4 感知与显著特征393 34.5 几何曲线提取394 34.5.1 脊点与谷点398 34.5.2 示意轮廓399 34.5.3 明显脊线400 34.5.4 非几何特征401 34.6 抽象401 34.7 讨论和延伸阅读402 第35章 运动405 35.1 引言405 35.2 导引例子407 35.2.1 行人(关键姿势)407 35.2.2 开炮(仿真)410 35.2.3 走廊导航(运动规划)412 35.2.4 符号413 35.3 绘制的考虑415 35.3.1 双缓存技术415 35.3.2 运动感知415 35.3.3 隔行扫描417 35.3.4 时序走样和运动模糊418 35.3.5 利用时间连贯性421 35.3.6 第一帧问题422 35.3.7 时间连贯性带来的负担422 35.4 运动表示424 35.4.1 物体425 35.4.2 限制自由度426 35.4.3 关键姿势426 35.4.4 动力学426 35.4.5 过程动画427 35.4.6 混合控制模式427 35.5 姿势插值430 35.5.1 顶点动画430 35.5.2 根坐标系运动430 35.5.3 关节物体431 35.5.4 骨架动画432 35.6 动力学433 35.6.1 粒子433 35.6.2 微分方程公式434 35.6.3 分段常量近似435 35.6.4 常见的力的模型436 35.6.5 粒子碰撞443 35.6.6 动力学微分方程446 35.6.7 求解常微分方程的数值方法450 35.7 动力学求解的稳定性453 35.8 讨论454 第36章 可见性判定455 36.1 引言455 36.1.1 可见性函数456 36.1.2 基本可见性459 36.1.3 (二值)覆盖459 36.1.4 目前的实践和动机460 36.2 光线投射460 36.2.1 BSP光线多边形求交461 36.2.2 光线测试的并行度评估463 36.3 深度缓存464 36.3.1 通用深度缓存编码467 36.4 列表优先级算法469 36.4.1 画家算法470 36.4.2 深度排序算法471 36.4.3 聚类和BSP排序471 36.5 视域剔除和裁剪472 36.5.1 视域剔除472 36.5.2 裁剪473 36.5.3 全视域体裁剪474 36.6 背面剔除475 36.7 层次遮挡剔除476 36.8 基于分区的保守可见性477 36.8.1 穿刺树478 36.8.2 入口和镜子479 36.9 部分覆盖480 36.9.1 空间反走样(xy)481 36.9.2 散焦(uv)485 36.9.3 运动模糊(t)486 36.9.4 覆盖作为材质属性(α)487 36.10 讨论和延伸阅读487 36.11 练习488 第37章 空间数据结构489 37.1 引言489 37.1.1 动因举例490 37.2 程序界面491 37.2.1 求交方法492 37.2.2 提取关键字和包围体495 37.3 数据结构的特征分析499 37.3.1 一维链表举例499 37.3.2 一维树举例500 37.4 多维数据结构概述501 37.5 列表502 37.6 树504 37.6.1 二叉空间剖分树505 37.6.2 构建BSP树:八叉树、四叉树、BSP树、kd树509 37.6.3 包围体层次结构512 37.7 网格513 37.7.1 构造513 37.7.2 光线求交515 37.7.3 选择网格分辨率518 37.8 讨论和延伸阅读520 第38章 现代图形硬件522 38.1 引言522 38.2 NVIDIA GeForce 9800 GTX 523 38.3 体系结构与实现525 38.3.1 GPU体系结构526 38.3.2 GPU实现528 38.4 并行化528 38.5 可编程性531 38.6 纹理、内存和时延533 38.6.1 纹理映射534 38.6.2 内存基础537 38.6.3 应对时延539 38.7 局部性541 38.7.1 访问的局部性541 38.7.2 高速缓存543 38.7.3 分歧545 38.8 其他组织方案548 38.8.1 延迟着色548 38.8.2 分片绘制549 38.8.3 Larrabee:GPU和CPU的混合体551 38.9 GPU作为计算引擎553 38.10 讨论和延伸阅读554 38.11 练习554 参考文献 参考文献为网络资源,请访问华章网站www.hzbook.com下载。——编辑注 |