《计算机图形学》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)坎宁安(Cunningham,Steve)著;石教英,潘志庚等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:9787111241027
  • 页数:343 页
图书介绍:本书介绍计算机图形学的相关知识。

第0章 导论 1

0.1 视觉交流与计算机图形学 1

0.2 视觉交流的基本概念 2

0.2.1 使用合适的信息表示方式 2

0.2.2 图像应突出重点 2

0.2.3 使用合适的信息展示级别 2

0.2.4 采用合适的信息格式 3

0.2.5 注意图像显示的准确性 3

0.2.6 理解并尊重观众的文化背景 3

0.2.7 使交互成为用户熟悉的高效操作 4

0.3 三维几何和几何流水线 5

0.3.1 场景与视图 5

0.3.2 三维模型坐标系 5

0.3.3 三维世界坐标系 5

0.3.4 三维眼坐标系 6

0.3.5 投影 6

0.3.6 裁剪 7

0.3.7 选择透视投影或正交投影 7

0.3.8 二维眼坐标 8

0.3.9 二维屏幕坐标 8

0.4 外观属性 8

0.4.1 颜色 9

0.4.2 纹理 9

0.4.3 深度缓存 9

0.5 观察过程 9

0.6 图形卡 10

0.7 一个简单的OpenGL程序 10

0.7.1 OpenGL程序main()函数结构 15

0.7.2 模型空间 15

0.7.3 模型变换 15

0.7.4 三维世界空间 16

0.7.5 视图变换 16

0.7.6 三维眼空间 16

0.7.7 投影操作 16

0.7.8 二维眼空间 17

0.7.9 二维屏幕空间 17

0.7.10 科学问题编程 17

0.7.11 外观属性 17

0.7.12 从另一角度分析程序 17

0.8 OpenGL扩展 18

0.9 小结 19

0.10 本章的OpenGL术语表 19

0.11 思考题 20

0.12 练习题 21

0.13 实验题 21

第1章 视图变换和投影 22

1.1 简介 22

1.2 视图变换的基本模型 24

1.3 定义 24

1.3.1 建立视图环境 25

1.3.2 定义投影 25

1.3.3 视域体 26

1.3.4 正交投影 27

1.3.5 透视投影 27

1.3.6 透视投影的计算 28

1.3.7 视域体裁剪 29

1.3.8 定义窗口和视口 30

1.4 管理视图的其他方面 32

1.4.1 隐藏面 32

1.4.2 双缓存 33

1.5 立体视图 33

1.6 视图变换与视觉交流 34

1.7 在OpenGL中实现视图变换和投影 34

1.7.1 定义窗口和视口 35

1.7.2 改变窗口的形状 35

1.7.3 设置视图变换的环境 36

1.7.4 定义透视投影 37

1.7.5 定义正交投影 37

1.7.6 隐藏面的处理 37

1.7.7 设置双缓存 38

1.8 实现立体视图 38

1.9 小结 39

1.10 本章的OpenGL术语表 39

1.11 思考题 40

1.12 练习题 40

1.13 实验题 41

第2章 建模原理 43

2.1 简单几何建模 44

2.2 定义 44

2.3 例子 46

2.3.1 单点和多点 46

2.3.2 线段 46

2.3.3 线段序列 46

2.3.4 三角形 47

2.3.5 三角形序列 47

2.3.6 四边形 47

2.3.7 四边形序列 48

2.3.8 通用多边形 49

2.3.9 多面体 50

2.3.10 走样和反走样 50

2.3.11 法线 50

2.3.12 裁剪 51

2.3.13 建模的数据结构 52

2.3.14 曲面的建模 53

2.3.15 其他的图形对象源 54

2.3.16 建模行为 55

2.3.17 建议 55

2.4 变换和建模 55

2.5 定义 56

2.5.1 变换 56

2.5.2 复合变换 58

2.5.3 使用变换栈 59

2.5.4 编译几何体 60

2.6 一个例子 60

2.7 建议 62

2.8 建模视觉交流 62

2.9 认识形体的含义 62

2.10 维度 63

2.11 更高维度 65

2.12 图例和标签 66

2.13 精确度 67

2.14 场景图和建模图 67

2.15 场景图的概要 68

2.15.1 场景图中的裁剪 69

2.15.2 用场景图建模的例子 69

2.16 视图变换 71

2.17 场景图和深度测试 73

2.18 用建模图写代码 73

2.18.1 两个场景图的代码实例 75

2.18.2 使用标准的对象生成更加复杂的场景 77

2.19 小结 77

2.20 思考题 77

2.21 练习题 78

2.22 实验题 79

2.23 大型作业 80

第3章 在OpenGL中实现建模 81

