《OpenGL 高级编程与可视化系统开发 系统开发篇 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:和平鸽工作室编著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2006
  • ISBN:7508433416
  • 页数:394 页
图书介绍:OpenGL是最近几年发展起来的性能优越的开放式三维图形标准,利用它可以创作出具有照片质量的、独立于窗口系统、操作系统和硬件平台的三维彩色图形和动画。目前,OpenGL在可视化系统、虚拟现实系统和三维游戏方面得到了广泛地应用。本书介绍了多个可视化仿真实例,包括一个场景编辑系统、两个三维游戏和五个可视化仿真项目。充分利用这些源代码和编程思想,可以大大节约读者开发可视化仿真项目的时间。本书可供从事可视化系统开发、三维游戏开发或其他图形应用程序开发的各大专院校学生、教员和研究人员参考。

第1章 三维场景编辑软件简介 1

1.1 软件功能介绍 1

1.2 软件界面与基本操作 2

1.2.1 菜单 2

1.2.2 工具条 4

1.2.3 基本操作 5

第2章 建立程序框架 11

2.1 利用MFC建立基于多文档的应用程序框架 11

2.1.1 创建一个新工程 11

2.1.2 设置编译环境 12

2.1.3 加入OpenGL库 13

2.2 设置OpenGL图形绘制环境 13

2.2.1 添加OpenGL头文件 13

2.2.2 添加成员变量与成员函数 14

2.2.3 添加函数的执行代码 14

2.3 各种数据结构定义 18

2.3.1 类Scene的定义 19

2.3.2 类ChunkFile的定义 21

2.3.3 3DS文件输入/输出类的定义 21

第3章 实现3DS对象的输入与显示 25

3.1 添加“输入3DS”对话框 25

3.1.1 编辑“输入3DS”对话框 25

3.1.2 创建“输入3DS”对话框类 26

3.1.3 添加成员变量 27

3.1.4 添加消息处理成员函数 27

3.1.5 添加3DS文件名称处理类 30

3.2 添加“正在输入”对话框 30

3.2.1 编辑“正在输入”对话框 31

3.2.2 建立“输入3DS”对话框类 31

3.2.3 添加成员变量 32

3.2.4 添加消息处理成员函数 32

3.2.5 添加输入线程函数 34

3.3 添加对象的显示源代码 35

3.4 添加3DS输入菜单 39

3.4.1 编辑菜单资源 39

3.4.2 添加菜单响应函数 39

第4章 实现对象的编辑功能 42

4.1 添加“细节编辑”对话框 42

4.1.1 编辑“细节编辑”对话框 42

4.1.2 建立“细节编辑”对话框类 43

4.1.3 添加控件变量 44

4.1.4 添加消息处理成员函数 44

4.2 添加“材质编辑”对话框 53

4.2.1 编辑“材质编辑”对话框 54

4.2.2 建立“材质编辑”对话框类 55

4.2.3 添加控件变量 56

4.2.4 添加消息处理成员函数 56

4.3 添加“映射编辑”对话框 64

4.3.1 编辑“映射编辑”对话框 64

4.3.2 建立“映射编辑”对话框类 65

4.3.3 添加消息处理成员函数 65

4.4 添加菜单项 71

4.4.1 编辑菜单资源 71

4.4.2 添加菜单响应函数 72

4.5 添加对象选择功能 74

4.5.1 添加鼠标左键单击函数 74

4.5.2 选择功能的实现 75

第5章 实现场景的编辑功能 79

5.1 修改背景颜色 79

5.1.1 编辑菜单 79

5.1.2 添加菜单响应函数 80

5.1.3 添加背景修改源代码 82

5.2 修改环境光照 82

5.2.1 编辑菜单 83

5.2.2 添加菜单响应函数 84

5.2.3 添加环境光照设置源代码 85

第6章 增强显示功能 88

6.1 改变对象的显示模式 88

6.1.1 编辑菜单 88

6.1.2 添加菜单响应函数 89

