APP下载

Esperient Creator在三维视景仿真系统中的应用

2014-03-25李海胜

商丘职业技术学院学报 2014年2期
关键词:视景控件菜单

李海胜,王 清

(郑州铁路职业技术学院 软件学院,河南 郑州 450052)

2008年,Esperient公司推出了实时(real time)三维视景仿真软件Esperient Creator3.0(EspCreator).EspCreator以其强大的交互功能广泛应用于产品展示、培训、教育与娱乐等领域.目前,EspCreator已被波音、洛克希德·马丁公司和联邦技术等全球排名前十的航空与防御公司采用.而在国内,使用EspCreator进行三维视景仿真系统的开发几乎是一项空白.文章介绍了EspCreator,提出了基于EspCreator开发三维视景仿真系统的技术路线,该路线对使用EspCreator进行三维视景仿真系统的开发具有一定的参考意义.

1 技术路线

基于EspCreator进行三维视景仿真系统的开发,与基于其他开发平台(如Cult3D,Virtools,Vega/Prime)类似,其流程如图1所示.

图1 开发流程图

1.1 模型优化

三维模型的本质是点、线、面的集合;集合的不同组合构成各种三维模型.在建模过程中,须在保证精度的基础上减少模型包含的点、线、面的数量,防止场景运行画面不连贯、停滞的现象发生.这种现象本质上是帧率Frames Per Second(FPS)过低产生的,FPS反映了系统实时渲染所需的时间.FPS<30,画面会显得不连续;FPS>60,则可以显著提高交互感与逼真感.

此外,使用纹理映射将多边形(墙面、地板、细小复杂物体等)以贴图的形式展现.这种方式能够有效减少多边形个数(特别是细碎多边形),模型真实感、质感更强,能够得到逼真的显示效果.要注意的是,多边形个数不是影响帧率的唯一因素.MultiGen Creator提供了三种模型优化策略:Level Of Detail(LOD)技术、纹理技术与实例化技术,能在保证精度的同时有效地优化场景模型[1]208.

1.2 模型导入

模型导入EspCreator过程中,如需保持模型贴图,则需将模型使用Deep Exploration保存为Right Hemisphere Binary(.rh)格式.但是,.rh格式似乎不能产生最佳的图形显示效果[2]792.

EspCreator为场景中的三维模型提供了物理属性设置选项,用于描述模型的物理特性.EspCreator提供的物理属性有Object is wall(设置物体为墙,常用于碰撞检测)、Object is floor or ground(设置物体为地面)、Object is Liquid(设置物体为液体)等;此外,EspCreator还提供了碰撞形状、静摩擦力、弹性系数、液体密度等参数精细描述物体的物理特征.刚体的运动受上述参数、环境、重力、场景中其他刚体的影响.

1.3 交互控制

1.3.1 菜单设置交互

国内目前较流行的仿真平台Cult3D提供了Event Map 窗口进行交互控制设置.通过设置相应的触发器、对象和动作及其相关参数,建立事件、动作和场景的相互关系,从而进行交互[3]251.同Cult3D的交互模式类似,EspCreator的交互控制主要通过“Object(对象)+ Animation(动画)”的方式完成.首先选择对象,为对象添加动画,设置动画激活模式、动画参数即可完成对象的交互控制.

EspCreator中每一个对象均有Properties、Alterations、Overrides、UV Wraps、Animations与Physical六种属性.而交互控制主要使用Animations属性.EspCreator为Animations属性提供了60余种动画,有Object Transforms(平移,旋转,缩放)、Color Changes(颜色变化)、real time physics(实时物理)、keyboard and joystick controls等.综合使用这些动画可轻松实现背景变换、材质变换、纹理变换、声音播放、操作提示等功能.对象的Animations属性可添加不同种类的多个动画,动画之间相互独立或互为激活条件.

EspCreator中动画的Active(激活模式)有多种,有Immediate(立即)、Triggered(触发)、Collision(碰撞)、User Pick(拾取)、Pick/Rev Re-Pick(拾取/重置未拾取)Trigger/Reset UnTrig(触发/重置未触发)等.根据不同的交互要求,为动画选择相应的激活模式.Triggered触发是某一对象的动画以其自身或其他对象的Trigger动画为激活条件,是交互控制的难点.

