《计算机图形学原理及实践 C语言描述 原书第2版》PDF下载

  • 购买积分:23 如何计算积分?
  • 作  者:(美)James D. Foley等著;唐泽圣等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2004
  • ISBN:711113026X
  • 页数:857 页
图书介绍:《计算机图形学原理及实践:C语言描述(原书第2版)》:这是计算机图形学领域的一部经典之作,作者Fley、va Dam等是国际图形学界的著名学者、学术带头人,而且《计算机图形学原理及实践:C语言描述(原书第2版)》英文版自出版以来,一直是各国大学计算机图形学课程的主要教科书。来自清华大学、北京大学、中国科学院计算技术研究所、中国科学院软件研究所的多位图形学领域的专家和精英花费了大量的时间和精力进行翻译,最终完成了这本中文版。《计算机图形学原理及实践:C语言描述(原书第2版)》是高等院校计算机专业本科生、研究生计算机图形学课程的理想教材,是相关领域专业人员开展研究工作的优秀参考书。

第1章 导言 1

1.1作为图像分析的图像处理 1

1.2交互式图形学的优点 2

1.3计算机图形学的典型用途 3

1.4 应用分类 4

1.5 计算机图形学硬件与软件的发展 5

1.5.1输出技术 6

1.5.2输入技术 10

1.5.3软件的可移植性与图形标准 11

1.6交互式图形学的概念框架 12

1.6.1概述 12

1.6.2应用建模 12

1.6.3对图形系统描绘观察的内容 13

1.6.4交互处理 14

1.7 小结 15

习题 15

第2章 简单光栅图形软件包(SRGP)的编程 17

2.1用SRGP画图 17

2.1.1图形图元的规格 17

2.1.2属性 21

2.1.3填充图元及其属性 22

2.1.4存储和恢复属性 25

2.1.5文本 26

2.2基本交互处理 27

2.2.1人的因素 27

2.2.2逻辑输入设备 28

2.2.3采样与事件驱动处理 28

2.2.4采样模式 30

2.2.5事件模式 31

2.2.6交互处理中的关联拾取 34

2.2.7设置设备度量和属性 35

2.3光栅图形特性 37

2.3.1 画布 37

2.3.2矩形框的裁剪 39

2.3.3 SRGP_copyPixel操作 39

2.3.4写模式或RasterOp 41

2.4 SRGP的局限性 42

2.4.1 应用程序坐标系统 42

2.4.2为了重新定义存储图元 43

2.5小结 45

习题 45

程序设计项目 47

第3章 二维图元的基本光栅图形学算法 49

3.1概述 49

3.1.1显示系统体系结构的含义 49

3.1.2软件中的输出流水线 52

3.2直线的扫描转换 52

3.2.1基本增量算法 53

3.2.2 中点线算法 54

3.2.3补充要点 57

3.3圆的扫描转换 59

3.3.1八方向对称性 59

3.3.2 中点圆算法 60

3.4椭圆的扫描转换 62

3.5填充矩形 65

3.6填充多边形 66

3.6.1水平边 68

3.6.2狭长条 68

3.6.3边相关性和扫描线算法 68

3.7填充椭圆弧区域 71

3.8图案填充 72

3.9宽图元 75

3.9.1复制像素 75

3.9.2移动画笔 76

3.9.3填充边界之间的区域 77

3.9.4用宽折线进行逼近 78

3.10线型和笔型 78

3.11 光栅空间的裁剪操作 79

3.12线段裁剪 80

3.12.1裁剪端点 80

3.12.2利用求解联立方程组的线段裁剪 81

3.12.3 Cohen-Sutherland线裁剪算法 81

3.12.4参数化的线裁剪算法 84

3.13圆和椭圆的裁剪 90

3.14多边形裁剪 90

3.15 生成字符 93

3.15.1定义和裁剪字符 93

3.15.2一种文本输出图元的实现 95

