第一章 绪论 1
1.1 Open Scene Graph简介 1
1.1.1什么是Open Scene Graph 1
1.1.2 OSG的历史和发展 1
1.1.3 OSG的特点 2
1.2 OSG软件包的组成 3
1.2.1 OSG组成模块 3
1.2.2 OSG核心库 4
1.2.3 NodeKits库 5
1.2.4 OSG Plugins库 5
1.2.5 Interoperability库 6
1.2.6 OSG模块之间调用关系 6
1.3 OSG内存管理机制 7
1.3.1 Referenced类 7
1.3.2 ref ptr〈〉模板类 8
1.4 OSG的四个应用程序 8
1.4.1 osgViewer模型查看工具 9
1.4.2 osgVersion库版本检测 10
1.4.3 osgArch ive数据归档器 10
1.4.4 osgConv格式转换与压缩 11
第二章 OSG程序开发基础 13
2.1 OSG的下载与安装 13
2.2 OSG程序开发基础 13
2.2.1 OSG环境变量设置 13
2.2.2 OSG程序工程设置 14
2.2.3 OSG源代码命名规范 15
2.3 OSG程序开发框架 16
2.3.1 OSG的渲染过程 16
2.3.2 WIN32控制台程序开发框架 18
2.3.3 MFC+OSG程序开发框架 19
第三章 OSG几何模型绘制 29
3.1几何模型绘制基础知识 29
3.1.1向量与数组的表示 31
3.1.2 PrimitiveSet类和Geometry类 32
3.2基本图元绘制 35
3.2.1基本图元类的继承关系 35
3.2.2基本图元类的主要函数 35
3.2.3基本图元类示例 36
3.3基本几何体绘制 38
3.3.1基本几何体的类型及绘制方法 38
3.3.2基本几何体类的继承关系 39
3.3.3基本几何体类的主要函数 39
3.3.4基本几何体类示例 40
3.4内置几何体绘制 42
3.4.1内置几何体的类型及绘制方法 42
3.4.2内置几何体类的继承关系 43
3.4.3内置几何体类的主要函数 43
3.4.4内置几何体类示例 44
3.5综合例子:制作时钟 46
第四章 场景的组织与模型控制 57
4.1场景图技术原理 57
4.1.1场景图数据结构 58
4.1.2场景图技术的特性 59
4.1.3场景图的管理和渲染方式 59
4.1.4 OSG场景图中节点继承关系 60
4.2 OSG组节点(Group) 61
4.2.1开关节点(Switch) 61
4.2.2矩阵变换节点(MatrixTransform) 64
4.2.3位置变换节点(PositionAttitudeTransform) 65
4.2.4自动对齐节点(AutoTransform) 68
4.2.5细节层次节点(LOD) 72
4.2.6分页细节层次节点(PageLOD) 74
4.2.7替代节点(Impostor) 77
4.2.8遮挡裁剪节点(OccluderNode) 79
4.3 OSG叶节点(Geode) 82
4.3.1节点继承层次关系 82
4.3.2主要函数及其功能描述 83
4.3.3程序示例及其屏幕截图 83
第五章 人机交互与场景漫游 85
5.1交互的原理 85
5.1.1交互过程概述 86
5.1.2事件类型与响应 87
5.1.3碰撞检测 89
5.1.4 osgGA库及主要函数介绍 90
5.2场景动态浏览库的编写和使用 91
5.2.1编写TravelManipulator.DLL 91
5.2.2测试TravelManipulator.DLL 101
5.3路径漫游动态库的编写和使用 102
5.3.1 PATH文件结构及使用 103
5.3.2路径漫游的实现 108
5.3.3路径漫游功能演示 120
第六章 粒子系统 133
6.1粒子系统的原理 133
6.1.1粒子系统概述 133
6.1.2粒子系统主要类介绍 134
6.1.3应用粒子类 136
6.2爆炸物模拟 137
6.2.1用到的粒子类及其接口 137
6.2.2程序实现 137
6.3雪花的模拟 139
6.3.1用到的粒子类及其接口 139
6.3.2程序实现 140
6.4雨的模拟 147
6.4.1用到的粒子类及其接口 147
6.4.2程序实现 147
6.5喷泉的模拟 155
6.5.1用到的粒子类及其接口 155
6.5.2程序实现 155
6.6雾的模拟 159
6.6.1用到的粒子类及其接口 159
6.6.2程序实现 160
第七章 虚拟环境中实时阴影效果的实现 165
7.1阴影和光照的基本概念 166
7.1.1阴影的基本概念 166
7.1.2光照和着色处理 167
7.2阴影生成的基本方法 169
7.2.1阴影体(Shadow Volumes)方法 169
7.2.2阴影映射(Shadow Mapping)方法 171
7.3大规模虚拟环境中的阴影生成算法 172
7.3.1算法思想 172
7.3.2视截体的分割 174
7.3.3光截体的划分 175
7.4大规模虚拟环境中的阴影的实现 177
7.4.1算法实现流程 177
7.4.2读入模型 178
7.4.3添加光源并设置光源属性 178
7.4.4更新视点和生成纹理贴图 178
7.4.5渲染整个场景 182
7.4.6阴影效果及分析 185
第八章 虚拟环境中声音效果的实现 187
8.1三维虚拟声音的概念和特征 187
8.1.1三维虚拟声音的概念 187
8.1.2三维虚拟声音的特征 188
8.2三维虚拟声音的听觉模型和仿真原理 188
8.2.1三维虚拟声音的听觉模型 188
8.2.2三维虚拟声音方位感的仿真原理 189
8.2.3三维虚拟声音速度感的仿真原理 190
8.2.4三维虚拟声音距离感的仿真原理 190
8.3 osgAL三维虚拟声音实现关键技术 191
8.3.1声源音量随距离衰减的处理 191
8.3.2多普勒效应速度的处理 194
8.3.3声源被物体阻隔的效果的处理 195
8.3.4 osgAL中的听者、声源和缓冲 196
8.4 osgAL三维虚拟声音的实现 200
8.4.1 osgAL软件包的五个主类及其关系 200
8.4.2 osgAL应用程序开发的步骤 202
8.4.3 osgAL三维虚拟声音的实现 202
第九章 多通道大型沉浸式虚拟环境的实现 207
9.1沉浸式虚拟漫游系统基本结构 207
9.1.1虚拟漫游系统基本原理 207
9.1.2虚拟漫游系统硬件构成 210
9.2分布式渲染方式的选择 215
9.2.1 sort-first模式的原理 215
9.2.2 sort-middle模式的原理 216
9.2.3 sort-last模式的原理 217
9.3 OSG在大型沉浸式虚拟环境中的应用 218
9.3.1沉浸式虚拟环境系统架构 218
9.3.2交互控制端程序实现 218
9.3.3渲染端程序实现 220
9.3.4节点间的通信与同步 221
9.3.5渲染端多通道显示的拼接 222
9.3.6沉浸式虚拟环境效果演示 226