3.1 指定几何体的OpenGL模型 81

3.1.1 点和多点模型 82

3.1.2 直线段 82

3.1.3 线段序列 83

3.1.4 封闭线段 83

3.1.5 三角形 83

3.1.6 三角形序列 83

3.1.7 四边形 84

3.1.8 四边形条带 85

3.1.9 普通多边形 85

3.1.10 顶点数组 86

3.1.11 反走样 86

3.1.12 将在很多例子中使用的立方体 86

3.1.13 定义裁剪平面 87

3.2 OpenGL工具中的附加对象 88

3.2.1 GLU二次曲面对象 88

3.2.2 GLU圆柱体 88

3.2.3 GLU圆盘 88

3.2.4 GLU球体 89

3.2.5 GLUT对象 89

3.2.6 例子 89

3.3 OpenGL中的变换 90

3.4 图例和标签 92

3.5 变换的代码实例 93

3.5.1 简单变换 93

3.5.2 变换栈 94

3.5.3 逆转视点变换 95

3.5.4 生成显示列表 96

3.6 到视点的距离 97

3.7 小结 97

3.8 本章的OpenGL术语表 98

3.9 思考题 100

3.10 练习题 100

3.11 实验题 101

3.12 大型作业 102

第4章 建模的数学基础 103

4.1 坐标系 103

4.2 四象限和八象限 104

4.3 点、直线和直线段 104

4.4 直线段、射线、参数化曲线和曲面 105

4.5 点到直线的距离 105

4.6 向量 105

4.7 向量点积和叉积 106

4.8 反射向量 107

4.9 变换 108

4.10 平面和半空间 109

4.11 点到平面的距离 110

4.12 多边形和凸面 110

4.13 多面体 111

4.14 极坐标、柱面坐标和球面坐标 111

4.15 碰撞检测 112

4.16 高维空间 114

4.17 小结 114

4.18 思考题 114

4.19 练习题 114

4.20 实验题 114

第5章 颜色及其混合 116

5.1 简介 116

5.2 原理 117

5.2.1 设置几何物体的颜色 117

5.2.2 RGB立方体 117

5.2.3 亮度和色弱 118

5.2.4 其他颜色模型 119

5.2.5 颜色深度 120

5.2.6 色谱 121

5.2.7 颜色混合与α通道 121

5.2.8 使用混合达到透明效果 122

5.2.9 索引颜色 122

5.3 颜色和视觉交流 123

5.3.1 强调色 123

5.3.2 背景色 123

5.3.3 自然色 124

5.3.4 伪彩色和颜色渐变 124

5.3.5 创建颜色渐变 124

5.3.6 颜色渐变的使用 125

5.3.7 比较形状和颜色编码 126

5.3.8 颜色的文化背景 126

5.4 例子 127

5.5 OpenGL中的颜色 128

5.5.1 颜色定义 128

5.5.2 使用混合 128

5.6 代码实例 129

5.6.1 带有全色谱的模型 129

5.6.2 HSV圆锥 129

5.6.3 HLS双圆锥 130

5.6.4 带半透明面的对象 131

5.6.5 索引颜色 131

5.6.6 OpenGL中的颜色渐变 132

5.7 小结 132

5.8 本章的OpenGL术语表 132

5.9 思考题 132

5.10 练习题 133

5.11 实验题 134

5.12 大型作业 134

第6章 光照处理和着色处理 135

6.1 光照处理 135

6.1.1 环境光、漫反射光和镜面反射光 136

6.1.2 表面法向 138

6.2 材质 139

6.3 光源属性 139

6.3.1 光源颜色 140

6.3.2 位置光 140

6.3.3 聚光灯 140

6.3.4 光线衰减 140

6.3.5 方向光 140

6.4 放置与移动光源 141

6.5 用光照实现特效 141

6.6 场景图中的光源 141

6.7 着色处理 141

6.8 在视觉交流中考虑着色处理 142

6.9 定义 142

6.10 Flat着色处理和平滑着色处理的例子 143

6.11 计算每个顶点的法向 144

6.11.1 平均多边形法向 144

6.11.2 法向的解析计算 144

6.12 其他着色处理模型 145

6.13 各向异性着色处理 146

6.14 全局光照 146

6.14.1 辐射度方法 147

6.14.2 光子映射 147

6.15 局部光照和OpenGL 148

6.15.1 指定和定义光源 148

6.15.2 选择性地使用光源 150

6.15.3 定义材质 150

6.15.4 使用GLU二次曲面物体 151

6.15.5 例子:把三原色光源应用于白色表面 151

6.15.6 示例代码 151

6.15.7 着色处理的例子 152

6.16 建议 154

6.17 小结 154

6.18 本章的OpenGL术语表 154

