第一图书网

交互式计算机图形学

Edward Angel,Dave Shreiner 电子工业出版社
出版时间:

2012-5  

出版社:

电子工业出版社  

作者:

Edward Angel,Dave Shreiner  

页数:

493  

字数:

903000  

Tag标签:

无  

前言

  第六版新增内容  ●全书使用基于着色器的新版本OpenGL  ●不再使用在OpenGL 3.1中所弃用的OpenGL函数  ●在OpenGL应用程序代码和着色器中均增加了实现变换和观察的细节描述  ●保持与penGL ES 2.0和WebGL的一致性  ●用C++代替了C  ●增加了向量类和矩阵类以创建与OpenGL着色语言(GLSL)兼容的应用程序代码  ●讨论了基于顶点的光照计算和基于片元的光照计算  ●增加了多边形的三角细分和Delaunay三角剖分  ●介绍了体绘制  ●重新编写了所有示例程序的代码以适合OpenGL 3.1  ●增加了新合著者,《OpenGL编程指南》的作者Dave Shreiner  本书是计算机图形学的入门教材,重点介绍应用程序的编写。本书于1997年首次出版,第一版在使用标准图形库和自顶向下的方法上多多少少是一场革命。在接下来的13年中,发行了5个版本,大多数计算机图形学概论课以及几乎所有的教科书都采用了本书的方法。  在过去的几年中,图形硬件的重大变化已经导致了图形软件的重大变化。在OpenGL的前15年,新版本的发布一直保持向后兼容,基础软件的升级使代码的可重用能力成为重要的优点,应用软件的开发者和图形学课程的教师都在受益。从所公布的OpenGL 3.0重大变化来看,其中一个关键的变化是从OpenGL 3.1开始,许多先前版本中最常见的函数将被废弃。相对于先前版本的这一根本变化反映出需要使用最新的可编程图形处理单元(GPU)的功能变化,这些变化也是OpenGL ES 2.0和WebGL的一部分,OpenGL ES 2.0用于开发手机和图形输入板等移动终端设备的应用软件,而WebGL支持大多数最新的浏览器。  就像本书以前5个版本的作者(Edward Angel)以及《OpenGL编程指南》和《OpenGL ES 2.0编程指南》的作者(Dave Shreiner)一样,我们面临着如何反映这些变化的难题。我们撰写了多部书籍并在ACM SIGGRAPH中多年从事OpenGL导论课程的教学,我们发现在高等教育界或高端游戏领域之外的应用程序编程人员,几乎没有人了解这些变化,知道这些变化的人并不认为我们可以在初级层次教会这些概念。

内容概要

《交互式计算机图形学——基于OpenGL着色器的自顶向下方法(第6版)
》采用自顶向下的方法并辅以面向编程的方式,基于现代可编程GPU的着色器编程,使用C++语言、OpenGL着色语言(GLSL)并结合OpenGL系统地介绍了现代计算机图形学的核心概念、原理和方法。《交互式计算机图形学——
基于OpenGL着色器的自顶向下方法(第6版)》是作者(安杰尔)多年来教学与科研工作的总结,涵盖了基于OpenGL着色器的交互式图形编程、三维可编程绘制流水线、变换与观察、光照与明暗绘制、曲线曲面建模等基本的计算机图形学内容以及离散技术、层级建模、过程建模、光线跟踪、并行绘制和体绘制等高级内容,并为读者进一步深入学习和研究,在每章后面提供了相关的建议阅读资料。
本书第六版进一步反映了计算机图形学的最新发展现状,面向图形应用开发并辅以大量的示例和完整的源代码,是一本“基础性与先进性、理论性与应用性、科学性与通俗性”相结合的内容全面而又系统的国外经典计算机图形学教材。

作者简介

作者:(美国)爱德华•安杰尔 (Edward Angel) (美国)戴夫•斯赖纳 (Dave Shreiner) 译者:张荣华 宋雨 刘书刚 等

书籍目录

