出版时间:2010-7 出版社:电子工业 作者:(美)赫恩//巴克|译者:蔡士杰//宋继强//蔡敏 页数:702
Tag标签:无
前言
计算机图形学是一种最令人兴奋的且发展最快的现代技术。自从本书第一版面市以来,计算机图形已成为一般的应用软件和计算机系统的标准特点。计算机图形方法普遍地应用于许多产品的设计、培训模拟、音乐视频和电视广告产品、动画、数据分析、科学研究以及其他应用之中。各种应用领域所需的许多技术和硬件设备已经投入使用或正在开发之中。特别值得一提的是,当前计算机图形学研究中有许多与改善图片生成的效率和速度有关。为了生成一张自然景象的真实感视图,图形程序必须模拟实际的光照效果和物理对象的折射。因此,当前计算机图形学的趋势是将改进的物理原理的近似结合到图形算法中,从而更好地模拟物体和照明环境之间的复杂交互。第三版的特色本书第三版的内容来自于我们多年来开设的各种课程的要点,这些课程包括计算机图形学引论、高级计算机图形学、科学计算可视化、专题和项目课程。在撰写本书第一版时,许多图形学课程和应用仅处理二维方法,因而我们将二维和三维图形技术分开讨论。本书第一版的前一半内容讲述了二维计算机图形处理的基础概念,而在后面讨论三维方法。不过现在三维图形的应用非常普遍,并且许多主要的计算机图形学课程或者主要处理三维方法,或者较早地介绍三维图形;因此,第三版的主要特点是将二维和三维主题集成在一起。我们也扩充了许多相关主题,包括图形学当前的发展概况和新应用的讨论。本书第三版涵盖的内容有:图形系统当前的硬件和软件组成、分形几何、光线追踪、样条、光照模型、表面绘制、计算机动画、虚拟现实、图形算法的并行实现、反走样、超二次曲面、BSP树、粒子系统、基于物理的建模、科学计算可视化、辐射度、凹凸映射和变形;主要扩展的内容有:动画、对象表示、三维观察流水线、光照模型、表面绘制技术和纹理映射。第三版中另一有意义的改变是引入现在广泛应用并且多数计算机系统都具备的0penGL图形子程序。0penGL软件包为使用通用语言(如c和c++)进行编程以及创建计算机图形显示,提供了巨大的、有效的且设备无关的函数集合。0penGL的辅助库提供对需要设备交互的输入和输出操作以及其他的图形过程(如生成圆柱形状、球形对象和B样条的处理)。程序设计示例第三版中提供了20多个完整的C++程序示例,这些都是采用流行的0penGL软件包中的图形子程序库编写的。这些程序展示了基本构图技术、二维和三维几何变换、二维和三维观察方法、透视投影、样条生成、分形方法、交互鼠标输入、拾取操作、菜单和子菜单显示以及动画技术的应用。另外,书中还给出了100多个c++/0penGL程序段,用于展示裁剪、光照效果、表面绘制、纹理映射和许多其他计算机图形方法的算法实现。
内容概要
本书是一本内容丰富、取材新颖的计算机图形学著作,并在其前一版的基础上进行了全面扩充,增加了许多新的内容,覆盖了近年来计算机图形学的最新发展和成就。全书层次分明、重点突出,并附有使OpenGL编写的大量程序以及各种效果图,是一本难得的优秀教材。 本书共分为15章,全面系统地讲解了计算机图形学的基本概念和相关技术。作者首先对计算机图形学进行综述;然后讲解了二维图形的对象表示、算法及应用,三维图形的相关技术、建模和变换等;接着介绍了光照模型、颜色模型和动画技术。本书还新增了有关层次建模和图形文件格式的介绍,最后的附录给出了计算机图形学中用到的基本数学概念。 本书可作为信息技术等相关专业本科生和研究生的教材或参考书,也可作为计算机图形技术人员的参考资料。
作者简介
作者:(美国)赫恩(Donald Hearn) (美国)巴克(M.Pauline Baker) 译者:蔡士杰 宋继强 蔡敏 等 合著者:蔡士杰Donald Hearn,从1985年开始任教于伊利诺伊大学Urbana-Champmgn分校的计算机科学学院。Hewn博士担任过多门课程的教学工作,其中包括计算机图形学、科学计算可视化、计算科学、数学和应用科学等。他还指导过多个研究项目并在该领域发表了大量的学术论文。 M.Pauline Baker,印第安纳大学一普度大学计算机科学学院和信息学院的教授。Baker博士担任着可视化和交互空间渗透技术实验室主任一职,同时她也是一位杰出的科学家。Baker博士正在研究使用计算机图形和虚拟现实技术进行科学数据挖掘。在此之前,她还担任过伊利诺伊大学NCSA的可视化和虚拟环境实验室副主任。
书籍目录
第1章 计算机图形学综述 1.1 图和表 1.2 计算机辅助设计 1.3 虚拟现实环境 1.4 数据可视化 1.5 教学与培训 1.6 计算机艺术 1.7 娱乐 1.8 图像处理 1.9 图形用户界面 1.10 小结 参考文献 第2章 图形系统概述 2.1 视频显示设备 2.2 光栅扫描系统 2.3 图形工作站和观察系统 2.4 输入设备 2.5 硬拷贝设备 2.6 图形网络 2.7 因特网上的图形 2.8 图形软件 2.9 OpenGL简介 2.10 小结 参考文献 练习题 第3章 输出图元 3.1 坐标系统 3.2 OpenGL中指定二维世界坐标系统 3.3 OpenGL画点函数 3.4 OpenGL画线函数 3.5 画线算法 3.6 并行画线算法 3.7 帧缓存值的装载 3.8 OpenGL曲线函数 3.9 圆生成算法 3.10 椭圆生成算法 3.11 其他曲线 3.12 并行曲线算法 3.13 像素编址和对象的几何要素 3.14 填充区图元 3.15 多边形填充区 3.16 OpenGL多边形填充区函数 3.17 OpenGL顶点数组 3.18 像素阵列图元 3.19 OpenGL像素阵列函数 3.20 字符图元 3.21 OpenGL字符函数 3.22 图形分割 3.23 OpenGL显示列表 3.24 OpenGL显示窗口重定形函数 3.25 小结 示例程序 参考文献 练习题 第4章 图元的属性 4.1 OpenGL状态变量 4.2 颜色和灰度 4.3 OpenGL颜色函数 4.4 点的属性 4.5 线的属性 4.6 曲线属性 4.7 OpenGL点属性函数 4.8 OpenGL线属性函数 4.9 填充区属性 4.10 通用扫描线填充算法 4.11 凸多边形的扫描线填充 4.12 曲线边界区域的扫描线填充 4.13 不规则边界区域的填充方法 4.14 OpenGL填充区属性函数 4.15 字符属性 4.16 OpenGL字符属性函数 4.17 反走样 4.18 OpenGL反走样函数 4.19 OpenGL查询函数 4.20 OpenGL属性组 4.21 小结 参考文献 练习题 第5章 几何变换 5.1 基本的二维几何变换 5.2 矩阵表示和齐次坐标 5.3 逆变换 5.4 二维复合变换 5.5 其他二维变换 5.6 几何变换的光栅方法 5.7 OpenGL光栅变换 5.8 二维坐标系间的变换 5.9 三维空间的几何变换 5.10 三维平移 5.11 三维旋转 5.12 三维缩放 5.13 三维复合变换 5.14 其他三维变换 5.15 三维坐标系间的变换 5.16 仿射变换 5.17 OpenGL几何变换函数 5.18 小结 参考文献 练习题 第6章 二维观察 6.1 二维观察流水线 6.2 裁剪窗口 6.3 规范化和视口变换 6.4 OpenGL二维观察函数 6.5 裁剪算法 6.6 二维点裁剪 6.7 二维线裁剪 6.8 多边形填充区裁剪 6.9 曲线的裁剪 6.10 文字的裁剪 6.11 小结 参考文献 练习题 第7章 三维观察 7.1 三维观察概念综述 7.2 三维观察流水线 7.3 三维观察坐标系参数 7.4 世界坐标系到观察坐标系的变换 7.5 投影变换 7.6 正投影 7.7 斜投影 7.8 透视投影 7.9 视口变换和三维屏幕坐标系 7.10 OpenGL三维观察函数 7.11 三维裁剪算法 7.12 OpenGL任选裁剪平面 7.13 小结 参考文献 练习题 第8章 三维对象的表示 8.1 多面体 8.2 OpenGL多面体函数 8.3 曲面 8.4 二次曲面 8.5 超二次曲面 8.6 OpenGL二次曲面和三次曲面函数 8.7 柔性对象 8.8 样条表示 8.9 三次样条插值方法 8.10 Bezier样条曲线 8.11 Bezier曲面 8.12 B样条曲线 8.13 B样条曲面 8.14 beta样条 8.15 有理样条 8.16 样条表示之间的转换 8.17 样条曲线和曲面的显示 8.18 OpenGL的逼近样条函数 8.19 扫描表示法 8.20 结构实体几何法 8.21 八叉树 8.22 BSP树 8.23 分形几何方法 8.24 形状语法和其他过程方法 8.25 粒子系统 8.26 基于物理的方法 8.27 数据集可视化 8.28 小结 参考文献 练习题 第9章 可见面判别算法 9.1 可见面判别算法的分类 9.2 后向面判别 9.3 深度缓存算法 9.4 A缓存算法 9.5 扫描线算法 9.6 深度排序算法 9.7 BSP树算法 9.8 区域细分算法 9.9 八叉树算法 9.10 光线投射算法 9.11 可见性检测算法的比较 9.12 曲面 9.13 线框可见性算法 9.14 OpenGL可见性检查函数 9.15 小结 参考文献 练习题 第10章 光照模型与面绘制算法 10.1 光源 10.2 表面光照效果 10.3 基本光照模型 10.4 透明表面 10.5 雾气效果 10.6 阴影 10.7 照相机参数 10.8 光强度显示 10.9 半色调模式和抖动技术 10.10 多边形绘制算法 10.11 光线跟踪方法 10.12 辐射度光照模型 10.13 环境映射 10.14 光子映射 10.15 添加表面细节 10.16 用多边形模拟表面细节 10.17 纹理映射 10.18 凹凸映射 10.19 帧映射 10.20 OpenGL 光照和表面绘制函数 10.21 OpenGL纹理函数 10.22 小结 参考文献 练习题 第11章 图形用户界面和交互输入方法 11.1 图形数据的输入 11.2 输入设备的逻辑分类 11.3 图形数据的输入功能 11.4 交互式构图技术 11.5 虚拟现实环境 11.6 OpenGL支持交互式输入设备的函数 11.7 OpenGL的菜单功能 11.8 图形用户界面的设计 11.9 小结 参考文献 练习题 第12章 颜色模型和颜色应用 12.1 光的特性 12.2 颜色模型 12.3 标准基色和色度图 12.4 RGB颜色模型 12.5 YIQ颜色模型 12.6 CMY和CMYK颜色模型 12.7 HSV颜色模型 12.8 HLS颜色模型 12.9 颜色选择及其应用 12.10 小结 参考文献 练习题 第13章 计算机动画 13.1 计算机动画的光栅方法 13.2 动画序列的设计 13.3 传统动画技术 13.4 通用计算机动画功能 13.5 计算机动画语言 13.6 关键帧系统 13.7 运动的描述 13.8 关节链形体动画 13.9 周期性运动 13.10 OpenGL动画子程序 13.11 小结 参考文献 练习题 第14章 层次建模 14.1 基本建模概念 14.2 建模软件包 14.3 通用层次建模方法 14.4 使用OpenGL显示列表的层次建模 14.5 小结 参考文献 练习题 第15章 图形文件格式 15.1 图像文件结构 15.2 降色方法 15.3 文件压缩技术 15.4 主流文件格式的结构 15.5 小结 参考文献 练习题附录A 计算机图形学的数学基础 参考文献 索引
章节摘录
插图:电子束的强度受设置在控制栅极上的电压电平控制。控制栅极是一个金属圆筒,紧挨着阴极安装。若在控制栅极上加上较高的负电压,则将阻止电子活动从而截断电子束,使之停止从控制栅极末端的小孔通过。而在控制栅极上施以较低的负电压,则仅仅减少了通过的电子数量。由于荧光层发射光的强度依赖于轰击屏幕的电子数量,因此可以通过改变控制栅极的电压来控制显示的光强。我们使用图形软件命令来设定各个屏幕位置的亮度级,这将在第3章进行讨论。CRT的聚焦系统用来控制电子束在轰击荧光层时会聚到一个小点。否则,由于电子互相排斥,电子束在靠近屏幕时会散开。聚焦既可以用电场实现,也可以用磁场实现。对于静电聚焦,电子束通过如图2.3所示的带正电荷的金属圆筒,该圆筒形成一个静电透镜。静电透镜的作用是使电子束聚焦在屏幕的中心,正如光学透镜将光束聚焦在指定的焦距一样。类似透镜的聚焦效果,可以由环绕CRT封装外部安装的线圈所形成的磁场来完成。磁性聚焦透镜能在屏幕上产生最小尺寸的亮点。在高精度系统中,还使用附加的聚焦硬件,以保持电子束能聚焦到所有屏幕位置。因为多数CRT弯曲部分的直径大于从聚焦系统到屏幕中心的距离,所以电子束到屏幕不同点所经过的距离是不同的。因此,电子束只能在屏幕中心正确聚焦。当电子束移到屏幕边框时,所显示的图像会变得模糊。系统可按电子束的屏幕位置来调整聚焦,从而弥补这一缺陷。电子束的偏转受电场或磁场控制。CRT现在通常配备一个装在CRT封装外部的磁性偏转线圈,如图2.2 所示。使用两对线圈,将它们成对地安装在CRT封装的颈部,一对安装在颈部的顶部和底部,另一对设置在颈部两侧。每对线圈产生的磁场造成横向偏转力,该力正交于磁场方向,也垂直于电子束的行进方向。一对线圈实现水平偏转,另一对则实现垂直偏转。
编辑推荐
《计算机图形学(第3版)》的第三版介绍了设计、使用和理解计算机图形系统及其应用的基本原理,并且提供了一些OPENGL编程实例。书中详细讨论了图形系统的软件和硬件组成,并且将二维和三维图形的相关内容集成到一起。对于没有计算机图形学背景知识的读者,作者提供了有关的基础概念,描述了如何创建从简单的线条图到复杂的真实场景的图片。《计算机图形学(第3版)》主要包含的新特性:对OpenGL计算机图形核心编程库GLU及辅助库GLUT提供了完整和综合的解释;包含了100多个内容广泛的编程实例,展示了OpenGL函数的使用;提供了20多个完整的C++程序,给出了使用C++编写的实例;将三维和二维计算机图形方法的讨论结合在一起。
图书封面
图书标签Tags
无
评论、评分、阅读与下载