6.1.3 添加对象的不同绘制模式源代码 91

6.2 改变观察视点 94

6.2.1 编辑菜单 94

6.2.2 添加菜单响应函数 95

6.2.3 添加不同视点的对象的绘制源代码 97

第7章 实现文档的存取功能 101

7.1 三维场景文档的数据结构 101

7.2 文档串行化机制 102

7.3 文档存取功能的具体实现 103

7.4 CObject类的读写 111

第8章 实现场景3DS文件输出 116

8.1 输出3DS文件的类的定义 116

8.2 添加菜单响应函数 127

8.2.1 编辑菜单 127

8.2.2 添加菜单响应函数 127

第9章 实现视频捕捉功能 130

9.1 捕捉静止图像 130

9.1.1 添加捕捉静止图像的类 130

9.1.2 添加菜单响应函数 135

9.2 捕捉动态图像 137

9.2.1 添加捕捉动态图像的类 137

9.2.2 添加“设置捕捉”对话框 142

9.2.3 添加菜单响应函数 144

第10章 实现三维场景的渲染输出 149

10.1 添加“光线追踪”对话框 149

10.1.1 编辑“光线追踪”对话框 149

10.1.2 建立“光线追踪”对话框类 150

10.1.3 添加成员变量 151

10.1.4 添加消息处理成员函数 151

10.2 添加“图形”对话框 154

10.2.1 编辑“图形”对话框 154

10.2.2 建立“图形”对话框类 156

10.2.3 添加消息处理成员函数 157

10.3 添加菜单响应 162

10.3.1 编辑菜单资源 162

10.3.2 添加菜单响应函数 162

第11章 其他功能的实现 164

11.1 全屏显示功能的实现 164

11.1.1 添加全屏显示菜单项 164

11.1.2 添加源代码 164

11.2 屏幕打印功能的实现 167

11.2.1 添加内存管理的类 167

11.2.2 添加打印源代码 171

11.3 添加软件封面 171

第12章 三维空战游戏实例 174

12.1 三维游戏概述 174

12.2 游戏内容简介 175

12.3 关键技术简介 176

12.4 数据结构定义 177

12.4.1 基本类的定义 177

12.4.2 星空背景的定义 186

12.4.3 飞行器的定义 188

12.4.4 爆炸效果的定义 192

12.4.5 三维流星实体的定义 197

12.4.6 游戏类的定义 203

12.4.7 屏幕文字的绘制 214

12.5 声音效果处理 216

12.5.1 音频播放设备处理 216

12.5.2 音频文件处理 217

12.6 编程实现步骤 218

12.6.1 建立程序框架 218

12.6.2 宏定义与全局变量 219

12.6.3 添加成员变量与成员函数 219

12.6.4 添加成员函数的执行源代码 220

12.6.5 进入游戏 222

第13章 构建一个三维游戏引擎 223

13.1 三维游戏引擎简介 223

13.2 一个三维游戏引擎实例 224

13.2.1 引擎介绍 224

13.2.2 数据管理 224

13.2.3 输入系统 239

13.2.4 引擎核心和游戏循环 245

13.2.5 处理摄像机 250

13.2.6 音频系统 254

13.2.7 场景管理 261

13.2.8 其他数据的定义与处理 263

13.2.9 主程序 266

13.3 “恐怖之战”游戏制作实例 268

13.3.1 游戏介绍 268

13.3.2 添加敌人 268

13.3.3 添加游戏者 275

13.3.4 添加武器 276

13.3.5 处理爆炸效果 280

13.3.6 处理人机界面 284

13.3.7 编辑场景 286

13.3.8 编辑主程序 290

13.3.9 进入游戏 291

第14章 导弹试验模拟系统 293

14.1 设计思想介绍 294

14.2 导弹三维模型和纹理输入 295

14.2.1 BMP纹理数据的读取 295

14.2.2 MilkShape 3D模型的读取 297

14.3 编程实现步骤 305

14.3.1 建立程序框架 305

