阮志敏 , 马科富, 唐菲菲
(1.招商局公路信息技术(重庆)有限公司,重庆 400067; 2.成都西山居世游科技有限公司,成都 610041;3.重庆交通大学 土木工程学院,重庆 400074)
随着我国城镇化建设的不断推进,连接各城市和城镇间的公路工程建设成为国家关注的重点之一,这为我国公路建设带来了新的发展机遇,同时也给公路工程勘测、设计和施工带来新的挑战[1-2]。传统的公路设计成果均为纸质文件,传统方式存在表达不够全面、细节及真实情况无法动态展现、精准程度不够、设计过程中的问题不易发现等问题。
现代科技的发展尤其是智能感知技术和虚拟现实技术的快速发展,促使电子沙盘技术朝多样化、智能化和艺术化的趋势发展。新一代电子沙盘以传统沙盘模型为基础,融合了当前先进的自动控制技术、电子技术、数据库技术和计算机图形图像处理技术,能够准确地处理好各种数据,从而构建一个真实感强的电子沙盘[3-6]。电子沙盘系统的核心成为人与地理环境的场景镜像及虚拟交互。目前,主流电子沙盘构建方法以公路设计软件如Autodesk InfraWorks、Bentley LumenRT、DPX及三维地理信息软件如CityMaker、Supermap、ArcGIS等平台为基础[7-8],结合公路设计过程,融合设计及地形资料,综合体现未来实施后的效果。尽管该类软件在构建效率及准确性上具有充分优势,但在光线环境的影响表达、模型细腻程度、动态配景模型、碰撞反馈、视角切换、沉浸式体验等方面略逊一筹。
为此,本文将采用游戏引擎实现三维场景构建和模拟技术[9],为充分利用游戏引擎精细逼真的沉浸式场景,采用UE4引擎导入道路模型,经过材质渲染后道路及场景更加真实,同时制作真实地形,其地形贴图质量更好,真实性更高,交互能力更强,并具有世界组合、LOD渲染等功能,对大地形的管理与渲染更为方便,在成果展现细腻程度、交互体验上更有优势。
公路工程电子沙盘制作过程历经数据准备、地形导入、模型制作和成果输出等阶段,如图1所示。项目基础数据包括地形高程数据、DXF文件、贴图数据等。沙盘制作时,首先须检查地形的真实性、公路模型的完整性以及贴图的正确性;其次预处理数据、计算UE4场景坐标和真实坐标系统的对应关系,并导入UE4引擎,生成地形和公路模型;最后,配合UE4引擎的世界组合功能,便可轻松搭建并管理超大地形场景。
图1 公路工程电子沙盘流程
电子沙盘的功能设计是要实现公路工程的成果融合和设计指标的模拟,同时具备量算和一定的地形分析功能,如距离、面积、体积的量算和通视、剖面、淹没的分析[10-12],旨在实现地形信息检索(查询任意某地的地理坐标和海拔高度)、行驶模拟(交通工具在公路上的行驶模拟)、地物详细表示(反映和实地一样的地表形态,植被、道路、桥梁、隧道、居民地)等功能,如图2所示。
图2 功能模块设计
本研究应用UE4引擎结合Visual Studio.NET开发环境,采用C++开发语言,搭建开发环境及相关插件包进行开发和功能实现。采用World Machine工具处理地形高程数据以及建筑纹理贴图,将地形和建筑模型导入UE4引擎,再利用C++解决方案实现规划电子沙盘的实际功能。开发过程中使用PathFollow插件解决读取设计路线的坐标,生成与道路匹配的路径轨迹,实现模拟驾驶功能,能够真实地反映车辆在道路、桥梁、隧道中的行驶情况[13-14]。
1) 数据格式转换
将地形高程数据转换为高程栅格图像通用格式(HF2/HFZ),查看并记录此地形数据的元数据,如地形的面积、长宽比、最大高程、最低高程等,根据长宽比和面积计算出地形的实际长宽。
2) 地形处理
利用World Machine地形处理软件新建项目,主要参数设置如下:(1) 项目的长宽设为地形计算的长宽;(2) 地形垂直规模要大于地形的最大高度且是512的倍数;(3) 分辨率建议设置为UE4推荐分辨率,导入UE4引擎后会调整到推荐分辨率,如表1所示。
新建File Input节点,导入HFZ地形文件,设置长宽为地形的长宽。新建Height Output节点连接File Input节点,导出指定格式RAW16高度图。如果地形较大,可以分块导出为多个高度图来保证地形的精度。
表1 UE4推荐分辨率
3) 坐标转换及导入
由于UE4引擎以cm为单位,真实地形以m为单位,需要保证导入地形与真实地形单位相同,在不同的单位尺度和高程系统中,要明确Z轴方向高程的对应关系,需要确定电子沙盘与现实真实地形之间的比例关系。设置准确的放缩倍数后导入地形,添加RAW16格式高度图文件。放缩尺度计算如式(1):
(1)
式中:SMx、SMy、SMz均为真实准确的放缩倍数;Lx、Ly分别为高程灰度图在X/Y方向的实际尺寸,m;Ux、Uy分别为规则格网X/Y方向上的尺寸推荐值,取表1的推荐参数;Hset为World Machine中设置的垂直规模。由于UE4引擎以cm为单位,真实地形以m为单位,公式中需乘以100换算单位。
UE4中设置总体分辨率为World Machine中设置的分辨率,此时会自动调整到相近的推荐分辨率。放缩倍数确定后,真实地形的坐标与UE4坐标可以根据固定的公式相互转换,坐标转换如式(2),其中真实放缩倍数通过公式(1)中计算得到,放缩倍数是UE4实际设置的倍数,如设置值与真实放缩倍数相同,则地形与真实地形规格相同。
(2)
式中:Xu、Yu、Zu均为场景中坐标;Xd、Yd、Zd均为真实地理坐标;Sx、Sy、Sz均为导入场景中实际设置的放缩倍数。综合公式(1)可知,若UE4设置的放缩倍数值与真实放缩倍数值相同,则场景地形与真实地形规格相同。
导入地形的同时,创建并使用地形贴图材质,将对应的航片或卫片作为表面贴图。由于场景中单张贴图最大只支持8 129×8 129分辨率的数据,若需要构建更大场景,需要采用世界组合功能。可分块导出高度图,在一个文件夹中创建多个场景,每个场景导入一个块地形,导入完成后,根据各个块地形的位置关系,设置每个地形到正确的位置。选择一个场景作为主场景,在软件设置面板中勾选Enable World Composition,打开世界组合功能,将各个场景的块地形加载到主场景。
在保证三维场景几何分辨率满足工程地图比例尺的前提下,若导入的地形太大,为节约内存,提升实时渲染效率,设置LOD参数,通过修改SubSection Min Component ScreenSize、Desired Max Draw Distance等属性,使得屏幕内容显示更详细,适当调整绘制距离,实现提高加载及渲染速度。
准备好地形基础场景后,开始搭建交通行业相关地物,主要集成道路、桥梁、隧道、交通设施、周边配景等各类模型。
道路模型主要包含道路、桥梁、隧道等设计模型,为保证真实度,直接对接BIM设计模型。BIM设计过程是在工程设计软件中实现,并转换为通用的三维格式,在UE4场景中进行位置转换、贴图纹理材质处理、碰撞属性的设置等模型的优化处理。与此同时,BIM所体现的模型信息不仅包含描述建筑物构件的几何信息、专业属性及状态信息,还包含了非构件对象(如空间、运动行为)的状态信息。采用AutoCAD Civil 3D、Revit和Bentley OpenRoads Designer等道路BIM设计软件,设计道路、桥梁、隧道等模型并导入到UE4地形场景中,保证交通模型的真实比例,准确表达未来实际施工后的真实效果。
交通设施模型包含交通机电、交通标志、标牌标线、栅栏、公交站、垃圾桶等,可采用3D Max制作或使用通用的路标、栅栏、公交站、垃圾桶、路边岩石等三维模型,转为FBX格式导入到UE4地形场景中。
配景模型包含周边房屋、水系、植被、路边岩石等模型。利用UE4所提供的插件工具,如应用SpeedTree插件制作植物模型,准备花草树木的透明图片(PNG或者TGA格式)作为素材,调整参数使植被分布均匀,导入素材图片,为植被贴图制作一些法线高光贴图,添加适当风力,模拟现场实际动态效果,并导入到UE4地形场景中。将所有模型集成,地物模型效果图如图3所示。
图3 地物模型效果图
BIM对设计成果的要求不仅应有外形尺寸,还应有相关的属性信息。其中地物属性查询和空间坐标显示也是必要功能,这些方面都可通过编辑关卡蓝图的方法来实现,如图4所示。如实现地形坐标信息检索,可利用公式(2)计算出地形坐标及海拔高度,查询相应坐标位置的地物及信息。
图4 空间坐标查询蓝图
1) 数据准备
将道路上车辆行驶轨迹坐标输出为表格数据CSV格式,数据结构如表2所示。
表2 路线轨迹坐标数据
2) 制作路径
(1) 蓝图实现
新建结构体,编辑结构与表2数据结构保持一致,导入CSV数据;新建继承自Actor的蓝图类,添加SpLine组件;编辑蓝图,在蓝图构造函数中通过Get Data Table Column as String节点读取结构表中的数据,并通过循环将点添加到路径上。路径蓝图如图5所示。
(2) C++实现
新建继承自Actor的C++类,在构造函数中添加SpLine组件;新增函数读取路线CSV数据至字符串中,解析字符串;调用GetCSVDataToMap函数,将返回的路径点数组设置到车辆轨迹路径上,并初始化路径。
图5 路径蓝图
3) 模拟运动
(1) 蓝图实现
新建继承自Actor的蓝图类;添加骨骼模型组件和PathFollow组件,在骨骼模型组件上添加交通工具模型;将模型Actor和路径Actor添加至场景中,在PathFollow组件上设置跟随对象为路径Actor;根据需要设置运动速度、循环等属性。
(2) C++实现
新建继承自Actor的C++类;在构造函数中添加骨骼模型组件和PathFollow组件,并为骨骼模型组件添加交通工具模型;重写父类函数BeginPlay(),模拟开始时在场景中实例化一条路径,并调用路径Actor的Init函数初始化路径;调用UPFPathFollowerComponent中的SetPathOwner函数,设置跟随对象的路径;根据需要设置速度、循环等属性,调用Start函数开始模拟交通工具的运动状态。
在编辑器新增动画蓝图,为汽车模型添加动画,实现车轮的转动和转向、切换驾驶员视角、从驾驶员的角度验证公路的设计指标、有无遮挡、在不同季节、不同时间点的光照环境对驾车的影响,模拟以后真实环境中的驾车体验。
应用以上的研究及操作过程,集成交通行业关注的模型及功能,完成公路工程电子沙盘的构建,所有交通相关的要素集成到场景中,将项目成品归档,打包导出可独立运行的程序。电子沙盘效果图如图6所示。
图6 电子沙盘效果图
本文研究内容在忠县州屏组团交通数字模型制作项目中得到应用,取得良好的展现和交互效果,具有良好的实用性,集成了交通要素各构造物的信息,如路基、路面、桥梁、涵洞、隧道、排水系统、安全防护设施、绿化和交通监控等设施,展现出其独特的区位特点和交通规划组织方案。
在传统电子沙盘制作的技术路线基础上,应用具有逼真交互为特性的游戏引擎制作公路工程电子沙盘,从交互游戏的视角体现公路设计成果,更容易普及推广。同时,在电子沙盘的基础中,加入管理和维护单位的工作业务,融合各个部门的业务流程,可直接升级到虚拟现实技术的信息化管理平台,在模拟仿真与管理方面,都有很好的应用点,较传统方式更智能、更精确。该电子沙盘展现方式还可用于交通管理,可提高管理的效率和质量,从而获得更好的社会经济管理效益,可广泛用于城市规划设计及管理领域。
本文将基于UE4引擎构建公路工程电子沙盘,扩展为电子沙盘立体式、互动性、多元化的展现形式,将传统的二维展示方式和三维静态模型方式升级为三维动态数字虚拟模式,无论是从视觉,还是立体逼真效果,都带来一种全新化的互动式体验。这种创新服务应用极大验证了公路工程设计的精准度和设计效果,能够充分动态表达设计意图和成果。公路工程电子沙盘的应用必将推进交通设计与管理的创新和发展,将科技虚拟展览、展示形式与传统的信息传播载体相融合,在未来诸多领域必定都会得到升级与应用。