本站新书推荐

 
 
 
公告
如果编译书中程序出现glut的库错误,请下载新的glut库。

 

新书推荐之二

《OpenGL高级编程与可视化系统开发(系统开发篇)》
出版社:中国水利水电出版社
译作者:和平鸽工作室
出版日期:2003年1月

 

内容简介

OpenGL是最近几年发展起来的性能优越的开放式三维图形标准,利用它可以创作出具有照片质量的、独立于窗口系统、操作系统和硬件平台的三维彩色图形和动画。目前,openGL在可视化系统、虚拟现实系统和三维游戏方面得到了广泛地应用。


本书主要介绍如何利用OpenGL图形库开发可视化应用系统,并以实例的方式讲述一些特殊可视化效果的编程方法,包括地形、云彩、海浪、烟雾、粒子系统、飞行器尾焰等,掌握这些特效的制作对于开发高逼真度图形非常重要。


本书深入浅出、内容广泛,可供从事可视化系统开发、三维游戏开发或其他图形应用程序开发的各大专院校学生、教员和研究人员参考,也可作为OpenGL三维图形编程的培训教程或其他相关专业人士及计算机爱好者阅读。

 

前言

科学可视化、计算机动画和虚拟现实是近年来在计算机图形学领域内的三大热门研究方向,它们的技术核心都是三维真实感图形。当前,三维图形在军事、航天、航空、医学、地质勘探、三维游戏和工业CAD设计等方面有着十分广泛地应用。


openGL(即开放性图形库open Graphics Library)是近几年发展起来的一个性能卓越的三维图形标准,它源于SGI公司为其图形工作站开发的IRIS GL,在跨平台移植过程中发展成为openGL。SGI公司在1992年7月发布1.0版,后成为工业标准。1995年12月批准了1.1版本,最新版规范是1999年5月通过的1.2.1。OpenGL作为一个性能优越的图形应用程序设计界面(API),具有广泛的可移植性,它独立于硬件系统、操作系统和窗口系统。openGL适用于广泛的计算机环境,从个人计算机到工作站和超级计算机,用户都可以利用openGL创建漂亮的三维图形。由于许多在计算机界具有领导地位的计算机公司纷纷采用OpenGL作为三维图形应用程序设计界面,因此,openGL是从事三维图形开发工作的技术人员所必须掌握的开发工具。


由于openGL能实现高性能的三维图形功能,这使得科学计算可视化、仿真可视化技术发展迅速。可视化系统不仅可以帮助技术人员形象直观地查看仿真结果,而且在一定程度上可以提高设计水平,减少错误的发生。因此计算机图形技术将在各行业、各个领域内得到越来越广泛地应用。有人说20世纪是计算机多媒体技术发展的世纪,21世纪将是虚拟现实飞速发展的世纪,因此,积极推动计算机图形领域的发展将对于我国的经济建设、科学研究具有重要的现实意义。


本套丛书主要介绍如何利用OpenGL开发可视化应用系统,它定位于OpenGL的高级编程和可视化系统开发,在书中并不对VC十十开发和OpenGL的基础知识进行讲解。因此要求阅读本套丛书的读者必须具有使用VC十十和OpenGL进行编程的基础知识。


《openGL高级编程与可视化系统开发(高级编程篇)》共由15章组成。第1章至第2章简要地介绍了OpenGL与图形可视化的关系以及openGL编程的基础知识;第3章介绍了利用openGL读取各种外部三维模型的方法,如3DS、OBJ、WRL等:第4章至第7章介绍了三维地形、蓝天白云、星空和水的波动的模拟;第8章介绍了粒子系统的编程方法。第9章至第10章介绍了碰撞检测编程、LOD编程技术:第11章至第15章介绍了一些特殊效果的编程方法,如爆炸效果、霓虹效果、对象捕捉和自然现象的编程。


《openGL高级编程与可视化系统开发(系统开发篇)》共由16章组成。第1章至第11章全面系统地介绍了一个三维场景编辑软件系统的编程实现过程,该软件系统结构清晰、功能齐全、可扩充性强,对于开发应用系统具有很高的借鉴价值;第12章介绍了一个三维空战游戏的开发过程:第13章介绍了一个利用openGL开发的游戏引擎和一个利用该引擎开发的三维射击游戏“恐怖之战”;第14章至第16章介绍了三个OpenGL开发的可视化仿真实例,包括导弹飞行试验系统、飞行漫游系统、飞机飞行动力学系统。


