CIGI介绍
IG
IG,Image Generator,图像生成器。
它的作用就是用于生成图像。主要的用途是模拟器训练,硬件设备训练等。
IG的功能可以概括为:
1 |
|
架构
- OSG/VSG是三维渲染引擎,一般使用的是OpenGL
- Vega Prime是常用的三维渲染工具,不具备外部驱动功能,使用的是VSG
- IG图像生成器可以基于 OSG, OpenGL,Vega Prime构建。
特点
- IG可以接受外部的驱动指令,生成一帧一帧的图像,并且是基于3D图形理论构建的图像生成器。
- IG不具有仿真逻辑、游戏逻辑,即它不包含人工智能,飞机轨道计算的功能。
- IG具备显示图像、显示地形、模型,实体与地形的匹配、显示天气、改变视点,视场角等
- 外部的驱动指令可以包括:Socket, HLA/RTI(其实这也是一种Socket)
软件
- VR-Vangage IG
- EPX
- VQ-VAE
- Quantum3D Mantis
IG的设计思想与作用
IG的设计思想是: 对比传统的交互式的三维显示系统,比如游戏魔兽争霸,它可以接受鼠标与键盘, 英雄攻击目标,需要计算目标的血量等。但是IG是用于实时和高保证的生成图像, 且有些图像需要传送到特殊的显示设备,比如佩戴头盔等才可以观察。所以为了保证高速的生成,它一般不接受鼠标和键盘的响应,同时也不处理场景和目标的逻辑,比如飞机的飞行轨道的计算等,全部来自外部输入。底层通信可以选择通过以太网(低速)、内存反射网(光纤,高速)等高速设备传入和更新数据。具体的网络层为socket UPD或则是Ge 公司的内存反射卡API。
问题
在以往的国外模拟器训练仿真系统中一般的步骤:
1 |
|
因为图像渲染引擎不同,接受的外部驱动指令也不相同。
举个例子如:
1 |
|
选择的驱动指令可能就是:
1 |
|
这样对于图像生成器就比较麻烦了,因为它需要做不同的通信接口,来解析不同的驱动指令,这个时候,老美就发扬了它一贯的传统,制定了一个标准。
波音公司,对就是那个著名的飞机制造与设计公司,制定了一个标准的接口规范,用于统一驱动指令;
统一驱动指令包括:
- 驱动指令的数据传输格式
- 一些常见的传输内容(添加地形、添加实体,更新位置、修改大气环境、设置设点,添加传感器等)。
这样,对于各种图像生成器和驱动器,Serve和Client均保证实现CIGI的接口协议,就可以了。
以后替换图像生成器,比如把OpenGL替换为DX的,接口部分就不需要修改了,服务器端也可以保持不变。
CIGI
CIGI全称是:Common Image Generator Interface,通用的图像生成器接口。
它包含了如下图所示的内容:
- CIGI Class Library 是CIGI的接口协议实现SDK, 可以采用静态链接和动态链接,支持windows和linux;
- CIGI 3/4 Host Emulator 是一个图像指令驱动器,这是波音预先提供的一个做好的图像指令驱动器,包含了
*.def
的配置文件,一些常用的图像驱动指令,支持windows和RTx(实时操作系统模式),这是一个基于MFC的程序 - CIGI Multi-PurPose Viewer是一个图像生成器,即IG ,这是一个基于OSG渲染引擎的图像生成器。实现了CIGI的SDK。
- CIGI ICD似乎是GICI的接口协议文档
- MPV Content是CIGI Multi-PurPose Viewer图像生成器,运行时的数据部分,包括地形、模型、粒子特效,hud等。
参考资料
CIGI介绍
https://blog.jackeylea.com/ig/intro-of-ig/