3.16 SRGP_copyPixel 96

3.17 反走样 96

3.17.1 增加分辨率 96

3.17.2未加权的区域采样 97

3.17.3加权区域采样 98

3.17.4 Gupta-Sproull反走样线扫描算法 101

3.18小结 103

习题 104

第4章 图形硬件 107

4.1 硬拷贝技术 108

4.2显示技术 113

4.3光栅扫描显示系统 120

4.3.1简单的光栅显示系统 120

4.3.2具有外围显示处理器的光栅显示系统 124

4.3.3显示处理器的附加功能 127

4.3.4具有集成显示处理器的光栅显示系统 129

4.4视频控制器 130

4.4.1查找表动画 131

4.4.2位图变换和窗口技术 132

4.4.3视频混合 133

4.5随机扫描显示处理器 134

4.6用于操作者交互的输入设备 136

4.6.1定位设备 136

4.6.2键盘设备 140

4.6.3定值设备 140

4.6.4选择设备 140

4.7图像扫描仪 141

习题 142

第5章 几何变换 145

5.1 维变换 145

5.2齐次坐标和二维变换的矩阵表示 147

5.3 维变换的合成 150

5.4窗口到视口的变换 152

5.5效率 153

5.6三维变换的矩阵表示 154

5.7三维变换的合成 157

5.8坐标系的变换 160

习题 163

第6章 三维空间的观察 165

6.1投影 165

6.1.1透视投影 166

6.1.2平行投影 167

6.2指定一个任意的三维视图 170

6.3三维观察的例子 173

6.3.1透视投影 175

6.3.2 平行投影 177

6.3.3有限的视见体 179

6.4平面几何投影的数学 180

6.5实现平面几何投影 183

6.5.1 平行投影 185

6.5.2透视投影 188

6.5.3用三维规范视见体进行裁剪 192

6.5.4在齐次坐标中裁剪 194

6.5.5映射到一个视口 197

6.5.6实现小结 197

6.6坐标系统 198

习题 199

第7章 对象的层次结构和简单的PHIGS系统 203

7.1 几何造型 204

7.1.1什么是模型 204

7.1.2 几何模型 205

7.1.3 何模型中的层次 205

7.1.4模型、应用程序和图形系统间的关系 207

7.2保留模式图形包的特点 208

7.2.1 中央结构存储库及其优点 208

7.2.2保留模式软件包的局限性 209

7.3定义和显示结构 209

7.3.1打开和关闭结构 209

7.3.2定义输出图元及其属性 210

7.3.3提交结构进行显示遍历 212

7.3.4 见察 213

7.3.5 通过窗口管理共享屏幕的图像应用 215

7.4模型变换 216

7.5层次式结构网络 219

7.5.1两层层次结构 219

7.5.2简单的三层层次结构 220

7.5.3自底向上构造的机器人 221

7.5.4交互式造型程序 223

7.6显示遍历中的矩阵合成 223

7.7层次结构中外观属性的处理 226

7.7.1继承法则 226

7.7.2 SPHIGS的属性及文字不受变换影响 227

7.8屏幕的更新和绘制模式 228

7.9 用于动态效果的结构网络编辑 229

7.9.1利用索引和标记访问元素 229

7.9.2内部结构的编辑操作 230

7.9.3改进编辑方法的一些实例块 230

7.9.4如何控制屏幕图像的自动再生 232

7.10交互 232

7.10.1定位器 233

7.10.2关联拾取 233

7.11其他输出特性 235

7.11.1属性包 235

7.11.2高亮度与不可见性的名字集 236

7.11.3图像交换与元文件 236

7.12实现问题 237

7.12.1绘制 237

7.12.2关联拾取 240

7.13层次模型的优化显示 241

7.13.1省略 241

7.13.2参考结构 242

7.14 PHIGS中层次模型的局限性 242

7.14.1简单层次结构的局限性 242