例如,给对象B(场景对象)添加“Move01”动画,使其沿X方向移动,而动画的Active(激活模式)是Trigger/Reset UnTrig即触发激活;给对象A(按钮、场景对象等)添加“Trigger Animation01”动画,激活模式为“User Pick”,Trigger属性为对象B的“Move01”动画.运行该场景,鼠标单击拾取对象A,对象B开始移动,实现交互控制.Trigger触发的流程,如图2所示.

图2 Trigger触发流程图

EspCreator提供了一系列标准GUI组件(标签、按钮、滚动条等),使用标准GUI组件可以快速创建交互式界面.设置GUI组件与场景对象动画的控制关系,实现系统界面与对象的交互控制.

1.3.2 脚本控制交互

EspCreator提供了两种内置脚本语言Lisp与CScript.文章采用Lisp脚本控制实现了轴承拆装虚拟实验系统,如图3所示.

图3 轴承拆装虚拟实验系统

实验过程中,须按照提示逐步完成零件的拆卸,才能最终完成实验;否则,系统提示错误对错误操作不反应.系统中控制16mm螺钉拆卸的Lisp代码如下所示:

(if (= luodingPickable 1)

(Progn

(TriggerAnimation "luoding" "Move")

(TriggerAnimation "luoding" "showhide")

(SetObjectOnOff "tipSec" 1)

)

)

1.4 作品发布

.esp是Right Hemisphere交互格式,该格式文件体积小,便于桌面、网络发布,可通过Esperient Creator Viewer(EspViewer)查看.Esperient Creator Viewer是用于播放.esp文件的独立程序(EspViewer.exe),能够与工程一起发布..exe可脱离EspCreator环境独立运行,常用于桌面发布,是最常见的发布方式.其实质是将.esp与EspViewer.exe打包一起发布.

.esp文件不仅能由EspViewer播放,还能通过EspViewer的ActiveX控件播放,由此可将场景嵌入到网页中,实现网络发布.EspCreator作品网络发布需.esp文件与HTML代码.将EspCreator“Create HTML Code for ActiveX”菜单生成的HTML代码嵌入到.htm文件中即可将场景嵌入到网页内(.esp文件与.htm文件需位于同一目录下);并且可通过JavaScript实现页面与EspViewer ActiveX控件之间的通信(鼠标在页面上单击、释放时,JavaScript通过SendAPICommand函数向EspViewer ActiveX控件传递Lisp/CScript命令,EspViewer ActiveX控件接收命令,执行相关动作).

2 实验结果

按上述流程设计实现了虚拟车间三维视景仿真系统,如图4所示.通过鼠标拖拽(左键旋转,右键缩放,中键平移)或键盘控制第一人称视角从任意角度观察模型;单击菜单按钮,镜头聚焦场景中对象(设定好观察角度,添加相机,给相应菜单添加“View Camera Match”动画即可实现视点切换,无需编程);单击机床操作开关,模拟机床操作(伴有操作提示、机器运行音效、语音提示);从而达到学员训练目的.该系统交互控制主要通过为对象Animations属性添加动画实现.

(a)虚拟车间三维全景

(b)模拟机车

3 结论

文章详细说明了采用EspCreator创建三维视景仿真系统的技术路线即“建模+模型优化+交互控制”,介绍了建模过程、模型优化策略、模型导入技巧,对交互控制的实现原理、难点进行了详细分析,最终实现了虚拟车间三维视景仿真系统.实验证明,采用EspCreator创建三维视景仿真系统具有工作量小、交互性强、场景效果逼真等特点.依靠菜单即可实现复杂的交互控制,便捷的产品发布功能使EspCreator在装备训练、虚拟实验室建设等领域具有广阔的应用前景.

参考文献:

[1] 龚 琳.基于Creator/Vega的虚拟海战视景系统仿真[J]. 测绘科学,2012,37(04).

[2] Pieter Pauwels,Ronald De Meyer,Jan Van Campenhout.Linking a Game Engine Environment to Architectural Information on the Semantic Web[J]. Journal of Civil Engineering and Architecture,2011,5(9).

[3] 胡林岚,包峥嵘.基于Cult3D的机械创新虚拟实验项目研究[J]. 实验室研究与探索,2013,32(5).

猜你喜欢

视景控件菜单
虚拟现实技术在游戏设计中的应用及研究
中国新年菜单
关于.net控件数组的探讨
本月菜单
全回转拖轮运动建模与视景仿真
ASP.NET服务器端验证控件的使用
基于Vortex与Vega Prime的车辆模拟器动力学与视景仿真
一个“公海龟”的求偶菜单
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
基于STK的卫星实时视景仿真系统设计