基于Vega交通事故的3D场景仿真重现

2014-11-19 05:10崔海龙
电脑知识与技术 2014年30期
关键词:碰撞虚拟现实交通

崔海龙

摘要:中国拥有全世界1.9%的汽车,引发的交通死亡事故却占了全球的15%,已成为交通事故最多发的国家。鉴于交通事故的如此频发,事故的责任判定成为了热点问题。该课题以Vega三维仿真软件作为开发平台,通过设置Lyn图形界面和API编程,驱动两辆小车在设定的道路上行驶,检测碰撞并触发特效。真实的还原交通事故场景,可为交通肇事的责任判定提供参考。经仿真实验,该场景系统在可以流畅的运行,满足课题要求。

关键词:交通;虚拟现实;碰撞;特效

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)30-7182-04

虚拟现实(Virtual Reality ,VR)技术,顾名思义,是通过虚拟的手段,将现实世界的场景或者事件仿真重现。这项技术能更为直观的去展示现实生活,这相比于传统的图文展示更为直观、形象。可靠的视觉支持和灵活的算法根基,使得这项技术可以应用的范围广泛到生活中的每一处。

国内的虚拟现实技术在飞速的发展,已经到了一个相对成熟的阶段。对于交通事故的重现这一课题,技术层面上已经没有障碍。然而实际生活中却更多的使用动画技术,而非真正意义上的虚拟显示技术。

本文使用的Vega是美国MultiGen-Paradigm公司开发的一套非常先进的软件环境,他主要用于虚拟现实技术中的实时视景仿真、声音仿真以及科学计算可视化等领域。这对于本课题的研究提供了强大的技术基础。该文就是利用此软件进行的交通事故的虚拟现实重现。

1 LynX中模型场景设置

1.1小镇场景设置及车辆模型的加入

本文选择vega安装目录下自带的小镇场景(town.flt)作为实验场景。在图标栏中 “Scences”相关面板 “Select a Class instance”对话框中添加已建立的模型对象“town”。设定观察场景,“Tools”下“Scence Viewer”,改用正交投影(Orthographic)来观察场景,移动鼠标,确定某一坐标,定位标记。转用透视图观察,如图1所示。运动模式的调整, “Motion Models”面板,在“Motion Model Type”下选择“drive”模式。控制“Rename Instance”,将缺省的运动模式实例名“Default”改为“drive”。小镇场景设置完毕。

本文需要模拟两辆车碰撞的场景,故需要新建两个“car”模型,新建一个名为“car”的模型对象,对应的模型文件在Vega安装文件中名为esprit.flt。同上,加入“car2”模型。由于小车模型数据库中朝着正东方向,为了保证小轿车前进方向与运动方向保持一致,必须调整模型对象绕Z轴逆时针旋转90°。在面板区Objects中加入car和car2两个角色对象。

1.2角色设置

模型是静态的,角色是可以灵活调控的,故需创建角色,之前需要给角色分配扇区。新建一个“car_use”的Isector实例。在Isector面板设置“Method”选择“TRIPOD”项,确保观察者视点始终保持相对地面的距离。Isector面板区的“Target Isector Class”,将目标Isector掩码设置为“Terrain All”。Players面板中,创建一个名为“car1”的角色对象实例。角色对象面板区中Objects列表旁的添加car模型。Isector列表旁添加car_use Isector。同上创建“car2”角色对象实例。

此时可以选择两种方案,一种是直接用path工具,设置路径,分别绑定两辆小轿车。经实测,这种设置方法,比较难以确定路径点,而且在路径点比较多的情况下,容易弹出错误。所以这个课题,采用API编程进行路径的设置,在第三章会有具体介绍。本课题需要设置两辆小轿车在某路口相碰撞,故需定位两辆小车初试位置,以及碰撞位置,图2为碰撞附近位置展示。

1.3观察者模式的选择

观察者在虚拟现实技术中,是核心的模块。这一点在Vega实时视景仿真系统中也是一样。如果用户将自己设身处地于虚拟场景之中,用户的眼睛就是观察者,观察者的位置就是视点位置。通过观察者,用户才能把其他描述虚拟场景元素信息、状态信息和控制信息等模块类的实例联来,继而将虚拟场景画面连续性的向用户展现。Vega中的观察者在场景中有六种定位方式,其中包括手动调整方式、按指定的运动模式定位、栓系模式、按照固定路径运动模式等。本课题采用的是Tether-Follow模型,观察者固定在角色对象的某个偏移位置上,可以设想一下拍摄运动汽车中的演员时的情景:摄影机固定在车前或者车旁的固定支架上跟着汽车一起运动,镜头始终对着车里的演员。观察者使用这种定位方式就很容易达到上述的拍摄效果,观察者(摄相机)距角色位置由X、Y、Z三个坐标轴方向上的偏移量决定,观察者的角度由偏转角(H)、俯仰角(P)和侧偏角(R)控制。

1.4 Vega特殊效果模拟模块

Special Effects面板创建 “car1_explosion”的特效实例。角色对象面板区中Type下拉菜单,选择Explosion。角色对象面板区中Style下拉菜单,选择New。继而设置Offset,Scale。同上添加“car1_debris”“ car1_flash”、“ car1_fire”、“ car2_explosion”、“ car2_debris”、“ car2_flash”、“ car2_fire”。

点击Objects面板图标按钮,选中角色对象面板区中“Fx Attachment”面板,选中car1,将关于car1的四个特效加入。同上,将关于car2的四个特效加入。Scenes面板,选中角色对象面板区中“Fx Attachment”面板,选中Default,在Special Effects区域将所有特效全部加入。endprint

猜你喜欢
碰撞虚拟现实交通
繁忙的交通
小小交通劝导员
REALITY BITES
微博文化与当前高校思想政治教育的碰撞与融合
虚拟现实技术向科幻小说借灵感
浅谈虚拟现实
阅读理解三则