
数学热本与变用
学术论坛
基于协同工作控制的VRML虚拟现实系统
张蓓
(山东科技大学信息系山东泰安271021)
摘要:以实现CSCW为日标,在不效变现有网络带宽和网络协议的前提下,设计了基于VRML的网络虚拟现实的系统结构和工作流程,深入研究了主要关键被术。通过利用细节层次模型和按需传输方法,实现了用户工作空间的快速生成,满足了低带宽要求;通过构建多用户通信环境和构造通信数据包,保证了网络通信的实时性,实境了WYSIWIS效果;通过引入操作令障思想和碰撞检测技术,解决了多个用户同时对某个对象操作而引发冲突的问题,实现了对象模型的协同并行控制。最后给出了应用实例
关键调:盛拟现实盛拟现实建模语言协同工作分布式虚拟环境关键技术
中图分类号:TP391
1、网络虚拟现实系统
文献标识码:A
文章编号:1007-9416(2012)05-0229-01
2.3构建通信数据包
在网络虚拟现实中,为了实现WYSIWIS效果,必需构建高效的
1.1系统结构
在研究网络虚拟现实基本特征和功能要求基础上,系统分为功能层,交互层和数据层。其中功能层位于客户端,提供分布式用户工作空间、用户替身和交流白板,实现客户端用户工作的可视化。交互层位于应用服务器端,主要生成多用户工作空间、控制各类信息传递,并实现多用户的协同交互。数据层位于信息服务器端,由用户数据库和模型数据库构成。分层结构使系统具有良好的灵活性、扩展性和可维护性。
1.2工作流程
客户端不断监听与接收应用服务器端的信息,支持用户在工作空间中进行各种操作,并及时将用户信息提交到服务器进行处理。用户登录时,执行Script类的initialize方法,建立与服务器端的连接,创建监听服务器以及用户操作线程,并加载用户工作空间到客户端。客户端与服务器端的通讯通过Java通讯软件层实现,后面将对这个关键技术进行详细阐述。用户注销时,调用shutdown方法删除监听服务器和用户操作线程,撤销与服务器端的连接
应用服务器根据用户需求,生成用户工作空间,并根据用户的请求类型,对虚拟环境中的物体或物体的属性进行查询和修改,实现共享空间的一致性维护。用户在空间工作时,若改变了场录内容、属性,基至需要剧新其他用户的工作空间,并不急于呈现交互的结
果,而是交由服务器处理。 2、关键技术
2.1生成用户工作空间
在网络虑拟现实中,整个虚拟空间的数据量非常庞大。在现有网络条件下,若要每个用户下载整个虚拟空间到客户端,是没有必要和不现实的。
用户在虚拟空间中用替身(Avatar)表示,系统用VRML原型(PROTO)定义客户对象,通过传感器ProximitySensor跟踪替身的方位。同时,替身之间通过文本和动函进行交流,用文本框控件输人文本,通过Script节点控制TimeSensor传感器,进而控制 OfientadonInterpolator传感器和Positionlnterpolator传感器动态改变替身的方位,实现点头、微笑等动画效果。
2.2建立多用户通试环境
系统中,多用户虚拟环境之间的通讯由Java通讯软件层实现由于VRML不是一种编程语言,不支持多用户环境所必须的共享行为和环境状态的连续性,其网络通讯和分布式控制能力需要借助与 Java语言的结合来实现。有2种结合方式,即通过内部Script节点(ScriptAuthoringInterface,SAI)和外部编程接口(External AuthoringInterface,EAI)。使用EAI可以在JavaApplet中输入各种参数以改变场录的内容,控制灵活,但它不是真正意义上的分布式控制,SAI方式不需要有JavaApplet的存在,只要为场景中的物体写相应的脚本代码即可。利用Script节点的这一特点,可用Java编写成脚本语言,将Java的网络功能和文件访问功能引人到虚拟场录中,使其引用的Java语言通过TCP/IP协议接收网络数据,并用网络数据控制虚拟环境中对象的属性,从面建立起多用户通讯环境。
通信数据包并有效传输,才能使所有用户获得的信息保持一致。系统主要构建了2种通信数据包满足这个要求。
一种是操作数据包,即用户在虚拟空闻工作时产生的数据信息(用户操作的对象,操作的类型,操作的结果),如用户的加入或退出,替身移动或转向,替身自身动作,创建或删除一个物体,对物体进行移动(旋转、缩放、改变颜色)变换处理,对物体进行锁定或解锁等,形成一个请求数据包VPacket(操作对象类型VKIND.操作对象序号VID、操作类型VIP、操作的数据类型Vfiled、操作的数据值 value),这个数据包传送到服务器进行处理后,服务器会产生一个结构相同的响应数据包,并传回给该用户。必要时这个数据包可能
要广播给所有其他用户。 3、应用实例
我们在校园网分布式虚拟环境下,实现了一个多用户协同组装电脑的原型系统。用户登录实验系统后,系统为每个用户生成自已的工作空间,用户在工作空间中搬动电脑配件并安装到主板的相应位置。在搬动配件之前,用户需要申请自已的工作任务以确定安装哪个设备,当每个用户成功安装设备后,即时发送信息提示其他用户。系统检测所有配件的安装情况,以决定是否完成协同工作的任务。实验场录与电脑配件用3DSMAX创建,用户替身采用Poser绘制,导出的VRML文件在CosmoWorlds中修改并添加交互。系统采用集中式数据库方式,主要存储电脑配件设备的参数信息和用户信息,与数据库的连接采用JDBC实现。下图是在分场录中安装CPU
的界面。 4、结语
本文以实现CSCW为目标,在不改变现有网络带宽和网络协议的前提下,解决了VRML网络虚拟现实系统中用户虚拟空间的快速生成,VRML场录的实时通讯、多用户操作的协同控制等问题,深人研究了关键技术,并以网络环境中协同组装电脑为例进行了实现。为了实现真正高效、大规模的分布式虚拟现实,还需要在模型的优化、多用户业务规则的协同策略、协同工作过程的触发策略、突发事件的处理等方面作进一步研究,这也是我们今后研究工作的重点。
229