第1章 图形系统和模型
1.1 计算机图形学的应用
1.2 图形系统
1.3 物理图像与合成图像
1.4 成像系统
1.5 虚拟照相机模型
1.6 应用程序编程接口
1.7 图形绘制系统的体系结构
1.8 可编程流水线
1.9 性能特征
小结和注释
建议阅读资料
习题
第2章 图形学编程
2.1 Sierpiki镂垫
2.2 编写二维图形应用程序
2.3 OpenGL应用程序编程接口
2.4 图元和属性
2.5 颜色
2.6 观察
2.7 控制函数
2.8 Sierpiki镂垫绘制程序
2.9 多边形和递归
2.10 三维Sierpiki镂垫
2.11 增加交互性
2.12 菜单
小结和注释
建议阅读资料
习题
第3章 几何对象和变换
3.1 标量、点和向量
3.2 三维图元
3.3 坐标系和标架
3.4 OpenGL中的标架
3.5 矩阵和向量类
3.6 建模一个彩色立方体
3.7 仿射变换
3.8 平移、旋转和缩放
3.9 变换的齐次坐标表示
3.10 变换的级联
3.11 OpenGL变换矩阵
3.12 使立方体旋转起来
3.13 三维应用程序的接口
3.14 四元数
小结和注释
建议阅读资料
习题
第4章 观察
4.1 经典观察和计算机观察
4.2 计算机观察
4.3 定位照相机
4.4 平行投影
4.5 透视投影
4.6 OpenGL中的透视投影
4.7 透视投影变换矩阵
4.8 隐藏面消除
4.9 显示网格
4.10 投影和阴影
小结和注释
建议阅读资料
习题
第5章 光照和明暗绘制
5.1 光线和材质
5.2 光源
5.3 Phong反射模型
5.4 计算向量
5.5 多边形的明暗绘制
5.6 通过递归细分逼近球面
5.7 指定光照参数
5.8 实现光照模型
5.9 球面模型的明暗绘制
5.10 基于每个片元的光照计算
5.11 全局光照
小结和注释
建议阅读资料
习题
第6章 从顶点到片元
6.1 图形绘制流水线的基本实现策略
6.2 图形绘制系统的四个主要任务
6.3 裁剪
6.4 线段的裁剪
6.5 多边形的裁剪
6.6 其他图元的裁剪
6.7 三维裁剪
6.8 光栅化
6.9 Bresenham算法
6.10 多边形光栅化算法
6.11 隐藏面消除
6.12 反走样
6.13 显示方面的问题
小结和注释
建议阅读资料
习题
第7章 离散技术
7.1 缓存
7.2 数字图像
7.3 缓存的写操作
7.4 映射方法
7.5 纹理映射
7.6 OpenGL的纹理映射
7.7 纹理生成
7.8 环境贴图
7.9 反射贴图示例程序
7.10 凹凸映射
7.11 合成技术
7.12 采样与走样
小结和注释
建议阅读资料
习题
第8章 层级建模方法
8.1 图符和实例
8.2 层级模型
8.3 机器人手臂
8.4 树与树的遍历
8.5 使用树形数据结构
8.6 动画
8.7 图形对象
8.8 场景图
8.9 开放场景图
8.10 图形和因特网
8.11 其他树形结构
小结和注释
建议阅读资料
习题
第9章 过程建模方法
9.1 基于算法的建模
9.2 基于物理的建模和粒子系统
9.3 牛顿粒子
9.4 求解粒子系统方程
9.5 约束条件
9.6 一个简单的粒子系统
9.7 基于语言的建模
9.8 递归方法和分形
9.9 过程噪声
小结和注释
建议阅读资料
习题
第10章 曲线和曲面
10.1 曲线和曲面的表示形式
10.2 设计准则
10.3 三次参数多项式曲线
10.4 插值
10.5 Hermite曲线和曲面
10.6 Bézier曲线和曲面
10.7 三次B样条
10.8 普通B样条
10.9 曲线和曲面的绘制
10.10 Utah茶壶模型
10.11 代数曲面
10.12 曲线和曲面的细分
10.13 从数据生成网格
小结和注释
建议阅读资料
习题
第11章 高级绘制
11.1 超越流水线绘制结构
11.2 光线跟踪
11.3 构建一个简单的光线跟踪器
11.4 绘制方程
11.5 辐射度方法
11.6 RenderMan
11.7 并行绘制
11.8 体绘制
11.9 等值面与步进立方体
11.10 网格简化
11.11 直接体绘制
11.12 基于图像的绘制
小结和注释
建议阅读资料
习题
附录A 示例程序
A.1 着色器初始化函数
A.2 Sierpiki镂垫程序
A.3 递归实现Sierpiki镂垫程序
A.4 在着色器中实现立方体的旋转
A.5 透视投影
A.6 旋转着色的立方体
A.7 对球面模型执行基于每个片元的光照计算
A.8 带纹理的立方体旋转程序
A.9 基于树形结构的机器人绘制程序
A.10 茶壶绘制程序
附录B 空间
B.1 标量
B.2 向量空间
B.3 仿射空间
B.4 Euclid空间
B.5 投影
B.6 GRAM?SCHMIDT正交化
建议阅读资料
习题
附录C 矩阵
C.1 定义
C.2 矩阵的运算
C.3 行矩阵和列矩阵
C.4 秩
C.5 表示的变换
C.6 叉积
C.7 特征值和特征向量
C.8 向量和矩阵类
建议阅读资料
习题
附录D OpenGL函数一览
D.1 初始化和窗口函数
D.2 顶点缓冲区对象
D.3 交互函数
D.4 属性设置和功能开启函数
D.5 纹理和图像函数
D.6 状态和缓存操作函数
D.7 查询函数
D.8 GLSL函数
参考文献

章节摘录