为了便于用户使用,在书后附有包含该书全部应用实例的源代码光盘。全部程序在VisualC十十6.0中编译通过,运行环境为Windows 98或Windows 2000。读者可以充分利用其中的代码,有些只需稍许改动便可应用到自己的系统中,这些都是笔者多年的积累,以供读者参考。
本书由和平鸽工作室全体成员齐心协力编写完成,是大家精诚团结才使本书顺利完成。感谢对本书的出版提供支持的所有老师、编辑。由于水平有限,书中难免存在疏漏和错误之处,敬请各位读者朋友批评指正。
和平鸽工作室
2002年5月

 

目录

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

1.1 软件功能介绍
1.2 软件界面与基本操作
1.2.1 菜单
1.2.2 工具条
1.2.3 基本操作

第2章 建立程序框架

2.1 利用MFC建立基于多文档的应用程序框架
2.1.1 创建一个新工程
2.1.2 设置编译环境
2.1.3 加入OpenGL库
2.2 设置OpenGL图形绘制环境
2.2.1 添加OpenGL头文件
2.2.2 添加成员变量与成员函数
2.2.3 添加函数的执行代码
2.3 各种数据结构定义
2.3.1 类Scene的定义
2.3.2 类ChunkFile的定义
2.3.3 3DS文件输入输出类的定义

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

3.1 添加“输入3DS”对话框
3.1.1 编辑“输入3DS”对话框
3.1.2 创建“输入3DS”对话框类
3.1.3 添加成员变量
3.1.4 添加消息处理成员函数
3.1.5 添加3DS文件名称处理类
3.2 添加“正在输入”对话框
3.2.1 编辑“正在输入”对话框
3.2.2 建立“输入3DS”对话框类
3.2.3 添加成员变量
3.2.4 添加消息处理成员函数
3.2.5 添加输入线程函数
3.3 添加对象的显示源代码
3.4 添加3DS输入菜单
3.4.1 编辑菜单资源
3.4.2 添加菜单响应函数

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

4.1 添加“细节编辑”对话框
4.1.1 编辑“细节编辑”对话框
4.1.2 建立“细节编辑”对话框类
4.1.3 添加控件变量
4.1.4 添加消息处理成员函数
4.2 添加“材质编辑”对话框
4.2.1 编辑“材质编辑”对话框
4.2.2 建立“材质编辑”对话框类
4.2.3 添加控件变量
4.2.4 添加消息处理成员函数
4.3 添加“映射编辑”对话框
4.3.1 编辑“映射编辑”对话框
4.3.2 建立“映射编辑”对话框类
4.3.3 添加消息处理成员函数
4.4 添加菜单项
4.4.1 编辑菜单资源
4.4.2 添加菜单响应函数
4.5 添加对象选择功能
4.5.1 添加鼠标左键单击函数
4.5.2 选择功能的实现

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

5.1 修改背景颜色
5.1.1 编辑菜单
5.1.2 添加菜单响应函数
5.1.3 添加背景修改源代码
5.2 修改环境光照
5.2.1 编辑菜单
5.2.2 添加菜单响应函数
5.2.3 添加环境光照设置源代码

第6章 增强显示功能

6.1 改变对象的显示模式
6.1.1 编辑菜单
6.1.2 添加菜单响应函数
6.1.3 添加对象的不同绘制模式源代码
6.2 改变观察视点
6.2.1 编辑菜单
6.2.2 添加菜单响应函数
6.2.3 添加不同视点的对象的绘制源代码

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

7.1 三维场景文档的数据结构
7.2 文档串行化机制
7.3 文档存取功能的具体实现
7.4 CObject类的读写

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

8.1 输出3DS文件的类的定义
8.2 添加菜单响应函数
8.2.1 编辑菜单
8.2.2 添加菜单响应函数

第9章 实现视频捕捉功能

9.1 捕捉静止图像
9.1.1 添加捕捉静止图像的类
9.1.2 添加菜单响应函数
9.2 捕捉动态图像
9.2.1 添加捕捉动态图像的类
9.2.2 添加“设置捕捉”对话框
9.2.3 添加菜单响应函数

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

