APP下载

VR平台下的无人机虚拟装配关键技术研究

2021-09-22汪邓涵黄秋野

电子技术与软件工程 2021年15期
关键词:引擎光照材质

汪邓涵 黄秋野

(南京航空航天大学 江苏省南京市 211100)

目前在相关的虚拟装配教育模拟仿真虚拟现实应用上,从制作流程的角度上来说,一类是立足于视觉层面,过于表现的画面使得整体系统偏向了娱乐化,这样做的优势在于视觉观赏的提高,能够有助于提高用户对应用的粘性程度,其缺陷在于装配模拟的严肃性内容无意义。另一类则是立足物理仿真层面,在仿真的要素上着重于物理模型上的考究,精于严肃性内容,这使得视觉效果上的用户观感体验被忽视。本文将会从关键技术流程的角度去平衡严肃性内容与用户体验,强调采用工业设计模型的标准去应用至虚拟现实装配平台中,在保证以工业模型的标准提升仿真性的同时,提升虚拟现实用户体验的舒适性。

针对上述两类的制作类别,本文会将采取相应的关键技术策略,提供合理的工作流程去优化并实现基于VR的无人机虚拟装配平台。

1 仿真平台的总体流程设计

无人机虚拟装配平台需要由视觉与功能两部分的设计构成。

1.1 视觉设计流程

关于视觉方面包括设计并制作无人机部件模型和室内场景模型,在功能方面实现无人机部件组合与解构交互、场景移动交互。根据工作机制的分析,Unity3D引擎主要实现仿真平台中渲染与交互的部分,模型与材质的部分则需要3Dmax、Quixel Mixer进行构建并且根据引擎机制对其进行初模的构建与优化、贴图的绘制与储备。关于视觉流程优化的设计上,面对如何在有效管理视效资源的情况下提升材质以及模型真实度是主要问题之一,本文需要在CAD建模软件里设定好参考物,衡量出模型的真实比例,为虚拟环境提供真实尺寸参考。制作低精度模型与高精度模型,将高精度模型的细节映射至低精度模型,减少面数的渲染级别。最后拓展UV坐标使得贴图与材质能够对照匹配,为真实材质提供位置基础。

1.2 功能设计流程

关于功能方面,在虚拟装配中模型作为功能映射的主要载体,基于此提升有效的交互体验是主要目的。在常规流程中设立好交互碰撞方面的重要程序,直至生成可以在各类虚拟现实头显下运行的应用程序。在优化流程设计上,模型对象对系统内存占据一定的比重。那么基于多平台虚拟现实的环境,是避免不了的内存限制,在无人机装配中,零件模型数量多且可用性强,所带来的交互与面数会带来大量的内存占取,那么会出现卡顿、数据丢失等问题。在实例观察中,所有的模型对象进行了加载,实际进行交互的模型对象占比较少,这样导致其它无交互模型对象是无效且占据一定的内存,这造成了硬件渲染上的浪费。基于此,需要对可用性与无用性物体之间做出类别分析,在用户的可操作范围内去加载与卸载模型对象,构建出合理的缓存池框架(图1)。最终以适当优化流程完成整套装配平台的构建。

图1:基于缓存池的优化

以上便是基于VR的无人机模拟装配平台的优化流程总概。

2 工业仿真三维模型的构建

以工业模型标准作为虚拟装配模型的参考核心,其特色就是视觉仿真的一致性,能够使得装配部件、装配拼装过程以及使用的工具与实际相似。模型的建立是Unity3D引擎交互的首要工作,模型的质量影响到用户在虚拟现实里的视觉体验,但会对硬件的内存消耗带来负面影响[5-6]。因此,在模型制作中要重点探究模型间的视觉比重与面数优化。

3.1 工业模型标准在无人机模型的应用

工业模型是属于原型设备的物理模型,可以呈现低成本且合理的方案。应用在虚拟装配中的工业模型标准需要拥有以下三点:

(1)工业模型是根据工业产品的原型进行缩小或者放大,在外观以及尺寸上与最终的产品原型保持相同比例。

(2)工业模型要满足现实原型的技术指标,从而达成功能性。

(3)拥有美学指标与文化指标,可以对产品原型本体的设计实践产生思维导向,发挥起象征性作用。

