《计算机图形学理论与OpenGL编程实践》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:周建龙,肖春编著
  • 出 版 社:广州:华南理工大学出版社
  • 出版年份:2007
  • ISBN:7562326630
  • 页数:358 页
图书介绍:本书采用理论与实践相结合的方式讲解计算机图形学理论和OpenGL图形编程实践本书内容丰富、组织结构清晰,内容覆盖了基本的三维计算机图形学理论,以及使用OpenGL 进行三维图形编程的概念和方法。全书共分为三大部分:图形学基础,高级图形学理论和实现以及OpenGL高级编程。书中附有使用OpenGL 编写的大量程序以及各种效果图,所选实例具有很强的代表性,程序代码全部采用C语言编写,并且在Visual C++ 6.0 环境下调试通过,便于读者对计算机图形学理论和OpenGL编程概念的理解。

第Ⅰ部分 图形学基础 3

1 绪论 3

1.1 计算机图形学的研究内容 3

1.2 计算机图形学的应用领域 5

1.3 计算机图形学的发展简史 5

1.4 主要的图形库API 6

2 OpenGL简介 8

2.1 OpenGL发展历史 8

2.2 OpenGL体系结构 9

2.3 OpenGL函数库 9

2.4 建立OpenGL编程环境 10

2.4.1 建立一个新工程 10

2.4.2 设置包含文件和库文件路径 11

2.4.3 加入OpenGL库 13

2.5 OpenGL程序一瞥 13

2.6 Windows环境下的OpenGL应用程序结构 18

2.6.1 Windows应用程序基本结构 18

2.6.2 OpenGL加入Windows应用程序 21

2.6.3 Windows环境下的OpenGL应用程序示例 25

本章小结 33

3 基本几何图元的定义 35

3.1 几何图元描述 35

3.1.1 点 35

3.1.2 线 35

3.1.3 多边形 36

3.2 绘制几何图元 36

3.2.1 指定顶点 36

3.2.2 定义不同的几何图元 37

本章小结 41

4 图形和视图变换 42

4.1 齐次坐标 42

4.2 二维变换 43

4.2.1 二维平移变换 43

4.2.2 二维比例变换 44

4.2.3 二维旋转变换 45

4.2.4 二维反射变换 46

4.2.5 二维错切变换 47

4.2.6 复合变换 48

4.2.7 二维变换的分解 49

4.3 三维变换 50

4.4 视图 51

4.4.1 平行投影 51

4.4.2 透视投影 52

4.5 基于OpenGL的图形变换 54

4.5.1 视点或照相机坐标 55

4.5.2 OpenGL中的矩阵 55

4.5.3 模型变换 56

4.5.4 投影变换 57

4.5.5 剪切变换 60

4.5.6 视口变换 63

4.6 综合利用各种变换绘制机器人模型 64

本章小结 72

5 颜色 74

5.1 计算机颜色 74

5.1.1 颜色生成原理 74

5.1.2 颜色模型及变换 75

5.2 OpenGL颜色模式 79

5.2.1 RGBA颜色模式 79

5.2.2 颜色索引模式 80

本章小结 80

第Ⅱ部分 高级图形学理论和实践 80

6 图形明暗效应 83

6.1 光照模型 83

6.1.1 环境光 84

6.1.2 漫反射光 84

6.1.3 镜面反射光 85

6.1.4 Phong简单光照模型 86

6.2 多边形光照计算 87

6.2.1 常量模型 87

6.2.2 Gouraud模型 88

6.2.3 Phong模型 88

6.3 OpenGL光照 89

6.3.1 光源 89

6.3.2 光照分量 90

6.3.3 材质 90

6.3.4 加入光照步骤 90

6.4 创建OpenGL光源 91

6.4.1 启动光源 92

6.4.2 设置光源颜色 92

6.4.3 设置光源位置与衰减因子 93

6.5 OpenGL光照模型 96

6.5.1 全局环境光 97

6.5.2 视点位置 97

6.5.3 双面光照 98

6.5.4 镜面反射光颜色 98

6.6 定义材质属性 98

6.6.1 设置材质环境反射光色和漫反射光色 99

6.6.2 设置镜面反射光色 100

6.6.3 设置发射光色 100

6.6.4 常见的材质属性值 100

6.6.5 设置材质属性示例 103

6.7 光源的高级控制 109

6.7.1 设置聚光灯 109

6.7.2 设置多光源 110

