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

  • 购买积分:13 如何计算积分?
  • 作  者:费文正,芦丽丹等
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2001
  • ISBN:7900631135
  • 页数: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.3两种模式的应用场合 83

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

4.3.2颜色索引模式 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