版权页:插图:1.2.7 输入模式计算机图形学除了具有各种不同类型的输入设备这个特征外,各种设备给应用程序提供输入的方式比只使用键盘的简单c和C++程序要多得多。物理和逻辑输入设备向应用程序提供输入的方式可以从两个方面来描述:测量过程和设备触发器。一个设备的测量(measure)是这个设备返回给用户程序的数据。设备的触发器(trigger)是用户向这个设备提供的一个物理输入,通过它用户能够给计算机传送触发信号。例如,键盘的测量数据应该包含一个字符串,触发器可以是Re-turn或者Enter键。对于定位设备,测量数据包含定位设备的位置,相应的触发器可以是定位设备上的一个按钮。我们可以通过三种不同的模式获得一个设备的测量数据,每种模式都是由测量过程和触发器之间的关系来定义的。测量过程一旦开始,输入设备就会获取测量数据并把它存储在一个缓存、中,即使应用程序可能还不能访问该缓存中的内容。例如,不管应用程序是否需要鼠标输入,窗口系统总是连续不断地跟踪鼠标的位置。在请求模式(requestmode)下,除非设备被触发,否则设备的测量数据不会返回给程序。请求模式在非图形应用程序中是标准的输入模式。这种模式是非图形应用程序使用的标准输入模式。例如,如果一个典型的c程序需要字符输人,使用像scanf这样的函数。当程序需要输人时,它在执行到scanf语句时暂停并且等待,直到在终端上键人字符。可以通过退格来更正所键人的字符,并且可以花费任意长的时间来键人字符。数据存储在一个键盘缓存中,只有当我们按下一个特定的键,比如Enter键(触发器),这个缓存中的内容才会返回给我们的程序。对于像定位设备这样的逻辑设备,可以把指向设备移到所需的位置上,然后用它的按钮触发它,这个触发会让应用程序获得定位设备的位置。在采样模式(samplemode)下,输人是即时的。只要在用户程序中遇到了函数调用,就把测量数据返回给程序,因此不需要触发器。在采样模式中,用户必须在函数调用之前就把定位设备放置好或者用键盘把数据输入完毕,因为缓存中的测量数据会立即返回给应用程序。在支持请求模式和采样模式的API中,这两种模式的输人有一个共同特征就是用户必须识别出提供输入的那个设备。因此,除了指定的这个输人设备以外,我们忽略其他任何输入设备提供的任何其他信息。请求模式和采样模式对于通过程序来引导用户的情形都是有用的,但对于用户控制程序流程的情形就不是很有用了。例如,飞行模拟器或者计算机游戏可能有多个输入设备,比如操纵杆、刻度盘、按钮和开关,等等,我们在任何时刻都可以使用其中的大多数设备。要编写控制飞行模拟器的程序,只利用采样模式和请求模式输入几乎是不可能的,因为我们不知道在仿真过程中的某个时刻飞行员会使用什么设备。更一般地,在现代计算环境中可能出现的人机交互有多种多样,要处理这些交互方式,光有采样输入模式和请求输入模式是不够的。


编辑推荐

《交互式计算机图形学:基于OpenGL着色器的自顶向下方法(第6版)》第六版进一步反映了计算机图形学的最新发展现状,面向图形应用开发并辅以大量的示例和完整的源代码,是一本“基础性与先进性、理论性与应用性、科学性与通俗性”相结合的内容全面而又系统的国外经典计算机图形学教材。《交互式计算机图形学:基于OpenGL着色器的自顶向下方法(第6版)》既可作为有一定C++编程基础的计算机及相关专业高年级本科生或研究生的计算机图形学教材,也适合于作为相关技术人员的参考书。

图书封面

图书标签Tags

广告

下载页面


交互式计算机图形学 PDF格式下载



图形学巨作!


导师推荐的这本书,书不厚,更多讲的是原理和方法,感觉不错!


这本书上课在用,是英文版的,因此买了中文版的。


挺不错的教材,是正品


不错吧。。


发货速度一流,服务态度良好。


很不错,这样的书市面上很少


概览了一下,写的还是比较细致的


还好。。是本不错的书


打心底里好,详尽,适合初学者


很好,给家人买的!


就是价钱稍微有点贵!(哎,其实不如从图书馆借了看)


该版与第五版改动较大,程序采用opengl的新特性----shade,基于opengl着色器编程,结构清晰,易于理解


算一本好书,但不如前面那本计算机图形学。


《计算机图形学》的上课教材,很不错~


内容比较基础,学习中


书都没有封着 也不知道是新的还是旧的


参考手册


介绍图形学还比较可以,但OpenGL在图形学上的应用都属于低层次的。


送来的书不是很新,后边有一部分还是皱的


正在看,感觉要看挺久的样子


A1.1 中 buf[size] = ' '; 我按照书上说的来写完全跑不了,在网上查了好多相关例子,发现应该是buf[size] = '\0',后来我在从作者网站下载下来的代码里发现也是 buf[size] = ' \0'; ------是印刷错误还是怎么的? ------我才刚开始看呢,不知道后面还有没有类似的...很郁闷。


非常棒,介绍的非常详细,而且较为易懂(虽然我更喜欢幽默的语言)。


挺满意的一本书,能学到很多东西


opengl许多特性讲的不详细,算法讲的还可以,就基于OpenGL参考书来说的话,超级宝典5、6更好


这本书应该就是我要找的书


书质量不错,而且是大特价的时候买的,是我们学校的专业教材


相关图书