6.19 思考题 155

6.20 练习题 155

6.21 实验题 156

6.22 大型作业 157

第7章 事件和交互式编程 158

7.1 定义 158

7.2 事件的例子 159

7.3 交互的方式和方法 160

7.4 对象选择 161

7.5 交互和视觉交流 161

7.6 事件和场景图 162

7.7 建议 162

7.8 OpenGL中的事件 163

7.9 回调函数的注册 163

7.10 实现细节 165

7.11 代码实例 167

7.11.1 空闲事件回调函数 168

7.11.2 定时器事件回调函数 168

7.11.3 键盘回调函数 169

7.11.4 菜单回调函数 170

7.11.5 鼠标移动的鼠标回调函数 171

7.11.6 对象拾取的鼠标回调函数 171

7.12 拾取的实现细节 173

7.12.1 定义 173

7.12.2 拾取操作的实现方法 174

7.12.3 拾取矩阵 176

7.12.4 使用后颜色缓存做拾取 176

7.12.5 一个选择操作的例子 177

7.12.6 拾取小结 179

7.13 MUI工具 179

7.13.1 引言 179

7.13.2 应用MUI的功能 180

7.13.3 MUI用户界面对象 181

7.13.4 一个例子 183

7.14 在Windows系统中安装MUI 185

7.15 建议 185

7.16 小结 185

7.17 本章的OpenGL术语表 186

7.18 思考题 187

7.19 练习题 188

7.20 实验题 188

7.21 大型作业 189

第8章 纹理映射 190

8.1 简介 190

8.2 定义 191

8.2.1 1D纹理图 191

8.2.2 2D纹理图 191

8.2.3 3D纹理图 192

8.2.4 纹理坐标与空间坐标的对应关系 192

8.2.5 对象颜色与纹理图颜色的关系 192

8.2.6 纹理图的其他含义 192

8.2.7 场景图中的纹理映射 193

8.3 创建纹理图 193

8.3.1 从图像创建纹理图 193

8.3.2 人工生成纹理图 194

8.3.3 噪声函数生成纹理图 194

8.4 纹理图中的插值操作 195

8.5 纹理映射和布告板技术 196

8.6 纹理图中包含多个纹理 196

8.7 纹理反走样 196

8.8 MIP映射 197

8.9 多纹理 197

8.10 OpenGL中的纹理映射 198

8.10.1 顶点与纹理点相关 198

8.10.2 从屏幕获取纹理 199

8.10.3 纹理环境 199

8.10.4 纹理参数 200

8.10.5 获取及定义纹理图 201

8.10.6 纹理坐标控制 202

8.10.7 纹理插值 202

8.10.8 纹理映射和GLU四边形 203

8.10.9 多纹理 203

8.11 例子 203

8.11.1 使用Chromadepth过程 204

8.11.2 使用2D纹理图在表面中加入信息 204

8.11.3 环境纹理图 204

8.12 建议 205

8.13 代码实例 205

8.13.1 1D颜色渐变 205

8.13.2 2D纹理例子 206

8.13.3 环境纹理图 207

8.13.4 使用多纹理 207

8.14 小结 208

8.15 本章的OpenGL术语表 208

8.16 思考题 210

8.17 练习题 210

8.18 实验题 211

8.19 大型作业 212

第9章 图形在科学计算领域中的应用 213

9.1 简介 213

9.2 例子 215

9.3 扩散 215

9.3.1 长条材料中的温度 215

9.3.2 疾病的传播 217

9.4 函数作图和应用 218

9.5 参数曲线与曲面 219

9.6 极限处理结果的图形对象 222

9.7 标量场 223

9.8 物体和行为仿真 224

9.8.1 气体定律和扩散原理 225

9.8.2 分子显示 226

9.8.3 科学仪器 227

9.8.4 蒙特卡罗建模过程 227

9.9 四维作图 228

9.9.1 体数据 228

9.9.2 向量场 229

9.10 高维作图 230

9.11 数据驱动图形 231

9.12 代码实例 232

9.12.1 扩散 232

9.12.2 函数作图 233

9.12.3 参数曲线与曲面 234

9.12.4 极限处理 235

9.12.5 标量场 235

9.12.6 物体及行为的表示 235

9.12.7 分子显示 236

9.12.8 蒙特卡罗建模 237

9.12.9 四维作图 237

9.12.10 高维作图 238

9.13 小结 239

9.14 思考题 239

9.15 练习题 239

9.16 实验题 240

9.17 大型作业 240

第10章 绘制与绘制流水线 242

10.1 引言 242

10.2 流水线 242

10.3 光栅化处理 244

10.4 OpenGL的绘制流水线 248

10.4.1 绘制流水线中的纹理映射 249