7.14.2 SPHIGS“参数传递”的局限性 242

7.15层次建模的其他形式 243

7.15.1过程层次 243

7.15.2数据层次 244

7.15.3利用数据库系统 244

7.16 小结 245

习题 245

第8章 输入设备、交互技术与交互任务 247

8.1交互硬件 248

8.1.1定位设备 249

8.1.2键盘设备 250

8.1.3定值设备 250

8.1.4选择设备 250

8.1.5其他设备 251

8.1.6三维交互设备 252

8.1.7设备级人的因素 254

8.2基本交互任务 254

8.2.1定位交互任务 254

8.2.2选择交互任务——大小可变的选项集合 256

8.2.3选择交互任务——相对固定大小的选项集合 259

8.2.4文本交互任务 264

8.2.5定量交互任务 265

8.2.6三维交互任务 266

8.3复合交互任务 270

8.3.1 对话框 270

8.3.2构造技术 270

8.3.3动态操纵 273

习题 275

第9章 对话设计 277

9.1 人机对话的形式和内容 278

9.2用户界面风格 280

9.2.1所见即所得 280

9.2.2直接操纵 281

9.2.3图标化用户界面 282

9.2.4其他对话形式 284

9.3一些重要的设计问题 285

9.3.1一致性 285

9.3.2提供反馈 287

9.3.3减少错误概率 288

9.3.4提供错误恢复 289

9.3.5容许多种熟练级别 290

9.3.6减少记忆 292

9.4模式和语法 292

9.5视觉设计 295

9.5.1视觉清晰性 295

9.5.2视觉编码 298

9.5.3视觉的一致性 300

9.5.4布局原则 301

9.6设计方法学 303

习题 304

第10章 用户界面软件 307

10.1基本的交互处理模型 307

10.2窗口管理系统 310

10.3窗口系统中的输出处理 312

10.4窗口系统中的输入处理 315

10.5交互技术工具箱 318

10.6用户界面管理系统 322

10.6.1 对话序列 322

10.6.2高级UIMS概念 328

习题 331

第11章 曲线与曲面的表示 333

11.1多边形网格 334

11.1.1多边形网格的表示 334

11.1.2多边形网格表示法的一致性 336

11.1.3平面方程 336

11.2三次参数曲线 337

11.2.1 Hermite曲线 341

11.2.2 Bézier曲线 344

11.2.3均匀非有理B样条曲线 346

11.2.4非均匀非有理B样条曲线 349

11.2.5非均匀有理三次多项式曲线段 355

11.2.6其他样条曲线 356

11.2.7曲线分割 358

11.2.8各种表示法之间的转换 360

11.2.9曲线绘制 360

11.2.10三次曲线的比较 363

11.3 三次参数曲面 364

11.3.1 Hermite曲面 365

11.3.2 B6zier曲面 367

11.3.3 B样条曲面 368

11.3.4曲面的法线 368

11.3.5双三次曲面的显示 369

11.4二次曲面 372

11.5小结 373

习题 373

第12章 实体造型 377

12.1实体表示 377

12.2 正则布尔集合运算 378

12.3基本实体举例法 381

12.4扫掠表示法 381

12.5边界表示法 383

12.5.1多面体和欧拉公式 383

12.5.2翼边表示法 385

12.5.3布尔集合运算 385

12.5.4非多边形的边界表示法 386

12.6空间划分表示法 387

12.6.1单元分解法 387

12.6.2空间位置枚举法 387

12.6.3八叉树表示法 388

12.6.4二元空间划分树 392

12.7构造实体几何 393

12.8各种表示法的比较 394

12.9实体造型的用户界面 396

12.10 小结 396

习题 397

第13章 消色差光与彩色光 399

13.1消色差光 399

13.1.1选择亮度值——gamma校正 399

13.1.2半色调逼近 402

13.2彩色 406

13.2.1心理物理学 407