在无人机模型构建中,需要体现装配部件的多样性与机壳框架的统一性,使得能够与原型进行参照,工业模型构建方式是其关键技术的基础。与传统布线构成不同,技术重心更多偏向于辅助修改器与面片的联立关系。

首先运用sketch up划分无人机外壳、无人机部件两个主要拼装部件的部分,然后采用3Dsmax在细节上进行添加,并取其高模的细节法线贴图[7],而对平整且不需要细节的模型面进行减面处理,以最大限度优化来避免模型加载时暂用系统内存,最后运用骨骼动画将各部件进行约束连接,使其产生关联,提高模型在系统里的真实性。

针对无人机模型制作所对应工业类型的建模方式,属于硬表面的模型范畴,以方体与圆柱为基础模型,再以多边形建模为制作手法,对基础模型进行细分、束边和涡轮平滑等功能的建模,从而得到与真实部件对应的细节,并获得高精度模型(High Polygon),然后对非主要部件模型在面数上做简化等优化处理,避免占用过多的运行空间,最后获得Unity3D中所需要的FBX格式三维模型文件。该模型满足尺寸、外观和交互等方面的需求。

3.1.1 基于NURBS样条线的无人机外壳以及机桨工业建模

无人机的外壳现实作用在于保护组装部件与减少空气阻力为目的,机桨则是作为无人机的动力辅助部件,其模型设计都为符合流体力学的流体型曲面形态,适合采用NURBS样条线进行平滑处理建模。这种方法是基于样条线之间,在初期通过NURBS样条线对缝合,在组合处将面片依据无人机的外观尺寸和部件参考尺寸构成大致的曲面效果(图2),而后增加平滑组提升面之间的过渡感,曲面之间的转折关系则划分为不同的平滑层级。

图2:无人机外壳的曲面效果

3.1.2 无人机装配部件工业建模

无人机装配部件则分为骨架、电子元件、电缆线、挂载云台、电池以及雷达(图3),建模方式多在基础多边形上进行边角上的调整,因为其中骨架、电子元件、挂载云台、电池的切角面程度较高,所以基础模型多采用切角长方体、立方体等标准几何体组件而成,利用涡轮平滑修改器进行细节处理,利用边缘去控制细节的平滑程度,这种方式的优势在于有利把控面的增减,为后期导入引擎增加更多优化的可能性;电缆线则采用样条线为基础[11],样条线的编辑特性能够适配电缆线本身的多复杂弯曲结构,通过平移的方式对样条线顶点形成的线路形态,而后增加实例化修改器完成线缆模型形态。这种方式建立的电缆线模型其流畅性、受力性更为真实;雷达在六轴无人机中多为圆盘样式,只需通过挤压、拉伸完成对基础模型的形变。

图3:无人机外壳、机桨及其部件

3.2 场景工业模型的构建

三维场景是根据无人机课程中的训练需求所设计,目前针对无人机仿真的需求有拆装模拟、故障诊断模拟以及飞行模拟这三种训练类型[3-4],为此遵循需求将关卡划分为拼装训练关卡与飞行训练关卡,根据关卡特性需要设计与构建出相关的三维场景。

3.2.1 人景比例的判定

在虚拟现实环境中,因为仿真物体与现实物体的尺寸成正比[10],所以在制作场景初模时应注意模型基础单位的调校与参考物的设定。已知Unity3D引擎的基础单位为米,在3DMax的单位自定义应设定与其相同,为了保证场景在尺寸上的合理性,已知虚拟头显是根据世界坐标为基准,需在放置参考物时考虑用户对象为成年男性与女性18-44年龄阶段[16],采取其平均身高(图4),以用户为中心进行测试场景在用户体验中移动、触发等交互方面的合理性。

图4:男女平均身高的人体参考物

3.2.2 场景建模与优化

以装配关卡场景为例,根据上述比例判定所设计得出的场景尺寸数据为320cm(长)*260cm(宽)*200cm(高),结合基础多边形对三维场景进行方位上的搭建,于是针对多边形上的点、线、面进行位移上的编辑,通过对模型线段的增减为门等占有进出口增加编辑空间,在对模型造型线段的编辑中要遵守布线范式,面片布置上统一为四边面,便利于后期对模型拉伸、挤出、倒角等多功能操作。模型的在主要进出口路径上增加线段与面并配合涡轮平滑修改器产生更多的模型细节,反之次要路径区域则直接采用简易的基础多边形,从而减少不必要的渲染[8]。

