APP下载

列车车窗雪天特效场景的建模与仿真

2015-06-28郎诚廉

铁路计算机应用 2015年9期
关键词:视景车窗积雪

张 莹,郎诚廉

(同济大学 电子与信息工程学院,上海 200092)

列车车窗雪天特效场景的建模与仿真

张 莹,郎诚廉

(同济大学 电子与信息工程学院,上海 200092)

本文以轨道交通视景仿真为背景,对三维视景仿真特效进行研究。利用Creator建模软件对线路、车站及周边环境进行建模,重点是对雪效及车窗积雪进行建模;并以VC++2005为平台,利用OpenSceneGraph技术实现对三维模型的驱动控制和人机互动。

建模;积雪;雨刷器;人机互动;OpenSceneGraph

三维视景特效的研究,尤其是对如自然环境,灾情特效的仿真研究是当前的热点课题和应用最为广泛的实用技术之一,并在军事演练、城市规划、建筑设计、影视制作、模拟驾驶、大型工程漫游、模拟训练以及交互式娱乐仿真等领域得到了十分广泛的应用。三维实景特效的仿真能满足高要求的仿真需求,它的空间表现能力、人机交互式的操作环境以及带给人的身临其境的感受,都将一改人与计算机之间枯燥、生硬和被动的状况。在轨道交通中已有的实景仿真中可以看到实时下雪场景模拟,却看不到积雪及刮雨器刮雪等效果。本文将重点对车窗视景中的雪效进行研究并实现。

视景仿真主要由场景模型的建立和场景仿真驱动两大块组成。本文将利用MultigenCreator三维模型软件对车窗,雪效及车窗外的场景进行建模,并通过OpenSceneGraph三维驱动技术,对模型进行控制并实现人机互动。

1 模型的设计与建立

传统的三维图形建模软件如MAYA,3DStudio MAX,SoftImage,LightWave3D等都可以用来创建各种各样的三维模型,本课题选用Multigen Creator建模软件。相比前面的建模软件,Multigen Creator的优势在于它是一种实时可视化三维建模软件。它特有的OpenFlight模型数据格式能对每一个模型单元节点进行管理和实时驱动,有利于模型的后续修改和移植,极大地配合了实时视景仿真的需求。同时,它提供了强大的多边形建模、矢量建模以及大场景、大地形精确生成等功能,配合其专业的插件和功能模块,使得用户能够高效、便捷地生成实时三维模型数据库,并能与其他仿真驱动软件能够极好地配合。三维数据库结构如图1所示。

图1 三维数据库结构图

1.1 列车运行场景的构建

Creator常用建模技术有纹理映射技术,公告牌技术,LOD技术,DOF技术,外部引用技术等,运用这些技术对列车运行场景进行建模。步骤如下:

(1)数据采集:本文以上海轨道交通3号线上海南站至石龙路站为例,实地拍摄搜集沿线视景及站台的图片,为后期的纹理制作和外部场景构建提供依据。

(2)数据处理:通过使用Photoshop等软件对采集后的数据进行格式转换,亮度调节以及相应的裁剪,值得注意的是每张纹理的规格都必须满足2n。

(3)模型构建:确定构建顺序,分别对线路、建筑物、树木、站台以及站台上的广告牌、显示器、人物等进行建模。

(4)纹理和材质:对于细节复杂,但重要程度不高的模型,添加纹理和材质可以使其具有很高的逼真度。

(5)场景整合:利用外部引用技术,对在不同.flt文件中建立的不同模型移动复制到同一个.flt文件中。这样不仅能够有效降低模型数据库的规模,节省内存,而且提高了资源的利用率。

1.2 车窗和积雪的建模

1.2.1 车窗与地面积雪的构建

在OpenFlight模型数据库中提供的Switch节点是一种可以控制其子节点现实状态的特殊节点,该节点可以包含一系列的节点掩码,每个掩码都可以对应一种子节点的显示状态组合,用这种方法来表现模型的不同状态。