10.1 添加“光线追踪”对话框
10.1.1 编辑“光线追踪”对话框
10.1.2 建立“光线追踪”对话框类
10.1.3 添加成员变量
10.1.4 添加消息处理成员函数
10.2 添加“图形”对话框
10.2.1 编辑“图形”对话框
10.2.2 建立“图形”对话框类
10.2.3 添加消息处理成员函数
10.3 添加菜单响应
10.3.1 编辑菜单资源
10.3.2 添加菜单响应函数

第11章 其他功能的实现

11.1 全屏显示功能的实现
11.1.1 添加全屏显示菜单项
11.1.2 添加源代码
11.2 屏幕打印功能的实现
11.2.1 添加内存管理的类
11.2.2 添加打印源代码
11.3 添加软件封面

第12章 三维空战游戏实例

12.1 三维游戏概述
12.2 游戏内容简介
12.3 关键技术简介
12.4 数据结构定义
12.4.1 基本类的定义
12.4.2 星空背景的的定义
12.4.3 飞行器的定义
12.4.4 爆炸效果的定义
12.4.5 三维流星实体的定义
12.4.6 游戏类的定义
12.4.7 屏幕文字的绘制
12.5 声音效果处理
12.5.1 音频播放设备处理
12.5.2 音频文件处理
12.6 编程实现步骤
12.6.1 建立程序框架
12.6.2 宏定义与全局变量
12.6.3 添加成员变量与成员函数
12.6.4 添加成员函数的执行源代码
12.6.5 进入游戏

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

13.1 三维游戏引擎简介
13.2 一个三维游戏引擎实例
13.2.1 引擎介绍
13.2.2 数据管理
13.2.3 输入系统
13.2.4 引擎核心和游戏循环
13.2.5 处理摄像机
13.2.6 音频系统
13.2.7 场景管理
13.2.8 其他数据的定义与处理
13.2.9 主程序
13.3 “恐怖之战”游戏制作实例
13.3.1 游戏介绍
13.3.2 添加“敌人”
13.3.3 添加游戏者
13.3.4 添加武器
13.3.5 处理爆炸效果
13.3.6 处理人机界面
13.3.7 编辑场景
13.3.8 编辑主程序
13.3.9 进入游戏

第14章 导弹试验模拟系统

14.1 设计思想介绍
14.2 导弹三维模型和纹理输入
14.2.1 BMP纹理数据的读取
14.2.2 MilkShape 3D模型的读取
14.3 编程实现步骤
14.3.1 建立程序框架
14.3.2 宏定义与结构体定义
14.3.3 添加成员变量与成员函数
14.3.4 导弹发射架的绘制
14.3.5 地形的绘制
14.3.6 导弹的绘制
14.3.7 目标靶的绘制
14.3.8 导弹尾焰的绘制
14.3.9 爆炸效果的绘制
14.3.10 爆炸碎片的绘制
14.3.11 视点的设置
14.3.12 数据初始化操作
14.3.13 场景绘制
14.3.14 编译运行

第15章 飞机地形漫游系统

15.1 设计思想介绍
15.2 编程实现步骤
15.2.1 建立程序框架
15.2.2 宏定义与结构体定义
15.2.3 添加成员变量与成员函数
15.2.4 地形的初始化与绘制
15.2.5 飞机数据的初始化
15.2.6 飞机飞行与绘制
15.2.7 子弹数据的初始化
15.2.8 子弹的飞行与绘制
15.2.9 飞机尾焰的初始化与计算
15.2.10 飞机尾焰的绘制
15.2.11 视点设置
15.2.12 场景绘制
15.2.13 编译运行

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

16.1 设计思想介绍
16.2 编程实现步骡
16.2.1 建立程序框架
16.2.2 宏定义与结构体定义
16.2.3 添加成员变量与成员
16.2.4 全局变量的定义
16.2.5 地形的初始化
16.2.6 粒子系统的初始化
16.2.7 线框模式绘制
16.2.8 纹理模式绘制
16.2.9 地形的绘制
16.2.10 天空的绘制
16.2.11 太阳的绘制
16.2.12 水的绘制
16.2.13 飞机与尾焰的绘制
16.2.14 添加按键响应函数
16.2.15 场景绘制
16.2.16 各种数据计算
16.2.17 编译运行

 
     
 
 
首页 | 下载 | 讲座 | 源码 | 邮购 | 联系
 

Copyright(C)1999-2002 www.OpenGLSource.com, All Rights Reserved
Email: Webmaster@OpenGLSource.com