3.3 纹理贴图的优化处理

由于引擎可以识别MAX模型的多维子材质,可以减少绘制贴图的工作环节,在建模流程中需要对面片进行材质ID的区分。根据案例,无人机部件模型可以附加成同一个多边形模型组,根据固有色之间的差异对不同部件材质进行附着材质球(图5)。针对纹理位置有精度要求的模型,例如电池、场景中的指示单位等,这就需要采用UV(Unwarp UVW)对精度位置需求的模型贴图方位进行拆分,并将其UV网格进行平整化处理,保证纹理能够对齐,避免出现纹理与模型表面产生拉长、错位、挤压与变形的现象。

图5:多维子材质

4 Unity3D引擎的三维工作机制

在无人机虚拟装配的开发中,需要对光照材质、面片优化和动画互动等关键点进行技术整合,然后统一导入到引擎进行整合输出,这对引擎中材质、光照与物理控制脚本的运行机制有着解构的需求。以此作为参考,在引擎中合理利用工作机制得到关键技术在流程中的应用。

4.1 可视化构建着色器

引擎中的可视化着色器(Shadergraph)不仅包含了物理实时渲染的系统,还可以对渲染进行可视化编程的操作,在创立多样化参数操作的基础上,有利于精细化材质效果,从而对材质上的细节进行有效的把控。当前引擎所配置的基础材质球(StandardShader)对物体视觉表现有所限制,只能对四个重要参数进行调节,无法满足复杂且多样的场景视觉需求,可见可视化着色器在关键技术中的重要性。

4.2 光照系统

引擎的光照系统采用的是全局光照(Global Illumination),可以模拟光的反弹和互动行为的算法。但在工作流程中精细的光照仿真模拟需要消耗大量的硬件内存[1],所以需要采用烘焙技术对光照系统内的反射球、光照探针、局域光以及光源全局技术共同构成为光照贴图。在无人机装配环境下多物体的光照会带来多余的系统负荷,为了保证用户在视觉体验与交互上帧率的高舒适度,尽量避免硬件资源对动态结算所带来的负载,于是需要对光源信息进行整合并且生成到静态贴图中是关键技术步骤之一(图6)。

图6:场景光照信息优化前后帧数对比

4.3 物理系统

在仿真平台中体验的要素不仅是在视觉交互上,还应在基础的物理计算上,例如重力、碰撞等物质在物理世界中产生的作用。因此,引擎通过刚体(Rigidbody)为基础并对物体进行物理仿真的碰撞计算,根据碰撞范围从而判定是否进行做出合理的交互指令,这样保证了用户的代入感,还增加了平台应用在仿真方面的可靠性。

5 无人机装配平台开发的流程优化

为了将视觉资源更好的过渡到引擎的功能交互制作中,应将模型的坐标轴重置于中心点,有位移需求的无人机模型则需要将坐标轴重置到物体坐标的最底端,同时坐标轴的垂直方向为Y轴向上;检查面片之间的法线向量是否正确,且以合理的命名导出模型与贴图;核查平滑组开启状态,修改导出单位的基本设置,最后结合到引擎内部进行深入。

5.1 光照布局渲染

场景中良好的光照渲染不仅能够提升整体画面的可视布局,而且从视觉工效学的角度上可以对用户给予良好的体验[15]。由于整体场景偏暗、封闭且空旷,容易导致用户心理上的紧张等情绪,所以要利用平行光、反射光、点光和聚光的机制,合理对场景增加多方面的光照细节,为此可以通过三个步骤去构建灯光的布局:

(1)在场景内放置平行光,平行光的z轴角度呈30°,能够投射出场景中阴影的最大面积,作为整体光照的主光源,色调则呈为暖色,因为考虑到场景构造多为封闭且光照入口空间少,所以光照强度为60cd。

(2)在地面指示灯上放置包含冷色域的点光源,其光照强度为8cd,在大门入口与外界交界处放置暖色域的聚光源,其光照强度为5cd。通过色调的对比,不仅完善了光照空间中的色彩配比,而且使得空间具有视觉导向性。

(3)放置反射球,将反射球的反射范围包裹住场景,使得反射球获取场景光照与材质信息,然后开启实时渲染(Realtime)使得周围环境能够接受到反射球所获取的信息(图7),确保场景拥有真实的环境光照细节。

图7:无反射球(前)反射球渲染(后)

