论文部分内容阅读
摘要:本文分析了Vega 开发环境的主要特点及Lynx各个模块的功能,重点讨论了在Vega 环境下利用Lynx开发虚拟现实应用程序的主要过程,从而完成虚拟仿真软件的开发。
关键词:Vega;Lynx;应用程序接口
中图分类号:TP391.9 文献标识码:A
1 引言
目前在视景仿真领域用于视景场景管理的软件种类复杂,比较流行的有MultiGen Vega、OpenGVS、Vtree、WTK、OpenInvetor等。每种软件都有各自不同的特点,各个公司也有自己不同的营销策略。其中Vega作为当前实时视景仿真领域的主流高层开发平台,是一种高性能的场景管理软件,用于实时视景仿真、虚拟现实、科学计算可视化等。Vega具有很好的图形环境界面,丰富的应用程序接口API和实用函数库以及大量功能模块,可以为复杂的应用方便快捷地建立场景模型数据的驱动。
2 Vega软件简介
Vega是MultiGen-Paradigm公司推出的实时视景仿真软件环境,主要包括两个方面:一是可视化的图形编程环境Lynx;二是完整的C语言应用程序接口API。Lynx是点击式图形环境,只需鼠标点击就可以驱动图形,可以快速、容易地改变应用性能、显示通道、多CPU资源分配、视点、特殊效果、运行时间、系统配置、模型和数据库等等,而这些都不涉及源码。它能够使用户在极短的时间内开发出完整的实时仿真应用。它将最后的仿真应用程序存储为ADF(Application Definition File)格式。通过C语言接口来实现对视景仿真应用进行软件控制,使用户实现更灵活的视景仿真系统。所有的Vega应用程序接口包括头文件、相关类及函数命名都以Vg开头。每一个Vega类是一个完整的控制结构,可以随意地设置和改变模型的属性。
LynX提供了很多功能模块,大大提高了仿真对象模型构造效率。借助LynX,只需修改某些参数,不用编写任何代码或进行编译处理,就可以构造出仿真对象模型。在仿真对象模型中,可以指定可见对象、操纵方式、运动方式、视点与操纵对象间的关系、显示通道、光照环境、云雾、运动对象与其他对象间交叉关系、声音及触发方式等。Lynx编程环境的具体作用为:
(1) 图形用户界面软件(运行Lynx软件,显示界面);
(2)以图形界面的形式,供用户设置环境、操作参数等;
(3) 定义、生成和预览Vega应用程序;
(4) 参数设置结果生成、存储在ADF文件。
3 利用Lynx编程环境进行二次开发
我们利用Lynx编程环境进行二次开发时,首先要用Lynx编程环境建立一个最简单的ADF文件。由于它的各类参数已自动设置(缺省值),各类之间的关联已自动建立。我们只需要编程实现对少量特定参数的设置或修改,就可以实现特定的目标。
关于Lynx编程环境需要注意的是:
(1)Lynx编程环境首先用缺省值为每一个类设置参数;
(2)Lynx编程环境自动建立各类之间的关联关系;
(3)用户使用Lynx编程环境实际上是对缺省值进行修改,以实现特定的目标。
关于Vega类需要注意的是:
(1)类内一些参数是必设项,必须设置;
(2)类与类之间存在着关联,必须正确建立这些关联关系;
(3)二次开发编程必须用语句实现每一种关联关系。
利用Lynx编程环境建立ADF文件,并用ADF文件设置系统,可以使我们将精力集中在特定的问题上,大大减少编程工作量。
用Lynx建立一个ADF文件,我们需要注意:三维模型文件是以Object的形式调入的,经历了文件到数据集(DS),最后投入场景(Scenes)的过程;Observer与Motion关联在一起,通过对Motion的控制实现对Observer的运动控制。通过以上关联,我们设定需要的参数,许多的选项可以采用默认选项。完成后保存的ADF文件,我们可以用“记事本”打开该文件,显示其内容及存储数据格式。
Vega有三种应用程序模型:
(1)经典模型,主程序为main();
(2)标准的Windows应用程序,主程序为WinMain();
(3)基于MFC的Windows应用程序。
其应用程序模式如下:
vgInitSys();//初始化系统
vgDefineSys( "myapp.adf" );//定义系统
vgConfigSys(); //设置系统
while( 1 ) {//实时循环体
vgSyncFrame();//循环同步控制
vgFrame();//调用内部函数
}
应用程序前半部分设置系统;循环体是实现场景动画浏览的程序部分。一般在循环体前设置各个类的参数,根据需要少量参数可在循环体内设置。
以上程序编译运行后就可以对myapp.adf文件定义的场景进行漫游。如果添加了用户定制代码,则可以根据定制代码控制场景的变化。之所以这么几条语句就完成了一个模拟场景漫游的编程,完全是由于Lynx 程序定义的ADF文件完成了大量的程序初始化工作,才使得Vega 编程变得如此简单。
如果掌握了Vega 各个模块类及其函数的功能与使用方法,用户就可以根据具体任务的需求在用户定制代码区添加自己的代码,完成独特的虚拟仿真软件的开发。
——————————
作者简介
刘世彬(1977-),男(汉族),河北邯郸,沈阳炮兵学院,讲师,研究方向:作战模拟与系统仿真。
刘兴彦(1966-)男(汉族),吉林白城,沈阳炮兵学院,副教授,研究方向:自行突击炮作战训练仿真模拟。
关键词:Vega;Lynx;应用程序接口
中图分类号:TP391.9 文献标识码:A
1 引言
目前在视景仿真领域用于视景场景管理的软件种类复杂,比较流行的有MultiGen Vega、OpenGVS、Vtree、WTK、OpenInvetor等。每种软件都有各自不同的特点,各个公司也有自己不同的营销策略。其中Vega作为当前实时视景仿真领域的主流高层开发平台,是一种高性能的场景管理软件,用于实时视景仿真、虚拟现实、科学计算可视化等。Vega具有很好的图形环境界面,丰富的应用程序接口API和实用函数库以及大量功能模块,可以为复杂的应用方便快捷地建立场景模型数据的驱动。
2 Vega软件简介
Vega是MultiGen-Paradigm公司推出的实时视景仿真软件环境,主要包括两个方面:一是可视化的图形编程环境Lynx;二是完整的C语言应用程序接口API。Lynx是点击式图形环境,只需鼠标点击就可以驱动图形,可以快速、容易地改变应用性能、显示通道、多CPU资源分配、视点、特殊效果、运行时间、系统配置、模型和数据库等等,而这些都不涉及源码。它能够使用户在极短的时间内开发出完整的实时仿真应用。它将最后的仿真应用程序存储为ADF(Application Definition File)格式。通过C语言接口来实现对视景仿真应用进行软件控制,使用户实现更灵活的视景仿真系统。所有的Vega应用程序接口包括头文件、相关类及函数命名都以Vg开头。每一个Vega类是一个完整的控制结构,可以随意地设置和改变模型的属性。
LynX提供了很多功能模块,大大提高了仿真对象模型构造效率。借助LynX,只需修改某些参数,不用编写任何代码或进行编译处理,就可以构造出仿真对象模型。在仿真对象模型中,可以指定可见对象、操纵方式、运动方式、视点与操纵对象间的关系、显示通道、光照环境、云雾、运动对象与其他对象间交叉关系、声音及触发方式等。Lynx编程环境的具体作用为:
(1) 图形用户界面软件(运行Lynx软件,显示界面);
(2)以图形界面的形式,供用户设置环境、操作参数等;
(3) 定义、生成和预览Vega应用程序;
(4) 参数设置结果生成、存储在ADF文件。
3 利用Lynx编程环境进行二次开发
我们利用Lynx编程环境进行二次开发时,首先要用Lynx编程环境建立一个最简单的ADF文件。由于它的各类参数已自动设置(缺省值),各类之间的关联已自动建立。我们只需要编程实现对少量特定参数的设置或修改,就可以实现特定的目标。
关于Lynx编程环境需要注意的是:
(1)Lynx编程环境首先用缺省值为每一个类设置参数;
(2)Lynx编程环境自动建立各类之间的关联关系;
(3)用户使用Lynx编程环境实际上是对缺省值进行修改,以实现特定的目标。
关于Vega类需要注意的是:
(1)类内一些参数是必设项,必须设置;
(2)类与类之间存在着关联,必须正确建立这些关联关系;
(3)二次开发编程必须用语句实现每一种关联关系。
利用Lynx编程环境建立ADF文件,并用ADF文件设置系统,可以使我们将精力集中在特定的问题上,大大减少编程工作量。
用Lynx建立一个ADF文件,我们需要注意:三维模型文件是以Object的形式调入的,经历了文件到数据集(DS),最后投入场景(Scenes)的过程;Observer与Motion关联在一起,通过对Motion的控制实现对Observer的运动控制。通过以上关联,我们设定需要的参数,许多的选项可以采用默认选项。完成后保存的ADF文件,我们可以用“记事本”打开该文件,显示其内容及存储数据格式。
Vega有三种应用程序模型:
(1)经典模型,主程序为main();
(2)标准的Windows应用程序,主程序为WinMain();
(3)基于MFC的Windows应用程序。
其应用程序模式如下:
vgInitSys();//初始化系统
vgDefineSys( "myapp.adf" );//定义系统
vgConfigSys(); //设置系统
while( 1 ) {//实时循环体
vgSyncFrame();//循环同步控制
vgFrame();//调用内部函数
}
应用程序前半部分设置系统;循环体是实现场景动画浏览的程序部分。一般在循环体前设置各个类的参数,根据需要少量参数可在循环体内设置。
以上程序编译运行后就可以对myapp.adf文件定义的场景进行漫游。如果添加了用户定制代码,则可以根据定制代码控制场景的变化。之所以这么几条语句就完成了一个模拟场景漫游的编程,完全是由于Lynx 程序定义的ADF文件完成了大量的程序初始化工作,才使得Vega 编程变得如此简单。
如果掌握了Vega 各个模块类及其函数的功能与使用方法,用户就可以根据具体任务的需求在用户定制代码区添加自己的代码,完成独特的虚拟仿真软件的开发。
——————————
作者简介
刘世彬(1977-),男(汉族),河北邯郸,沈阳炮兵学院,讲师,研究方向:作战模拟与系统仿真。
刘兴彦(1966-)男(汉族),吉林白城,沈阳炮兵学院,副教授,研究方向:自行突击炮作战训练仿真模拟。