13.2.2 CIE色度图 409

13.3用于光栅图形的颜色模型 412

13.3.1 RGB颜色模型 413

13.3.2 CMY颜色模型 414

13.3.3 YIQ颜色模型 415

13.3.4 HSV颜色模型 416

13.3.5 HLS颜色模型 418

13.3.6颜色的交互指定 421

13.3.7在颜色空间中进行插值 422

13.4颜色再现 422

13.5在计算机图形学中应用颜色 424

13.6 小结 425

习题 426

第14章 可视图像真实感的探讨 429

14.1为什么讨论真实感 429

14.2基本的困难 430

14.3线条图的绘制技术 431

14.3.1多正交视图 431

14.3.2轴测投影和斜投影 432

14.3.3透视投影 432

14.3.4深度提示 432

14.3.5深度裁剪 432

14.3.6纹理 433

14.3.7颜色 433

14.3.8 可见线的判定 433

14.4明暗图像的绘制技术 433

14.4.1 可见面的判定 433

14.4.2光照和明暗处理 433

14.4.3插值明暗处理 434

14.4.4材质属性 434

14.4.5曲面造型 434

14.4.6改进光照和明暗效果 434

14.4.7纹理 434

14.4.8阴影 434

14.4.9透明性和反射 435

14.4.10改进的相机模型 435

14.5改进的物体模型 435

14.6动力学 435

14.7立体观测 436

14.8改进的显示技术 436

14.9与其他感官的交互 437

14.10走样与反走样 437

14.10.1点采样 439

14.10.2区域采样 439

14.10.3采样理论 441

14.10.4滤波 445

14.10.5重构 450

14.10.6实际的反走样 454

14.11 小结 456

习题 456

第15章 可见面的判定 459

15.1 双变量函数 460

15.2 可见面判定算法中的常用技术 463

15.2.1相关性 464

15.2.2透视变换 464

15.2.3范围与包围体 466

15.2.4背面消除 467

15.2.5空间划分 468

15.2.6层次结构 469

15.3 可见线判定算法 469

15.3.1 Roberts算法 469

15.3.2 Appel算法 470

15.3.3 光环线算法 470

15.4 z缓存算法 471

15.5列表优先级算法 474

15.5.1深度排序算法 474

15.5.2二元空间划分树 476

15.6扫描线算法 480

15.7区域细分算法 484

15.7.1 Warnock算法 484

15.7.2 Weiler-Atherton算法 486

15.7.3子像素区域细分算法 489

15.8八叉树算法 490

15.9曲面算法 492

15.10可见面光线跟踪 494

15.10.1相交计算 495

15.10.2 可见面光线跟踪算法的效率 496

15.10.3计算布尔集合运算 501

15.10.4反走样光线跟踪 503

15.11 小结 504

习题 505

第16章 光照和明暗处理 509

16.1 光照模型 509

16.1.1环境光 509

16.1.2漫反射 510

16.1.3大气衰减 513

16.1.4镜面反射 514

16.1.5点光源模型的改进 516

16.1.6多光源 517

16.2多边形的明暗处理模型 518

16.2.1恒定明暗处理 518

16.2.2插值明暗处理 518

16.2.3多边形网格的明暗处理 518

16.2.4 Gouraud明暗处理技术 519

16.2.5 Phong明暗处理技术 520

16.2.6插值明暗处理中的问题 521

16.3 曲面细节 522

16.3.1曲面细节多边形 523

16.3.2纹理映射 523

16.3.3凹凸映射 524

16.3.4其他方法 525

16.4阴影 525

16.4.1扫描线生成阴影算法 526

16.4.2 对象精确的两步法阴影算法 526

16.4.3阴影体 528

16.4.4两遍z缓存阴影算法 529

16.4.5全局光照阴影算法 531

16.5透明性 531

16.5.1无折射的透明性 531

16.5.2折射透明性 533

16.6物体间的反射 534

