第1章 Vega Prime概述 1
1.1 Vega Prime简介 2
1.1.1 基本结构 2
1.1.2 模块组成 3
1.1.3 附加模块 6
1.1.4 第三方插件 6
1.1.5 辅助开发工具 9
1.2 Vega Prime的安装 10
1.2.1 安装需求 10
1.2.2 目录结构 11
1.3 Vega Prime中的若干基本概念 12
1.3.1 ACF文件 12
1.3.2 VSB文件 12
1.3.3 DDS纹理 12
1.3.4 MetaFlight文件 12
1.3.5 支持的模型格式 13
1.3.6 支持的纹理格式 13
1.4 Vega Prime程序初步 13
1.4.1 第一个示例程序vp_simple 13
1.4.2 vpApp类详解 16
1.4.3 模块及其初始化 18
1.4.4 截取和绘图 19
1.5 Vega Prime使用中的若干表示方法 20
1.5.1 对象、实例和单独类 20
1.5.2 嵌套类 20
1.5.3 get-set函数对 21
1.5.4 数据库单位 21
本章小结 22
第2章 坐标系及其变换 23
2.1 Vega Prime空间坐标系 23
2.1.1 空间坐标系分类 23
2.1.2 椭球体 26
2.1.3 投影方式 27
2.1.4 坐标系 29
2.1.5 坐标转换 30
2.2 空间坐标系的变换 31
2.2.1 坐标变换的一般过程 31
2.2.2 用LynX Prime配置坐标变换 32
2.2.3 用编程方式为实例关联坐标转换 34
2.2.4 Geodetic与Geocentric坐标系的相互转换 36
2.2.5 Geodetic与投影坐标系的相互转换 37
2.2.6 Geocentric与投影坐标系的相互转换 38
2.3 平面坐标系及其变换 39
2.3.1 Vega Prime中的各种平面坐标系 39
2.3.2 平面坐标系的转换 41
2.4 笛卡儿直角坐标系之间的变换 41
2.4.1 坐标转换方法 41
2.4.2 坐标转换实例 42
本章小结 44
第3章 VSG实用类 45
3.1 数学类型 45
3.1.1 数学 45
3.1.2 向量 46
3.1.3 矩阵 47
3.2 字符串 51
3.3 几何图形 52
3.3.1 线段 52
3.3.2 平面 53
3.3.3 球体 53
3.3.4 盒子 53
3.3.5 平截头体 54
3.4 文件目录 55
3.4.1 目录 55
3.4.2 文件 56
3.4.3 搜索路径 59
3.5 网络通信 60
3.5.1 管道 60
3.5.2 TCP管道 62
3.5.3 UDP管道 67
3.6 线程与锁 70
3.6.1 线程 70
3.6.2 线程锁 72
3.6.3 线程同步实例 72
本章小结 75
第4章 基本应用配置文件相关类 76
4.1 内核类 76
4.1.1 仿真中的帧循环 77
4.1.2 内核类的接口函数 78
4.1.3 内核的相关事件 80
4.2 搜索路径类 81
4.3 管道类 81
4.4 窗体类 82
4.5 通道类 83
4.6 场景类 86
4.7 对象类 86
4.8 观察点类 88
4.9 仿真环境相关 91
4.9.1 全局环境类 91
4.9.2 环境类 92
4.9.3 太阳类 94
4.9.4 月亮类 94
4.9.5 星体类 95
4.9.6 天体类 95
4.9.7 云层类 95
4.9.8 风类 96
4.10 回收服务类 97
本章小结 97
第5章 场景显示特效 98
5.1 基本特效模块 98
5.1.1 特效的抽象基类 100
5.1.2 刀刃特效 101
5.1.3 线条特效 102
5.1.4 导弹尾烟特效 102
5.1.5 粒子系统特效 103
5.1.6 飞行色带特效 106
5.1.7 基本特效的配置 106
5.2 光束效果模块 106
5.2.1 类组成与功能 106
5.2.2 光束效果的配置 108
5.3 阴影效果模块 109
5.3.1 类组成与功能 109
5.3.2 阴影效果的配置 109
5.4 摄像效果模块 110
5.4.1 摄像机效果 110
5.4.2 摄像机 113
5.4.3 摄像效果的配置 113
5.5 风吹效果模块 113
5.5.1 风吹效果类 113
5.5.2 风吹效果的配置 114
5.6 海洋特效 115
5.6.1 海洋 115
5.6.2 海浪 118
5.6.3 船体 123
5.6.4 船体运动策略 125
5.6.5 船体运动特效 126
5.6.6 海洋特效的配置 128
本章小结 131
第6章 运动控制与碰撞检测 132
6.1 输入设备 132
6.1.1 元输入设备 132
6.1.2 输入设备与组合输入设备 134
6.1.3 键盘输入设备 136
6.1.4 鼠标输入设备 137
6.1.5 跟踪输入设备 138
6.2 运动控制 143
6.2.1 UFO运动 144
6.2.2 飞行运动 145
6.2.3 驾驶运动 146
6.2.4 一般行走运动 147
6.2.5 第一人称行走运动 148
6.2.6 限制区域运动 149
6.2.7 旋转运动 150
6.2.8 系留运动类 151
6.3 碰撞检测 152
6.3.1 Z碰撞检测类 153
6.3.2 ZPR碰撞检测类 153
6.3.3 XYZPR碰撞检测类 153
6.3.4 HAT碰撞检测类 153
6.3.5 LOS碰撞检测类 154
6.3.6 Tripod碰撞检测类 154
6.3.7 Bump碰撞检测类 155
6.4 地面爬行运动 155
本章小结 156
第7章 大地形数据库管理 157
7.1 MetaFlight文件简介 157
7.1.1 MetaFlight数据库Database 158
7.1.2 CTS地形数据 159
7.1.3 CTS网格 167
7.2 MetaFlight模块 168
7.3 vpLADBM模块 172
7.3.1 几何网格数据集 172
7.3.2 分页策略点 173
7.3.3 虚拟纹理中心计算 173
7.3.4 LOSP碰撞检测 173
7.4 vpVT模块 174
7.4.1 虚拟纹理数据集 174
7.4.2 虚拟纹理技术 175
7.4.3 虚拟纹理管理器 178
7.4.4 虚拟纹理中心 178
7.5 大地形数据库/文件的配置使用方法 178
7.5.1 MetaFlight数据库 178
7.5.2 TXP数据文件 181
7.5.3 超纹理文件 181
本章小结 182
第8章 运动路径管理 183
8.1 模块功能与组成 183
8.2 路径与路径点 184
8.2.1 路径点 185
8.2.2 路径点集合 185
8.2.3 路径 186
8.2.4 路径配置文件 191
8.3 路径插值算法 196
8.3.1 线性插值算法 197
8.3.2 Cardinal样条插值算法 197
8.3.3 Hermite样条插值算法 197
8.3.4 Kochanek-Bartel样条插值算法 197
8.4 路径导航 198
8.4.1 路径导航类 198
8.4.2 导航配置文件 200
8.4.3 路径导航事件 206
8.5 路径点的状态 207
8.5.1 路径运动状态 207
8.5.2 路径视线状态 207
8.5.3 路径渲染状态 208
8.6 路径管理应用实例 209
本章小结 214
第9章 其他常用模块 215
9.1 平面模块 215
9.1.1 点到点线条 217
9.1.2 带状线条 217
9.1.3 二维文字 217
9.1.4 二维图片 218
9.1.5 实例分析 219
9.2 声音模块 223
9.2.1 声音播放 224
9.2.2 环境音播放 224
9.2.3 空间音播放 224
9.2.4 声音收听 225
9.2.5 实例分析 225
9.3 定时器 228
9.3.1 定时器类 228
9.3.2 实例分析 228
9.4 统计信息服务器模块 229
本章小结 230
第10章 辅助开发工具 231
10.1 统计信息浏览器 231
10.1.1 vpApp类的统计信息显示 231
10.1.2 统计信息浏览器的使用 232
10.2 DDS图片创建工具 234
10.2.1 命令行使用方式 234
10.2.2 图形用户接口使用方式 235
10.3 VSB模型创建工具 236
10.3.1 命令行使用方式 236
10.3.2 图形用户接口使用方式 238
10.4 VSB模型浏览器 240
10.5 分布式渲染和代理工具 241
10.5.1 代理 241
10.5.2 分布式渲染 243
10.5.3 配置实例 244
10.6 SpeedTreeCAD 247
本章小结 247
附录A Vega Prime模块组成 248
附录B vrWindow按键枚举变量 255
参考文献 260