积雪的效果可以应用Switch节点来实现。以车窗积雪为例,将贴有不同雪效纹理的节点放置在Switch节点下,设置该节点的属性。如图2所示,有4个子节点的Switch节点,改变子节点不同的状态可以设置16种不同的组成状态。在模拟积雪中,用5个不同的状态来模拟,所以设置该节点所包含的掩码数量为5,即模型包括5个不通的显示状态,当前的节点索引值为1,子节点状态为第1个子节点显示,其他子节点不显示。

1.2.2 车内雨刷器的建模

Creator模型数据库中的DOF技术能使模型具有活动的能力,DOF节点可以控制子节点按照设置的自由度范围进行移动或者旋转运动,用这中方法来使模型按照符合逻辑的方向运动,增强了模型数据库的真实性。

雨刷器的运动是一个绕点旋转的过程,所以雨刷器的建模可以使用DOF技术。(1)把需要设置自由度的雨刷器模型的对应节点成为DOF节点的子节点。(2)为该模型对象创建相应的局部坐标系,因为模型对象的运动都是相对该局部坐标系进行的。使用“Local-DOF/Set DOF Limits”菜单命令,如图3,设置DOF节点的自由度方向与范围。

图2 雪效的switch节点设置

图3 雨刷器的DOF节点设置

2 OSG仿真驱动

OpenSceneGraph(OSG)是基于C++平台的应用程序接口(API),它包含了一系列的开源图形库,主要为图形图像应用程序的开发提供场景管理和图形渲染优化的功能。其数据库的支持库可以方便地读写数据,支持大量的数据格式。同时,它有一套节点工具集,支持粒子系统,特效框架结构,交互控制与虚拟相关的效果。

前文通过利用Creator软件建立好模型后,为保证.flt文件中纹理效果,使用osgConv工具将.flt文件转成.ive文件。在C++平台调用OSG的API,对三维实景进行渲染。

本课题的场景控制主要包括对列车运动、积雪以及雨刷器动作的控制,为实现人机互动,可以通过OSG事件响应来实现。

2.1 OSG事件响应与交互机制

在OSG中,真正处理事件的函数是handle-NativeWindowingEvent,系统在捕捉到事件后,将这些待处理的事件压入到事件序列即osgGA::Event-Queue中。如图4所示,OSG里有专门的事件处理类osgGA::GUIEventHandler中的handle函数对该序列中的所有事件进行响应。GUIEventHandler是一个回调函数,在每一帧的渲染当中OSG会遍历所有的回调函数,所以当前事件的处理可以很快的响应到下一帧场景的变化当中。Handle可以重载多次,实现不同的功能。

图4 OSG事件响应机制

与场景中的物体进行交互,场景中的数据主要由Viewer负责进行渲染。Viewer的addEventHandler专门用于处理事件,它会为当前视口加入事件处理器,即osgGA::GUIEventHandler类的一个对象,通过生成一个类从osgGA::GUIEventHandler中公有派生,在生成的类中处理各种事件。然后使用viewer类的addEventHandler函数将对象加入到事件处理序列中。

2.2 场景漫游的驱动

以模拟列车视点的移动,需要设计一个合理的漫游器,漫游器改变的是观察者的位置以及观察方向。在编写漫游器前,设计符合逻辑的矩阵操作器是非常重要的。设计步骤如下:

(1)编写一个继承自osgGA::GUIEventHandler类的新类。

(2)重载handle()函数,并在handle()中添加合适的事件处理函数,并指定执行相关的动作。通过添加键盘的响应函数来控制列车运行的速度。

(3)定义视点初始位置和角度,并设置相关矩阵变化函数。根据线路模型的数据:distance表示列车移动的位移,posx,posy,posz用来确定列车模型在场景中的位置,代表模型中心点的坐标,rotx,roty,rotz用来确定道路模型的朝向,绕3个坐标轴的旋转角度。随着distance的增加,会给出一些列的pos与rot数据。根据这些数据,去设置漫游器的矩阵。程序的流程图如图5所示。