10.4.2 逐片段操作 249

10.4.3 OpenGL与可编程着色器 250

10.4.4 图形卡绘制流水线实现的实例 251

10.5 图形卡的部分三维视图变换操作 251

10.6 小结 252

10.7 本章的OpenGL术语表 252

10.8 思考题 252

10.9 练习题 253

10.10 实验题 253

第11章 动力学和动画 254

11.1 一个例子 255

11.2 动画的分类 256

11.2.1 过程动画 256

11.2.2 场景图中的动画 256

11.2.3 插值动画 257

11.2.4 基于帧的动画 258

11.2.5 一个插值例子 259

11.3 动画中的一些问题 260

11.3.1 帧速率 260

11.3.2 时间走样 260

11.3.3 动画制作 261

11.4 动画和视觉交流 261

11.5 在静止帧中表示运动信息 262

11.5.1 运动轨迹法 262

11.5.2 运动模糊法 263

11.6 一些有趣的观看动画的设备 263

11.7 建议 265

11.8 OpenGL的动画例子 265

11.8.1 在模型中移动物体 265

11.8.2 控制动画的时间 266

11.8.3 移动模型的部件 266

11.8.4 移动视点或模型的观察标架 267

11.8.5 场景的纹理插值 268

11.8.6 改变模型的特征 268

11.8.7 生成轨迹 269

11.8.8 使用累积缓存 270

11.8.9 创建数字视频 271

11.9 用OpenGL制作动画时应注意的一些要点 272

11.10 建议 272

11.11 本章的OpenGL术语表 272

11.12 思考题 273

11.13 练习题 273

11.14 实验题 273

11.15 大型作业 274

第12章 高性能图形技术 276

12.1 定义 276

12.2 技术 277

12.3 建模技术 277

12.3.1 减少可见多边形数量 277

12.3.2 巧妙运用纹理 278

12.3.3 减少光照计算 278

12.3.4 细节层次 278

12.3.5 雾化 280

12.3.6 开始距离和结束距离 280

12.3.7 雾化模式 280

12.3.8 雾密度 281

12.3.9 雾色 281

12.4 绘制技术 282

12.4.1 不使用硬件 282

12.4.2 使用硬件 282

12.4.3 多边形剔除 282

12.4.4 避免深度比较 283

12.4.5 从前到后绘制 284

12.4.6 二元空间划分 284

12.4.7 系统加速技术 285

12.5 碰撞检测 286

12.6 小结 287

12.7 本章的OpenGL术语表 287

12.8 思考题 288

12.9 练习题 288

12.10 实验题 289

12.11 大型作业 289

第13章 插值与样条建模 290

13.1 引言 290

13.1.1 插值 290

13.1.2 另一种Bézier样条的基本概念 293

13.1.3 另一种Bézier样条计算方法 293

13.1.4 扩展插值到更多控制点 293

13.2 样条曲面 295

13.2.1 扩展曲面片为曲面 295

13.2.2 生成曲面片法向 296

13.2.3 生成曲面片纹理坐标 296

13.2.4 另一种曲面片计算方法 296

13.3 其他类型的插值函数 297

13.4 OpenGL中的插值 297

13.4.1 使用求值器自动生成法向和纹理 298

13.4.2 其他技巧 299

13.5 定义 299

13.6 示例 300

13.6.1 样条曲线 300

13.6.2 样条曲面 301

13.7 小结 303

13.8 本章的OpenGL术语表 303

13.9 思考题 304

13.10 练习题 304

13.11 实验题 305

13.12 大型作业 305

第14章 非多边形图形技术 306

14.1 定义 306

14.2 光线投射 306

14.3 光线跟踪 308

14.4 体绘制 309

14.5 迭代函数系统 310

14.5.1 压缩映射 310

14.5.2 生成函数 311

14.6 芒德布罗集和茹利亚集 312

14.7 OpenGL支持的逐像素操作 313

14.8 小结 314

14.9 思考题 314

14.10 练习题 314

14.11 实验题 315

14.12 大型作业 315

第15章 硬拷贝 316

15.1 定义 316

15.2 选择输出媒介 316

15.2.1 数字图像 316

15.2.2 印刷 317

15.2.3 胶片 318

15.2.4 三维图像技术 319

15.2.5 三维对象成型技术 320

15.2.6 STL文件 321

15.2.7 视频 322

15.2.8 数字视频 323

15.3 支持硬拷贝的OpenGL技术 323

15.3.1 捕获输出窗口内容到文件 323

15.3.2 用OpenGL生成立体图 324

15.4 小结 325

15.5 本章的OpenGL术语表 325

15.6 思考题 325

15.7 实验题 325

参考文献和资源 327

附录 330

索引 335