《可视化OpenGL程序设计》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:费广正
  • 出 版 社:清华大学出版社
  • 出版年份:2001
  • ISBN:
  • 页数:375 页
图书介绍:

第1章 Delphi与OpenGL 1

1.1 Delphi编程的特点 1

1.2 OpenGL编程概述 3

1.2.1 OpenGL的基本概念 3

1.2.2 OpenGL的命令语法及各种状态的含义 5

1.3 利用Delphi编写OpenGL程序 6

1.3.1 OpenGL在Windows下的运行机制 6

1.3.2 Windows环境上OpenGL基本程序结构 7

1.3.3 最直接的实现方法 9

1.3.4 本书的实现方法 17

2.1 绘制初始化命令 20

第2章 构造基本图元 20

2.2 基本图元的绘制 21

2.2.1 点、线、多边形的简单定义 22

2.2.2 特殊多边形的绘制方法 26

2.2.3 设置点、线、多边形的绘制属性 27

2.2.4 顶点法向量的计算方法 36

2.2.5 构造较复杂形体 37

2.2.6 利用顶点数组优化绘制性能 39

2.3 基本图元绘制实例程序 41

第3章 定义场景的坐标变换 50

3.1 坐标变换的基本概念 50

3.2 通用变换命令 51

3.3.1 变换顺序及其结果 52

3.3 造型变换和视图变换 52

3.3.2 造型变换 54

3.3.3 视图变换 57

3.4 投影变换 59

3.4.1 透视投影 59

3.4.2 正交投影 61

3.4.3 视图体裁剪 62

3.5 视口变换 62

3.5.1 定义视口 62

3.5.2 变换z坐标 68

3.6 变换综合实例1:空间飞行器探险 68

3.6.1 主要程序代码 68

3.6.2 模型数据定义文件 72

3.6.3 程序运行结果 74

3.7 变换综合实例2:利用多线程绘制时钟 75

3.7.1 多线程时钟主程序 75

3.7.2 绘制时钟线程 76

3.7.3 程序执行结果 79

第4章 为物体设置颜色 80

4.1 色彩视觉原理 80

4.2 计算机中颜色的表示 81

4.2.1 颜色生成原理 81

4.2.2 RGB颜色模型 81

4.3 两种颜色模式 82

4.3.1 RGBA颜色模式 82

4.3.2 颜色索引模式 82

4.4 在两种模式下指定颜色 83

4.3.3 两种模式的应用场合 83

4.4.1 在RGBA模式下指定颜色 84

4.4.2 在颜色索引模式下指定颜色 84

4.4.3 在RGBA模式下指定颜色实例程序 89

4.5 用透明度模拟运动模糊 93

第5章 在场景中加入光照 97

5.1 OpenGL光照原理 97

5.1.1 光照分量 98

5.1.2 材质颜色 98

5.1.3 光线与材质的RGB值 99

5.2 创建光源 99

5.2.1 定义光源颜色 100

5.2.2 定义光源的位置与衰减 101

5.2.3 定义聚光灯 102

5.2.4 定义多光源 103

5.3 选择光照模型 103

5.3.1 全局环境光 104

5.3.2 局部和无穷远视点 104

5.3.3 双面光照 104

5.3.4 启用光照 105

5.4 定义材质特性 105

5.4.1 漫射和环境反射 106

5.4.2 镜面反射 106

5.4.3 发射光 106

5.5.1 控件设置 107

5.5 利用CGlight类设置光照 107

5.5.2 程序源代码 108

5.5.3 程序执行结果 110

第6章 制作一个模型编辑器 111

6.1 模型编辑器的基本功能 111

6.1.1 程序主界面组织 111

6.1.2 其他界面的组织 112

6.2 程序代码及详解 113

6.2.1 主程序说明部分 114

6.2.2 主程序创建函数、销毁函数和初始化函数 119

6.2.3 场景及其参数的装入和保存 123

6.2.4 与绘制相关的程序 130

6.2.5 模型编辑相关程序 135

6.2.6 窗体事件服务程序 142

6.2.7 设置图元参数 157

6.2.8 向场景中添加图元 160

6.2.9 设置坐标步长 162

6.2.10 设置旋转步长 164

6.2.11 显示等待信息 166

第7章 字体和图像编辑 167

7.1 字体及其在OpenGL中的使用 167

7.1.1 OpenGL对字符显示的支持 167

7.1.2 位图字体的使用 168

7.1.3 矢量字体的使用 170

