论文部分内容阅读
[摘要]随着仿真技术、计算机技术和网络技术的飞速发展,复杂系统仿真的应用领域不断扩大,对仿真过程的直观性、交互性和逼真度的需求日益提高。实时分布仿真环境下的视景仿真技术是仿真技术研究中的一项关键技术,因此对其进行研究具有重要的意义。对实时分布仿真环境下的视景仿真技术进行研究。分析实时分布仿真环境下视景仿真技术的需求,设计在实时分布仿真环境下视景仿真系统的构建,确定可行的软、硬件开发环境。
[关键词]视景仿真 实时分布 虚拟现实
中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)0810030-02
一、序言
仿真技术是以控制论、系统论、相似原理和信息技术为基础,以计算机和专物理效应设备(模拟再现真实世界环境)为工具,借助系统模型对实际或设想系统进行动态试验研究的一门综合性技术[1]。
虚拟现实技术,又称灵境技术,是20世纪末发展起来的一门崭新的综合性信息技术。它集先进的计算机技术、传感与测量技术、仿真技术、微电子学技术于一体,利用计算机产生一种虚拟环境,通过视、听、触觉等作用,使用户产生身临其境感觉的交互式视景仿真,实现用户在该环境进行自然的交互。
视景仿真技术是仿真技术发展的一个新的方向,为现代仿真注入了新的活力,是虚拟现实技术、分布式交互仿真技术研究的主要内容之一。视景仿真技术是一种基于可计算信息的沉浸式交互环境,它采用计算机图形图像技术,根据仿真的目的,构造仿真对象的三维模型并再现真实的环境,达到逼真的仿真效果。视景仿真技术有利于缩短试验和研制周期,提高试验和研制质量,节省工程漫游、名胜古迹虚拟旅游、虚拟现实房产推销系统、建筑群火灾事故紧急撤离系统、虚拟现实模拟培训、交互式娱乐仿真等等。特别是在军事领域,建立起在实时分布环境下的视景仿真系统对军事作战训练十分重要,例如运用场景模拟技术建立起一个虚拟的、非常逼真的电子战场环境,使攻防双方的作战人员沉浸在由计算机产生的作战环境中。同时视景仿真为武器装备研制、战术演练和训练提供了非常有效、经济的手段和途径,具有十分明显的经济效益并成为军事领域里重要的高科技手段。
鉴于视景仿真在各个领域中的重要作用,研究视景仿真中的关键技术,尤其是实时分布环境下视景仿真中的关键技术对于虚拟现实技术,特别是军事仿真的发展具有重大的意义。
二、视景系统需求分析[2]
视景仿真采用计算机图形图像技术,根据仿真的目的,构造仿真对象的三维模型或再现真实的环境,达到非常逼真的仿真效果。
视景仿真系统可包括仿真环境的制作和仿真驱动。仿真环境的设计主要包括:模型的设计制作、场景的构造和渲染、纹理的设计运用、特殊效果的设计等,这要求制作出逼真的三维模型、纹理和特效。仿真驱动主要包括:模型的调用、场景的驱动、模型实体的仿真、仿真数据的传输调用、视景子系统的分布交互、大地形的处理等,它要求高速逼真地再现仿真环境和仿真实体,实时响应交互操作。
在实时分布仿真环境中,对视景仿真系统的要求如下:
(一)实时性
在视景仿真中,实时性主要表现在:运动实体位置和姿态的实时计算与动态绘制,画面的刷新更新必须达到人眼察觉不到闪烁的程度,即要使场景平滑显示,通常为每秒30-60帧;在有与用户交互的情况下,系统的图形生成能立即做出反应并产生相应的环境和场景的变化,时间延迟不应大于0.1秒,至多不能大于0.25秒。
(二)数据的准确性
数据和信号的显示必须准确,比如在飞行器虚拟试验中,必须根据仿真程序计算出的仿真数据准确地绘制仿真实体的运动状态,将误差控制在一定的范围内。
(三)效果的逼真性
逼真的视景效果能够给人以身临其境的感觉,能够让人比较直观地了解事物,掌握当前的变化和未来的变化趋势。
(四)交互操作
交互操作主要是指在网络分布环境下多个仿真子系统间的协调工作。视景仿真系统通常不是孤立存在的,而是作为仿真系统的一个有机组成部分,需要与控制仿真子系统进行数据交互。如飞行训练系统中,由控制仿真子系统接收并处理培训人员的操作,得到相关的信息,并将飞机的飞行速度、轨迹等信息通过网络传递到视景仿真子系统中,视景仿真子系统根据控制仿真子系统提供的运动信息模拟飞机的飞行。
(五)软件的可移植性
这里的可移植性有两个含义:一是在同一仿真系统内不同节点上移植,一般不需要对软件进行改动;二是移植到不同的仿真系统,由于网络环境的变化,此时可能需要修改相应的接口。
三、视景系统总体设计
视景系统往往分为视景客户端和视景控制服务器端,两者以C/S模式进行通讯。同时,系统通常利用数据库来存储仿真对象的几何模型和模型的运动参数,为视景客户端和视景控制服务器处理对象提供数据[3]。视景控制服务器端负责对视景客户端、仿真对象的发布控制以及各视景客户端的反馈消息进行处理,确保在各客户端之间各仿真对象的运动保持同步。视景客户端通过视景控制服务器端对对象进行相应的控制。
视景控制服务器端可划分为这样几个功能模块:
1.主模块:主要是控制和协调各模块间的交互。
2.对象管理模块:主要负责仿真对象的配置,包括对象的创建、删除、编辑等。
3.数据管理模块:主要负责仿真对象的数据管理和客户端反馈消息的处理。
4.仿真验证模块:验证仿真对象的实际仿真结果与理论值的差异。
5.客户管理模块:主要负责与客户端的交互。每隔一定的时间,服务器就要向客户端发布场景运动体的运动变化属性。客户端则接收视景服务器上的实体仿真信息,进行场景的绘制。
四、视景系统开发平台
实时分布仿真环境下,可能存在着许多相对独立的仿真测试节点;它们协同工作,在仿真过程中生产数据,一方面存储下来供仿真试验后数据的分析和重现,另一方面提供给视景仿真系统进行消费。各节点之间需要大量的信息交互,特别是视景仿真节点,需要具有高速运算能力、高速数据交换能力以及高速图形图像处理能力的计算机系统[4]。
基于上述需求,在本研究课题下,实时分布环境采用VMIC搭建实时网络,视景系统中的节点可配置图形工作站或高档个人计算机,内存要在256M以上,时钟频率在200MHz以上;显卡需要带加速功能的D3显卡;显示器一般为高分辨率的大屏幕显示器(17英寸以上)。
视景仿真系统可选择不同的开发工具,在多种不同的软件平台上开发。大多数开发工具都可支持不同的平台,如Win32、Unix、Linux等。
五、视景系统软件
当仿真的实体模型在三维建模软件上创建以后,需要利用实时三维视景系统软件生成视景[5]。
Vega是Multigen-Paradigm公司用于虚拟现实、实时视景仿真、声音仿真以及其它可视化领域的世界领先级应用软件工具。它采用直观的图形化界面,结合先进仿真功能,简化了复杂视景仿真系统的构建过程,大大提高了仿真软件开发的效率,缩短了开发周期。
Vega是在SGI Performer软件的基础上发展起来的,为Performer增加了许多重要特性。它将易用的工具和高级仿真功能巧妙地结合起来,使用户以简单的操作迅速地创建、编辑和运行复杂的仿真应用程序。由于Vega大幅度地减少了源代码的编程,使软件的维护和实时性能进一步优化变得更加容易,从而大大提高了工作效率。
Vega包括友好的图形环境界面(Lynx)、完整的C语言应用程序接口API、丰富的相关实用库函数和一批可选的功能模块,能够满足多种特殊的仿真要求。
Vega和它的可选模块均支持SGIIRIX平台和windows NT平台,跨平台应用的兼容性达99%。为适应图形工作站的不同配置,Vega备有多处理器版本Vega-MP和单处理器版本Vega-SP。
(一)Vega编程接口
Vega是一个类库,它以C语言的API形式出现。每个Vega类都是一个完整的控制结构,该控制结构包含用于处理和执行特征的各项内容。在Vega中,几乎每一项内容都是以类来完成的。其核心类主要有窗口控制类、模型对象控制类、观察者控制类、场景控制类、运动模式控制类、运动路径控制类等。
(二)Vega的渲染机制
Vega继承了opneGL Performer的多进程的渲染机制,通过多线程技术和并行渲染流水线技术实现对每帧视景的管理以及图形流水线输出图像的生成。
即使是最小的Vega程序也要使用一个应用程序定义文件(ADF)。下面以一个名为“myapp.daf”的文件为例,演示简单Vega应用程序代码:
main()
{
vgInitSys();
vgDefineSys(“myapp.daf”);
vgConfigSys();
while(1)
{
vgSyncFrame();
vgFrame();
/* applicationspecific code*/
}
}
vgSyncFrame函数把请求的线程同步到一个给定的帧率上,其作用为:
1.检查退出标志,如果设置了退出标志则试图退出;
2.执行用户已定义的任何postsync系统回调;
3.更新激活的运动系统、场景运动体、观察者、纹理等;
4.协调输入输出设备的同步。
VgFrame函数在当前帧下进行Vega的执行而引起的所有内部处理工作,其作用为:
1.执行用户指定的任何preframe系统回调;
2.启动选择和绘制线程,选择某一通道并绘制已定义的回调。
六、总结
本文通过分析实时分布仿真环境下对视景仿真系统的需求,设计了视景仿真系统的总体架构;最后介绍了视景系统的开发平台与常用的开发软件。
参考文献:
[1]康凤举,现代仿真技术[M].北京:国防工业出版社,2001:10-245.
[2]廖瑛,梁加红,实时仿真理论与支撑技术[M].北京:国防科技大学出版社,2002:1-43.
[3]郭齐胜,张伟,杨立功,分布交互仿真及其军事应用[M].北京:国防工业出版社,2003:l-31.
[4]吴家铸,党岗等,视景仿真技术及应用[M].西安:电子科技大学出版社,2001:20-75.
[5]龚卓蓉,Vega程序设计[M].北京:国防工业出版社,2002: 6-186.
作者简介:
朱时俊,男,杭州,杭州电子科技大学本科,研究方向为软件工程,中大房地产集团有限公司。
[关键词]视景仿真 实时分布 虚拟现实
中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)0810030-02
一、序言
仿真技术是以控制论、系统论、相似原理和信息技术为基础,以计算机和专物理效应设备(模拟再现真实世界环境)为工具,借助系统模型对实际或设想系统进行动态试验研究的一门综合性技术[1]。
虚拟现实技术,又称灵境技术,是20世纪末发展起来的一门崭新的综合性信息技术。它集先进的计算机技术、传感与测量技术、仿真技术、微电子学技术于一体,利用计算机产生一种虚拟环境,通过视、听、触觉等作用,使用户产生身临其境感觉的交互式视景仿真,实现用户在该环境进行自然的交互。
视景仿真技术是仿真技术发展的一个新的方向,为现代仿真注入了新的活力,是虚拟现实技术、分布式交互仿真技术研究的主要内容之一。视景仿真技术是一种基于可计算信息的沉浸式交互环境,它采用计算机图形图像技术,根据仿真的目的,构造仿真对象的三维模型并再现真实的环境,达到逼真的仿真效果。视景仿真技术有利于缩短试验和研制周期,提高试验和研制质量,节省工程漫游、名胜古迹虚拟旅游、虚拟现实房产推销系统、建筑群火灾事故紧急撤离系统、虚拟现实模拟培训、交互式娱乐仿真等等。特别是在军事领域,建立起在实时分布环境下的视景仿真系统对军事作战训练十分重要,例如运用场景模拟技术建立起一个虚拟的、非常逼真的电子战场环境,使攻防双方的作战人员沉浸在由计算机产生的作战环境中。同时视景仿真为武器装备研制、战术演练和训练提供了非常有效、经济的手段和途径,具有十分明显的经济效益并成为军事领域里重要的高科技手段。
鉴于视景仿真在各个领域中的重要作用,研究视景仿真中的关键技术,尤其是实时分布环境下视景仿真中的关键技术对于虚拟现实技术,特别是军事仿真的发展具有重大的意义。
二、视景系统需求分析[2]
视景仿真采用计算机图形图像技术,根据仿真的目的,构造仿真对象的三维模型或再现真实的环境,达到非常逼真的仿真效果。
视景仿真系统可包括仿真环境的制作和仿真驱动。仿真环境的设计主要包括:模型的设计制作、场景的构造和渲染、纹理的设计运用、特殊效果的设计等,这要求制作出逼真的三维模型、纹理和特效。仿真驱动主要包括:模型的调用、场景的驱动、模型实体的仿真、仿真数据的传输调用、视景子系统的分布交互、大地形的处理等,它要求高速逼真地再现仿真环境和仿真实体,实时响应交互操作。
在实时分布仿真环境中,对视景仿真系统的要求如下:
(一)实时性
在视景仿真中,实时性主要表现在:运动实体位置和姿态的实时计算与动态绘制,画面的刷新更新必须达到人眼察觉不到闪烁的程度,即要使场景平滑显示,通常为每秒30-60帧;在有与用户交互的情况下,系统的图形生成能立即做出反应并产生相应的环境和场景的变化,时间延迟不应大于0.1秒,至多不能大于0.25秒。
(二)数据的准确性
数据和信号的显示必须准确,比如在飞行器虚拟试验中,必须根据仿真程序计算出的仿真数据准确地绘制仿真实体的运动状态,将误差控制在一定的范围内。
(三)效果的逼真性
逼真的视景效果能够给人以身临其境的感觉,能够让人比较直观地了解事物,掌握当前的变化和未来的变化趋势。
(四)交互操作
交互操作主要是指在网络分布环境下多个仿真子系统间的协调工作。视景仿真系统通常不是孤立存在的,而是作为仿真系统的一个有机组成部分,需要与控制仿真子系统进行数据交互。如飞行训练系统中,由控制仿真子系统接收并处理培训人员的操作,得到相关的信息,并将飞机的飞行速度、轨迹等信息通过网络传递到视景仿真子系统中,视景仿真子系统根据控制仿真子系统提供的运动信息模拟飞机的飞行。
(五)软件的可移植性
这里的可移植性有两个含义:一是在同一仿真系统内不同节点上移植,一般不需要对软件进行改动;二是移植到不同的仿真系统,由于网络环境的变化,此时可能需要修改相应的接口。
三、视景系统总体设计
视景系统往往分为视景客户端和视景控制服务器端,两者以C/S模式进行通讯。同时,系统通常利用数据库来存储仿真对象的几何模型和模型的运动参数,为视景客户端和视景控制服务器处理对象提供数据[3]。视景控制服务器端负责对视景客户端、仿真对象的发布控制以及各视景客户端的反馈消息进行处理,确保在各客户端之间各仿真对象的运动保持同步。视景客户端通过视景控制服务器端对对象进行相应的控制。
视景控制服务器端可划分为这样几个功能模块:
1.主模块:主要是控制和协调各模块间的交互。
2.对象管理模块:主要负责仿真对象的配置,包括对象的创建、删除、编辑等。
3.数据管理模块:主要负责仿真对象的数据管理和客户端反馈消息的处理。
4.仿真验证模块:验证仿真对象的实际仿真结果与理论值的差异。
5.客户管理模块:主要负责与客户端的交互。每隔一定的时间,服务器就要向客户端发布场景运动体的运动变化属性。客户端则接收视景服务器上的实体仿真信息,进行场景的绘制。
四、视景系统开发平台
实时分布仿真环境下,可能存在着许多相对独立的仿真测试节点;它们协同工作,在仿真过程中生产数据,一方面存储下来供仿真试验后数据的分析和重现,另一方面提供给视景仿真系统进行消费。各节点之间需要大量的信息交互,特别是视景仿真节点,需要具有高速运算能力、高速数据交换能力以及高速图形图像处理能力的计算机系统[4]。
基于上述需求,在本研究课题下,实时分布环境采用VMIC搭建实时网络,视景系统中的节点可配置图形工作站或高档个人计算机,内存要在256M以上,时钟频率在200MHz以上;显卡需要带加速功能的D3显卡;显示器一般为高分辨率的大屏幕显示器(17英寸以上)。
视景仿真系统可选择不同的开发工具,在多种不同的软件平台上开发。大多数开发工具都可支持不同的平台,如Win32、Unix、Linux等。
五、视景系统软件
当仿真的实体模型在三维建模软件上创建以后,需要利用实时三维视景系统软件生成视景[5]。
Vega是Multigen-Paradigm公司用于虚拟现实、实时视景仿真、声音仿真以及其它可视化领域的世界领先级应用软件工具。它采用直观的图形化界面,结合先进仿真功能,简化了复杂视景仿真系统的构建过程,大大提高了仿真软件开发的效率,缩短了开发周期。
Vega是在SGI Performer软件的基础上发展起来的,为Performer增加了许多重要特性。它将易用的工具和高级仿真功能巧妙地结合起来,使用户以简单的操作迅速地创建、编辑和运行复杂的仿真应用程序。由于Vega大幅度地减少了源代码的编程,使软件的维护和实时性能进一步优化变得更加容易,从而大大提高了工作效率。
Vega包括友好的图形环境界面(Lynx)、完整的C语言应用程序接口API、丰富的相关实用库函数和一批可选的功能模块,能够满足多种特殊的仿真要求。
Vega和它的可选模块均支持SGIIRIX平台和windows NT平台,跨平台应用的兼容性达99%。为适应图形工作站的不同配置,Vega备有多处理器版本Vega-MP和单处理器版本Vega-SP。
(一)Vega编程接口
Vega是一个类库,它以C语言的API形式出现。每个Vega类都是一个完整的控制结构,该控制结构包含用于处理和执行特征的各项内容。在Vega中,几乎每一项内容都是以类来完成的。其核心类主要有窗口控制类、模型对象控制类、观察者控制类、场景控制类、运动模式控制类、运动路径控制类等。
(二)Vega的渲染机制
Vega继承了opneGL Performer的多进程的渲染机制,通过多线程技术和并行渲染流水线技术实现对每帧视景的管理以及图形流水线输出图像的生成。
即使是最小的Vega程序也要使用一个应用程序定义文件(ADF)。下面以一个名为“myapp.daf”的文件为例,演示简单Vega应用程序代码:
main()
{
vgInitSys();
vgDefineSys(“myapp.daf”);
vgConfigSys();
while(1)
{
vgSyncFrame();
vgFrame();
/* applicationspecific code*/
}
}
vgSyncFrame函数把请求的线程同步到一个给定的帧率上,其作用为:
1.检查退出标志,如果设置了退出标志则试图退出;
2.执行用户已定义的任何postsync系统回调;
3.更新激活的运动系统、场景运动体、观察者、纹理等;
4.协调输入输出设备的同步。
VgFrame函数在当前帧下进行Vega的执行而引起的所有内部处理工作,其作用为:
1.执行用户指定的任何preframe系统回调;
2.启动选择和绘制线程,选择某一通道并绘制已定义的回调。
六、总结
本文通过分析实时分布仿真环境下对视景仿真系统的需求,设计了视景仿真系统的总体架构;最后介绍了视景系统的开发平台与常用的开发软件。
参考文献:
[1]康凤举,现代仿真技术[M].北京:国防工业出版社,2001:10-245.
[2]廖瑛,梁加红,实时仿真理论与支撑技术[M].北京:国防科技大学出版社,2002:1-43.
[3]郭齐胜,张伟,杨立功,分布交互仿真及其军事应用[M].北京:国防工业出版社,2003:l-31.
[4]吴家铸,党岗等,视景仿真技术及应用[M].西安:电子科技大学出版社,2001:20-75.
[5]龚卓蓉,Vega程序设计[M].北京:国防工业出版社,2002: 6-186.
作者简介:
朱时俊,男,杭州,杭州电子科技大学本科,研究方向为软件工程,中大房地产集团有限公司。