16.7基于物理的光照模型 536

16.7.1表面模型的改进 538

16.7.2微面元分布函数 538

16.7.3 几何衰减因子 539

16.7.4菲涅耳项 539

16.8扩展光源模型 543

16.9光谱采样 543

16.10相机模型的改进 545

16.11全局光照算法 545

16.12 递归光线跟踪 546

16.12.1 递归光线跟踪算法的效率考虑 550

16.12.2一个更佳的照明模型 553

16.12.3区域采样的不同方法 553

16.12.4分布式光线跟踪 554

16.12.5从光源出发的光线跟踪 557

16.13辐射度方法 558

16.13.1辐射度方程 558

16.13.2计算形状因子 560

16.13.3子结构技术 562

16.13.4逐步求精算法 562

16.13.5更加精确的形状因子的计算 565

16.13.6镜面反射 565

16.13.7辐射度和光线跟踪的结合 565

16.14绘制流水线 567

16.14.1局部光照绘制流水线 567

16.14.2全局光照绘制流水线 569

16.14.3设计灵活的绘制法 569

16.14.4逐步求精方法 571

16.15小结 571

习题 572

第17章 图像处理和存储 575

17.1什么是图像 576

17.2滤波 576

17.3图像处理 578

17.4图像的几何变换 578

17.4.1基本几何变换 579

17.4.2带滤波的几何变换 581

17.4.3其他图案映射技术 583

17.5多重变换 584

17.5.1多重变换的代数学 585

17.5.2利用滤波生成变换后的图像 587

17.5.3评价变换方法 589

17.6图像合成 589

17.6.1 α通道合成 589

17.6.2其他合成方法 593

17.6.3通过填充机制生成α值 595

17.6.4用于图像组装的一个界面 595

17.7图像存储机制 596

17.7.1存储图像数据 597

17.7.2用于图像压缩的迭代函数系统 598

17.7.3图像属性 600

17.8图像的特殊效果 601

17.9 小结 601

习题 601

第18章 高级光栅图形体系结构 605

18.1简单光栅显示系统 605

18.1.1帧缓冲内存访问问题 605

18.1.2动态存储器 606

18.1.3提高帧缓冲内存带宽 607

18.1.4视频RAM 607

18.1.5 高分辨率显示器的帧缓存 608

18.2显示处理器系统 609

18.2.1外部显示处理器 609

18.2.2德克萨斯仪器公司的TMS34020——单芯片外部显示处理器 610

18.2.3集成的图形处理器 611

18.2.4 Intel的i860——一个具有集成3D图形支持的单芯片微处理器 611

18.2.5三个性能障碍 612

18.3标准图形流水线 613

18.3.1显示遍历 613

18.3.2模型变换 614

18.3.3简单接受/简单拒绝的区分 614

18.3.4光照处理 614

18.3.5 见察变换 615

18.3.6裁剪 615

18.3.7除以w并映射到3D视口 615

18.3.8光栅化 615

18.3.9一个样板应用的性能要求 616

18.4多处理简介 618

18.4.1流水线 618

18.4.2并行性 619

18.4.3多处理器图形系统 620

18.5流水线前端体系结构 620

18.5.1应用程序和显示遍历 620

18.5.2几何变换 621

18.5.3简单接受/简单拒绝的区分 621

18.5.4光照处理 621

18.5.5裁剪 621

18.5.6除w并映射到3D视口 622

18.5.7前端流水线的限制 622

18.6并行前端体系结构 622

18.6.1显示遍历 622

18.6.2重组并行数据流 623

18.6.3流水线同并行性的比较 624

18.7多处理器光栅化体系机构 624

18.7.1 以物体为序的流水线体系结构 624

18.7.2 以图像为序的流水线体系结构 627

18.7.3流水线光栅化的限制和对并行性的需求 627

18.8图像并行光栅化 627

18.8.1 内存划分体系结构 628