14.3.2 宏定义与结构体定义 305

14.3.3 添加成员变量与成员函数 307

14.3.4 导弹发射架的绘制 309

14.3.5 地形的绘制 309

14.3.6 导弹的绘制 311

14.3.7 目标靶的绘制 311

14.3.8 导弹尾焰的绘制 315

14.3.9 爆炸效果的绘制 316

14.3.10 爆炸碎片的绘制 317

14.3.11 视点的设置 318

14.3.12 数据初始化操作 320

14.3.13 场景绘制 322

14.3.14 编译运行 323

第15章 飞机地形漫游系统 324

15.1 设计思想介绍 324

15.2 编程实现步骤 324

15.2.1 建立程序框架 325

15.2.2 宏定义与结构体定义 325

15.2.3 添加成员变量与成员函数 327

15.2.4 地形的初始化与绘制 328

15.2.5 飞机数据的初始化 329

15.2.6 飞机飞行与绘制 330

15.2.7 子弹数据的初始化 331

15.2.8 子弹的飞行与绘制 332

15.2.9 飞机尾焰的初始化与计算 333

15.2.10 飞机尾焰的绘制 334

15.2.11 视点设置 334

15.2.12 场景绘制 336

15.2.13 编译运行 337

第16章 飞行动力学模拟系统 338

16.1 设计思想介绍 338

16.2 编程实现步骤 338

16.2.1 建立程序框架 338

16.2.2 宏定义与结构体定义 339

16.2.3 添加成员变量与成员函数 340

16.2.4 全局变量的定义 341

16.2.5 地形的初始化 342

16.2.6 粒子系统的初始化 343

16.2.7 线框模式绘制 344

16.2.8 纹理模式绘制 345

16.2.9 地形的绘制 345

16.2.10 天空的绘制 347

16.2.11 太阳的绘制 347

16.2.12 水的绘制 348

16.2.13 飞机与尾焰的绘制 348

16.2.14 添加按键响应函数 350

16.2.15 场景绘制 352

16.2.16 各种数据计算 353

16.2.17 编译运行 353

第17章 三维随机分形地形生成系统 354

17.1 随机分形地形生成原理 354

17.1.1 细节层次模型思想 354

17.1.2 分形理论 354

17.1.3 Diamond-Square算法 357

17.1.4 纹理图生成 359

17.1.5 三维随机地形模拟效果 359

17.2 编程实现步骤 360

17.2.1 建立程序框架 360

17.2.2 添加地形生成选项对话框 361

17.2.3 添加菜单项 362

17.2.4 宏定义与结构体定义 363

17.2.5 添加成员变量与成员函数 363

17.2.6 成员变量初值 365

17.2.7 光照效果的初始化 366

17.2.8 场景的绘制与渲染 366

17.2.9 天空背景纹理图绘制 369

17.2.10 地形纹理图绘制 371

17.2.11 三维地形的渲染与绘制 372

17.2.12 添加按键响应函数 374

17.2.13 添加对话框弹出函数 376

17.2.14 编译运行 377

第18章 三维织物动感模拟系统 378

18.1 织物计算机模拟原理 378

18.1.1 织物计算机模拟概述 378

18.1.2 织物模拟的质点-弹簧模型 378

18.1.3 数值求解方法 379

18.1.4 三维织物模拟效果 381

18.2 编程实现步骤 382

18.2.1 建立程序框架 382

18.2.2 添加“设置新织物”对话框 382

18.2.3 添加“添加碰撞球”对话框 384

18.2.4 添加“设置仿真特性”对话框 385

18.2.5 添加“设置仿真时间参数”对话框 386

18.2.6 添加“设置节点质量”对话框 387

18.2.7 编辑菜单项 388

18.2.8 宏定义 389

18.2.9 添加成员变量与成员函数 390

18.2.10 成员变量初值 392

18.2.11 场景的绘制与渲染 392

18.2.12 仿真控制主函数 393

18.2.13 编译运行 394