1. CIGI是什么?

    在介绍CIGI之前,需要提到一个在视景仿真中比较流行的概念, IG(Image Generator),我把它翻译为图像生成器。 顾名思义:它的作用就是用于生成图像。  主要的用途是模拟器训练,硬件设备训练等。

  • IG的特点是

 1)   图像生成器可以接受外部的驱动指令,生成一帧一帧的图像,并且是基于3D图形理论构建的图像生成器。

 2)  图像生成器不具有仿真逻辑、游戏逻辑,即它不包含人工智能,飞机轨道计算的功能。

 3 )图像生成器具备显示图像、显示地形、模型,实体与地形的匹配、显示天气、改变视点,视场角等

 4)外部的驱动指令:可以包括:Socket, HLA/RTI(其实这也是一种Socket),

  •  IG与OSG和Vega Prime的区别

  OSG是三维渲染引擎, Vega Prime也是常用的三维渲染工具,不具备外部驱动功能,IG图像生成器可以基于 OSG, OpenGL, Vega Prime构建。

  •  比较常见的IG

  我知道的有 VR-Vangage IG(当然VantageIG的功能要弱很多了,汗。。。) 和 EPX。

    IG的功能可以概括为:

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

  •  IG的设计思想与作用    IG的设计思想是: 对比传统的交互式的三维显示系统,比如游戏魔兽争霸,它可以接受鼠标与键盘, 英雄攻击目标,需要计算目标的血量等。但是IG是用于实时和高保证的生成图像, 且有些图像需要传送到特殊的显示设备,比如佩戴头盔等才可以观察。所以为了保证高速的生成,它一般不接受鼠标和键盘的响应,同时也不处理场景和目标的逻辑,比如飞机的飞行轨道的计算等,全部来自外部输入。

   底层通信可以选择通过以太网(低速)、内存反射网(光纤,高速)等高速设备传入和更新数据。

   具体的网络层为socket UPD或则是Ge 公司的内存反射卡API。

  1. CIGI的作用与起源

  CIGI 全称是:

Common Image Generator Interface , 通用的图像生成器接口

在以往的国外模拟器训练仿真系统中对于步骤1:

接受外部驱动指令--->高保真的显示图像;

 

因为图像渲染引擎不同,接受的外部驱动指令也不相同。

举个例子如:

   send  Add terrrain 给图像生成器发送指令,添加地形。

Example 1:

 

   选择的驱动指令可能就是: send  terrain  name "boston.flt" lat lon ... 等

                          也可能是:send name "boston.flt"  lat, lon terrain ;

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

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

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

这样,对于各种图像生成器和驱动器,Serve和Client均保证实现CIGI的接口协议,就可以了。

   以后替换图像生成器,比如把OpenGL替换为DX的,接口部分就不需要修改了,服务器端也可以保持不变。

 

CIGI的具体内容:

cigi的网址在:http://sourceforge.net/projects/cigi/?source=dlp

它包含了如下图所示的内容:

   

 

 CIGI 3 Host Emulator 是一个图像指令驱动器, 这是波音预先提供的一个做好的图像指令驱动器, 包含了 *.def的配置文件,一些常用的图像驱动指令, 支持windows和RTx(实时操作系统模式),这是一个基于MFC的程序

 CIGI Multi-PurPose Viewer是一个图像生成器,即IG ,这是一个基于OSG渲染引擎的图像生成器。实现了CIGI的SDK。

 CIGI Class Library 是CIGI的接口协议实现SDK, 可以采用静态链接和动态链接,支持windows和linux;

 CIGI ICD似乎是GICI的接口协议文档

  MPV Content是  CIGI Multi-PurPose Viewer图像生成器,运行时的数据部分,包括地形、模型、粒子特效,hud等。

本想补充一个cigi的PPT,更好的介绍CIGI的结构体系图,但是无奈sourceforge的网址总是被墙 ,只好先整理这些了。