7.2 OpenGL中图像编程 173

7.2.1 像素的读写 173

7.2.3 图像缩放 174

7.2.2 像素拷贝 174

7.3.1 程序界面设计 177

7.3 创建一个功能强大的二维绘图程序 177

7.3.2 程序代码 178

第8章 定义纹理映射 184

8.1 定义二维纹理映射的方法 184

8.2 控制纹理滤波 185

8.2.1 纹理滤波 185

8.2.2 纹理的重复与缩限 186

8.2.3 纹理的映射方式 186

8.2.4 定义纹理坐标 186

8.2.5 自动生成纹理坐标 186

8.3.1 文件格式转换 187

8.3 用图像文件创建纹理 187

8.3.2 从文件中直接读写 188

8.3.3 程序运行结果 191

8.4 用纹理映射实现环境映射效果 192

8.4.1 实现代码 192

8.4.2 程序运行结果 194

8.5 用纹理程序实现浮雕效果 195

8.5.1 程序代码 195

8.5.2 程序运行结果 200

8.6 用纹理实现地形漫游效果 201

第9章 利用显示列表提高绘制性能 206

9.1 显示列表的基本概念 206

9.2 显示列表的建立、执行和管理 208

9.2.1 显示列表的建立 209

9.2.2 显示列表中的存储内容 209

9.2.3 执行显示列表 210

9.2.4 显示列表的层次 211

9.2.5 管理显示列表及其索引 213

9.3 建立一个绘制地形的显示列表 214

第10章 各种特殊效果的实现 218

10.1 利用颜色融合实现各种特效 218

10.1.1 源和目的因子 219

10.1.2 颜色融合的应用 220

10.1.3 一个颜色融合的实例 220

10.2 利用反走样使图像更平滑 223

10.1.4 利用深度缓存的三维融合 223

10.2.1 点或线的反走样 225

10.2.2 多边形的反走样 227

10.3 雾化效果的实现 227

10.4 利用粒子系统实现特殊效果 232

10.4.1 绘制动态喷泉程序代码 233

10.4.2 喷泉程序运行结果 235

10.4.3 创建一个屏幕保护程序 236

10.4.4 用粒子系统绘制一堆篝火 246

第11章 帧缓存与动画 261

11.1 缓存及其使用 261

11.1.1 OpenGL中的各种缓存 262

11.1.2 清除缓存 263

11.1.3 选择绘图的颜色缓存 264

11.1.4 屏蔽缓存 265

11.1.5 利用模板缓存实现镜面效果 265

11.1.6 利用辅助缓存提高动画性能 269

11.2 检验和操作片断值 272

11.2.1 剪载检验 272

11.2.2 Alpha检验 272

11.2.3 模板检验 273

11.2.4 深度检验 279

11.2.5 融合、抖动和逻辑操作 280

11.3 累积缓存 281

第12章 高效生成曲线曲面 286

12.1 高效生成曲线 286

12.1.1 绘制曲线举例 287

12.1.2 曲线定义和启用 289

12.1.3 曲线坐标运算 290

12.1.4 定义均匀间隔曲线坐标值 291

12.2 构造曲面 291

12.2.1 曲面定义和坐标计算 292

12.2.2 定义均匀间隔的曲面坐标值 292

12.2.3 NURBS曲面 296

12.2.4 给NURBS曲面定义纹理 300

12.3 专业的曲面曲线造型 303

12.3.1 创建一个插件 304

12.3.2 读取曲面模型数据 309

13.1 选择模式 316

第13章 选择与反馈实现交互 316

13.1.1 选择的基本步骤 317

13.1.2 建立名栈 318

13.1.3 命中记录 318

13.1.4 选择模式的例子 319

13.2 反馈模式 324

13.2.1 反馈数组 325

13.2.2 在反馈模式下利用标记 325

13.2.3 反馈的简单应用 326

13.2.4 反馈模式的完整示例 327

13.3 拾取 332

14.1 ASC文件格式说明 337

第14章 维纳斯之舞 337

14.2 读取三维模型文件程序实例 338

14.2.1 主程序代码 338

14.2.2 库程序主控程序 342

14.2.3 模型文件读取程序 346

14.2.4 数值处理相关程序 352

14.2.5 纹理映射相关程序 354

14.2.6 程序运行结果 362

第15章 蠕虫吃果游戏 363

15.1 程序界面设计 363

15.2 程序实现代码 364

15.2.1 主程序代码 364

15.2.2 绘制线程 371