6.7.3 控制光源的位置和方向 114

本章小结 118

7 纹理映射 120

7.1 纹理映射概述 120

7.1.1 纹理的定义 121

7.1.2 二维纹理映射 121

7.2 凸包纹理映射 124

7.3 环境纹理映射 126

7.4 OpenGL纹理映射 127

7.5 OpenGL纹理定义 131

7.6 OpenGL纹理对象 132

7.6.1 生成纹理名 132

7.6.2 生成并使用纹理对象 132

7.7 OpenGL纹理控制 133

7.7.1 纹理滤波 133

7.7.2 重复与缩限 134

7.8 OpenGL纹理映射方式 135

7.9 OpenGL纹理坐标 135

7.9.1 纹理坐标定义 135

7.9.2 自动产生纹理坐标 136

7.10 OpenGL环境映射 140

本章小结 149

8 曲线和曲面 150

8.1 双线性面片 150

8.2 二次Bézier曲线 151

8.3 高次Bézier曲线 154

8.3.1 高次Bézier曲线的定义 154

8.3.2 Bézier曲线的性质 155

8.4 Bézier曲面 156

8.4.1 Bézier曲面的定义 156

8.4.2 Bézier曲面的细分 157

8.5 Hermite和Catmull-Rom曲线 157

8.6 B样条 159

8.6.1 B样条的定义 159

8.6.2 非三次B样条 162

8.6.3 NURBS 163

8.7 Loop曲面细分方法 163

8.8 OpenGL曲线和曲面 165

8.8.1 Bézier曲线 165

8.8.2 Bézier曲面 169

8.8.3 纹理曲面 175

8.8.4 NURBS 179

本章小结 185

9 隐藏面消除 187

9.1 BSP树 187

9.1.1 BSP树算法概述 187

9.1.2 创建树结构 190

9.1.3 划分三角形 192

9.1.4 树的优化 194

9.2 Z缓存区 194

9.2.1 Z缓存区算法 194

9.2.2 整型Z缓存区 195

9.3 背面消除 195

9.4 OpenGL隐藏面消除 196

本章小结 198

10 图形合成技术 199

10.1 融合 199

10.1.1 图形融合 199

10.1.2 OpenGL图形融合 200

10.1.3 图形融合应用 202

10.2 反走样 209

10.2.1 图形反走样 209

10.2.2 OpenGL反走样线条 211

10.2.3 OpenGL反走样多边形 214

10.3 雾化 217

10.3.1 深度暗示和雾 217

10.3.2 OpenGL雾化 218

本章小结 223

第Ⅲ部分 OpenGL高级编程 223

11 OpenGL缓存技术 227

11.1 缓存及其应用 227

11.1.1 OpenGL缓存概念 227

11.1.2 清除缓存 228

11.1.3 屏蔽缓存 229

11.2 颜色缓存 230

11.2.1 双缓存系统 230

11.2.2 立体缓存 231

11.3 模板缓存 231

11.4 累积缓存 244

本章小结 252

12 使用显示列表和顶点数组 253

12.1 显示列表 253

12.1.1 建立显示列表 254

12.1.2 添加函数命令到显示列表 254

12.1.3 执行显示列表 255

12.1.4 删除显示列表 257

12.1.5 显示列表与纹理 258

12.1.6 显示列表使用示例 258

12.2 顶点数组 268

12.2.1 启动顶点数组 269

12.2.2 使用顶点数组 270

12.2.3 使用隔行数组 273

12.2.4 锁定顶点数组 273

12.2.5 顶点数组使用示例 274

本章小结 278

13 OpenGL位图和图像 279

13.1 OpenGL位图 279

13.1.1 定位位图 279

13.1.2 绘制位图 281

13.1.3 OpenGL位图示例 281

13.2 使用图像 285

13.2.1 绘制图像数据 285

13.2.2 从屏幕上读取图像数据 286

13.2.3 拷贝屏幕数据 287

13.2.4 放大、缩小和反转 288

13.2.5 管理像素存储 288

13.2.6 图像应用示例 289

13.3 Windows位图 293

13.3.1 BMP文件格式 293

13.3.2 载入BMP文件 295

13.3.3 输出BMP文件 298

本章小结 300

14 显示字体 302

14.1 字体和显示列表 302

14.2 位图字体 302

14.3 轮廓字体 314

14.4 纹理字体 325

14.5 中文字体 338

本章小结 357

参考文献 358