18.8.2 Silicon Graphics公司的POWERIRIS 4D/240GTX——一个交叉划分帧缓冲内存体系结构 630

18.8.3逻辑增强的内存 633

18.9物体并行光栅化 637

18.9.1每图元一个处理器的流水线 638

18.9.2基于树结构的每图元一个处理器的体系结构 638

18.9.3物体并行性和图像并行性的比较 639

18.10混合并行光栅化 639

18.10.1虚拟缓冲区和虚拟处理器 639

18.10.2并行虚拟缓冲区体系结构 641

18.10.3图像合成体系结构 642

18.11增强的显示能力 643

18.11.1 对多窗口的支持 643

18.11.2 对增加的真实感的支持 644

18.11.3 Stellar GS2000——促进真实感绘制的紧密集成的体系结构 646

18.11.4对高级图元的支持 647

18.11.5对增强的3D感知的支持 649

18.11.6实时飞行模拟器 651

18.12小结 652

习题 652

第19章 高级几何与光栅算法 655

19.1裁剪 655

19.1.1矩形区域对直线的裁剪 656

19.1.2矩形和其他多边形区域对多边形的裁剪 659

19.1.3矩形区域裁剪:梁友栋-Barsky多边形算法 659

19.1.4 Weiler多边形算法 665

19.2图元的扫描转换 671

19.2.1属性 671

19.2.2 评价扫描转换算法的准则 671

19.2.3直线的其他考察方式 673

19.2.4高级折线算法 674

19.2.5画圆算法的改进 674

19.2.6一般圆锥曲线算法 676

19.2.7宽图元 683

19.2.8填充图元 685

19.3反走样 686

19.3.1直线的反走样 687

19.3.2圆的反走样 688

19.3.3圆锥曲线的反走样 690

19.3.4一般曲线的反走样 692

19.3.5矩形、多边形和直线端点的反走样 692

19.4文字的特殊问题 693

19.5填充算法 695

19.5.1 区域类型、连通性和填充 695

19.5.2基本填充算法 696

19.5.3软填充算法 698

19.6加速copyPixel 700

19.7形状数据结构和形状代数 704

19.8 用bitBlt管理窗口 706

19.9 页面描述语言 708

19.10 小结 713

习题 713

第20章 高级建模技术 719

20.1前述技术的扩展 720

20.1.1采用样条的高级建模技术 720

20.1.2基于噪声的纹理映射 722

20.2 过程模型 724

20.3分形模型 725

20.4基于文法的模型 729

20.5粒子系统 732

20.6体绘制 735

20.7基于物理的建模 738

20.7.1基于约束的建模 738

20.7.2布面和柔软表面的建模 739

20.7.3实体建模 740

20.7.4地形建模 740

20.8模拟自然物体和合成物体的特殊模型 740

20.8.1波浪 741

20.8.2云层和气象 741

20.8.3湍流 743

20.8.4滴状物体 743

20.8.5生物 744

20.8.6人 745

20.8.7来自于娱乐业的一个例子 745

20.9自动放置物体 746

20.10小结 748

习题 749

第21章 动画 751

21.1传统动画和计算机辅助动画 751

21.1.1传统动画 751

21.1.2计算机辅助动画 752

21.1.3插值 752

21.1.4简单的动画效果 755

21.2 计算机动画语言 756

21.2.1线性表表示法 756

21.2.2通用计算机语言 757

21.2.3图形语言 757

21.3动画控制方法 760

21.3.1完全显式的控制 760

21.3.2过程化控制 760

21.3.3基于约束的系统 760

21.3.4真实动作跟踪 762

21.3.5演员 762

21.3.6 运动学和动力学 762

21.3.7基于物理的动画 764

21.4动画的基本规则 765

21.5动画特有的一些问题 765

21.6小结 767

习题 767

附录 计算机图形学的数学基础 769

参考文献 793

索引 833