5.2 工业材质贴图的细化调整

模型在引擎中表现各类质感,需要在之前的纹理贴图基础上与引擎内着色机制结合反射、金属度、平滑值、法线强度等材质属性去构成完整的材质表现,如图10。根据案例场景,对场景主要材质的表现进行解析,为此总结出两种配置方法:

(1)混凝土地胶材质作为场景中重要的组成部分,设定平滑度值为0.7f(1.0f为镜面光滑效果),金属度为0.1f(1.0f为镜面反射效果),而后将调整法线的凹凸程度至6.0f,通过将遮挡贴图范围调整至0.8f(1.0f为同个材质球的平滑度与金属度之间界限分明),地面引导的自发光属性为1.0f。

(2)金属材质应用于场景内物件的常用材质,例如:门、桌子、扶手。由于场景室内的环境光照较暗,所以要使得材质表面反射程度降低,于是将金属度调整为0.3f~0.5f,平滑度保持为0.2f。

经在区间内的调试,场景中不同材质都保持着鲜明的特征。这使得场景保持良好的视觉比例,为后期视觉体验提供保障(见表1)。

表1:各类材质的参数设置

5.3 无人机装配模型对象的缓存池优化

在无人机装配环境中,由于无人机组件作为模型对象占据着一定程度的系统内存。系统内存消耗需要面对不仅是模型对象面片以及纹理贴图上的优化,还需要在管理上进行优化,在用户进行交互行为时,模型对象在环境中会产生加载且无法进行回调,在用户进行多次交互行为后系统内存空间里的模型对象会产生叠加。在面对批量模型对象进行多次交互行为的情况下,其中产生的系统内存消耗成为了功能设计流程优化的主要问题之一。模型对象作为主要解决对象,需要考虑三点问题:

(1)模型对象是做为无人机零部件装配的重要交互模型,在用户体验中占据主要交互的对象;

(2)模型对象会被进行频繁的交互,多次对模型对象的加载会使得系统内存产生消耗;

(3)模型对象的生成过程与销毁过程,会产生大量的内存碎片,这为内存空间带来一定的负担。针对以上三点问题,采用缓存池算法[17]对模型对象的管理进行优化。

5.4 工业无人机的动画程序化

在无人机虚拟装配平台中,拥有大量的机械动画,由于机械类动画强调关节中的链动,支点的存在对整体模型的动向起到导向作用[12],整体具有简易性、重复性的特点。结合本项目优化的基本需求,与传统的Animation编辑器中添加Frame不同的是通过C#脚本直接对模型本身进行动画设定,以无人机的旋翼动画为例,首先提取出无人机在引擎内的坐标轴心,以垂直Y轴为基准,设定轴旋转每秒运行的角度,并创建一个可以进行变量的平均速度,这使得在开发流程中可以随时调控旋翼的旋转速度,保证与现实的协同性,从而在动效上达到仿真的效果。随着动画优化的推进,引擎内部的资源管理得到了拓展,进一步提高了流程化工作线的迭代成效。

6 结束语

无人机虚拟装配平台是个对关键技术要求较高的装配工程,以全面高效的工作流为前提,把控好对模型、材质和交互等制作层级,并时刻穿插优化的重要性,全面做好视觉与物理仿真体验的同时,为未来系统的迭代提供充足的空间。

这种构架提出的虚拟现实制作流程,在体验中具备以下四种优势:

(1)能够对无人机部件模型进行拼装交互,且可交互拼装的模式自由度高,为未来提供更多的教学组装方案。

(2)在虚拟场景模型中还原真实的纹理映射与材质属性的配比,从视觉上提升沉浸感。

(3)遵循合理的物理交互规律,符合用户的现实习惯,维持了对场景物件的交互兴趣。

(4)程序化动画的建立,节省了模型的数据大小,为此提供了一套动画批量化的程序方法,为平台预留了数据空间,降低对硬件的适配门槛。

无人机虚拟装配平台关键技术流程能够使在虚拟实景操作中获得相关的实践与理论知识,有效调动了用户的积极性与参与性。

猜你喜欢

引擎光照材质
节能环保 光照万家(公益宣传)
节能环保光照万家(公益宣传)
春光照瑶乡
外套之材质对比战
针织衫之材质对比战
10KV配变绕组材质鉴别初探
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
服装CAD系统中的光照面向对象分析
One Engine Left只剩下一个引擎