图5 矩阵实现流程图

(4)关联操作器到当前视景中,viewer→setCa meraManipulator(camera)。

2.3 雨刷器动作的驱动

在OSG中,osgSim::DOFTransform类是对Multigen中DOF操作的一个封装,setCurrentHPR函数可以用来实现雨刷器模型的旋转;osgSim:: MultiSwitch类是基于OpenFlight中的switch的操作,setValue可以用来控制不同积雪纹理的显示或隐藏。

雨刷器模型摆动的范围为0。~120。,设运动一周的时间为T,那么雨刮器的角速度程序中设置DOF节点正向角速度为ωwipe,反向角速度为–ωwipe。当在一个周期中运行到时间t时,控制DOF节点使雨刷运动到ωwipe•t,同时控制Switch节点,使对应的0~ωwipe•t区域的积雪刷除。

实现效果的程序结构如图6所示。

图6 雨刷器动作实现的程序结构

3 仿真结果

利用Creator建模,以VC++2005为开发平台,并将模型导入OSG中渲染,实现对模型的控制;利用osgGA::GUIEventHandler类进行人机互动。图7为晴天无司机舱时搭建的场景;加入司机舱和雨刮器,并加入下雪草地积雪和刮雨器刮玻璃窗中积雪时,列车窗口中可以看到如图8所示的下雪和积雪效果及刮雪效果。

图7 晴天时场景搭建图

图8 雪天列车车窗与刮雪模拟场景

4 结束语

本文利用Creator建模软件完成对轨道交通场景的模型创建,并对积雪天气及车窗雨刷器进行建模,利用基于C++的OSG三维驱动技术实现对场景的驱动控制,实现人机交互。用于列车三维视景仿真中,能更真实地模拟车窗内看到的下雪天气,已用于模拟驾驶等培训课程中,提高了模拟场景的效果,具有一定的实用价值。

[1]王 乘,周均清,李利军.Creator可视化仿真建模技术[M].武汉:华中科技大学出版社,2005.

[2]肖 鹏,刘更代,徐明亮.OpenSceneGraph三维引擎编程指南[M].北京:清华大学出版社,2010.

[3]杨化斌.OpenSceneGraph3.0三维视景仿真技术开发详解[M].北京:国防工业出版社,2012.

[4]孙 鑫,余平安.VC++深入详解[M].北京:电子工业出版社,2006.

[5]宋晓伟. 地铁列车运行控制视景仿真系统中三维建模技术的研究与实现[D]. 北京:北京交通大学,2007.

[6]胡敏聪,郎诚廉,徐鲜泉,蒋炜栋,牛清华. 列车运行视景仿真及险情特效的实现[J]. 计算机应用,2008(S1):244-246.

责任编辑 徐侃春

Modeling and simulation of special effects scene of snowy day for train window

ZHANG Ying, LANG Chenglian
( School of Electronics and Information Engineering, Tongji University, Shanghai 200092, China )

Based on the scene simulation of Urban Transit, the paper discussed the special effects technology of threedimension visual simulation, used Creator modeling software to establish the models for the line, the station and the surroundings. The focus of modeling was to create the model of snow and the window. With VC ++ 2005 as a platform, OpenSceneGraph technology was used to drive and control 3D models and implement the human-machine interaction.

modeling; snows; wiper; human-machine interaction; OpenSceneGraph

U29∶TP39

A

1005-8451(2015)09-0010-04

2015-01-05

张 莹,在读硕士研究生;郎诚廉,高级工程师。

猜你喜欢

视景车窗积雪
阿尔卑斯山积雪
虚拟现实技术在游戏设计中的应用及研究
我们
大粮积雪 谁解老将廉颇心
车窗不起雾
积雪
车窗拍摄器
雪佛兰科鲁兹右前车窗不能升降
全回转拖轮运动建模与视景仿真
基于Vortex与Vega Prime的车辆模拟器动力学与视景仿真