CIGI介绍

IG

IG,Image Generator,图像生成器。

它的作用就是用于生成图像。主要的用途是模拟器训练,硬件设备训练等。

IG的功能可以概括为:

1
接受外部驱动指令--->高保真的显示图像--->并将图像通过PCI、DVI等硬件接口传出其他显示设备。

架构

架构

  • 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
send  Add terrrain;#给图像生成器发送指令,添加地形。

选择的驱动指令可能就是:

1
2
send  terrain  name "boston.flt" lat lon ... ;
send name "boston.flt" lat, lon terrain ;//或者

这样对于图像生成器就比较麻烦了,因为它需要做不同的通信接口,来解析不同的驱动指令,这个时候,老美就发扬了它一贯的传统,制定了一个标准。

波音公司,对就是那个著名的飞机制造与设计公司,制定了一个标准的接口规范,用于统一驱动指令;

统一驱动指令包括:

  • 驱动指令的数据传输格式
  • 一些常见的传输内容(添加地形、添加实体,更新位置、修改大气环境、设置设点,添加传感器等)。

这样,对于各种图像生成器和驱动器,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://feater.top/ig/intro-of-ig/
作者
JackeyLea
发布于
2023年11月27日
许可协议