编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

施工工艺三维动态可视化研究及应用

wxchong 2025-01-29 18:27:50 开源技术 74 ℃ 0 评论

现有施工工艺三维可视化方法存在难更新、软件环境限制或非动态等问题。为解决上述问题,结合Cesium提出面向Web的施工工艺三维动态可视化方法,包括相关数据模型与动画定义方式,以动画帧切分和帧集成为核心的三维动画快速生成方法,经效率测试显示,帧切分与帧集成算法性能可满足一般施工工艺动画需求。同时,应用上述方法实现案例工艺Web端展示与工艺步骤动画的在线编辑、播放与动态更新,验证实际工程应用的可行性。


1

施工工艺可视化数据结构

整体模型

施工工艺可视化涉及数据主要包括三维模型、工艺流程及动画,其关系如图1所示。三维模型整体由若干模型部分组成,而模型部分也可继续划分。其中各模型部分可在三维场景中发生状态改变,如位置、颜色等,以此为基本单元可组成整体动画。

模型整体与工艺流程关联,该流程分解为若干工艺步骤。各工艺步骤包括最基本的步骤描述,同时可设置一个视点状态。视点状态包括相机状态与模型可见性,以明确该工艺步骤的具体场景。同时,工艺步骤亦可定义若干动画,这些动画可设置在某段时间内部分模型的位置变换、旋转或透明度变化中,使整体三维模型在三维图形引擎中实现动态变化,指示实际工艺步骤动态过程。


基础动画类型与组合

基础动画类型均为关键帧动画。如图2所示,1个动画中定义动画类型、延时类型、延时与持续时长。基础动画类型包括平移、旋转、缩放、显隐、变色,这些不同动画类型的唯一区别是关键帧的变化量。延时类型按起点划分为开始、上个动画开始、上个动画结束。关键帧动画由多个关键帧组成。每个关键帧需定义起始时刻、过渡函数及目标量。



基础动画间可组合为更复杂的动画,组合方式如下。

中心偏移 基础旋转仅支持以原点为旋转中心,与基础平移配合可组合为绕任意一点旋转的动画。同样,基础缩放仅支持以原点为缩放中心,与基础平移配合可组合为以任意一点为缩放中心的动画。

同期混合 在同一时间段同时应用若干动画可形成复合动画,如渐入、渐出、强调等。

先后接续 前后接续基础动画可实现连贯的动画组合。


2

基于Cesium的三维动画快速生成方法

整体流程

通过定义动画并将其关联三维模型,即明确三维模型在某些时间段内的状态变化。使用这些信息,可计算所有三维模型在每一帧需进行的操作。整体流程如下:

帧切分 遍历所有的基础动画关键帧,将其变化按总帧数进行切分,并根据动画与三维模型部分间的关联,将切分后的变化关联至部分三维模型;

帧集成 遍历所有帧切分的变化部分与所有相关三维模型部分,计算各部分三维模型在各帧内的总变化,即最终结果。

各类型基础动画在Cesium中的实现

基础动画中的各类型可主要划分为空间变换、颜色变化。在Cesium中,加载的三维模型数据组织方式主要符合3D Tiles标准。该标准中,三维数据是三维瓦片集(3D tile set)的形式组织。三维瓦片集为树状结构,其中节点是三维瓦片(3D tile),可代表1个模型部分。


空间变换类型的动画依赖瓦片变换矩阵。每个三维瓦片定义有1个变换矩阵,用于将该瓦片的局部坐标系变换至其父瓦片的坐标系中,若该瓦片是根瓦片,则该变换矩阵则代表所属瓦片集的局部坐标系。通过调整各瓦片的变换矩阵,可对该瓦片以及所有子系瓦片进行空间变换。


颜色变化依赖瓦片内容。三维瓦片几何数据格式包括批量化三维模型B3DM(batched 3D model)、实例化三维模型I3DM(instanced 3D model)、点云模型PNTS(point cloud)以及上述3种格式的复合格式。用于生成动画的三维模型格式主要为B3DM,根据具体需求也可能为I3DM。B3DM或I3DM中,细度最大的模型单元为模型特征(feature)。在Cesium中,可设置模型特征的高亮颜色(highlight color)。高亮颜色显示方式与瓦片集颜色混合模式(color blend mode)有关。颜色混合模式包括高亮、替换、混合。通过设置合适的颜色混合模式且设置模型特征的高亮颜色,可达到目标颜色效果。同时,通过修改颜色A通道,可控制模型特征透明度,而通过修改模型特征的显示属性,可控制其显隐。


动画帧切分

动画帧切分过程中,首先按帧切分关键帧动画的变化量,此后生成各帧变换矩阵或变换颜色。帧切分方式与过渡函数有关,根据过渡函数与帧数对变化量进行插值,并计算每帧内的插值变化。帧切的整体流程如图3所示。


计算各帧变化的方法所需参数包括目标帧位置、总帧数、动画类型、过渡函数类型、开始量、结束量。

动画类型与插值变化的类型及计算方式有关。平移动画结果为平移矩阵,旋转动画结果为旋转矩阵,缩放动画结果为缩放矩阵,显隐动画结果为透明度,变色动画结果为颜色RGB。除基础动画,中心偏移类的组合动画直接在该方法中进行处理,如绕任意一点的旋转动画,结果是向中心点的平移矩阵、旋转矩阵、返回的平移矩阵相乘的结果。比较特殊的是进入类型的动画,其时长标记为0,但在所有动画最开始时执行,如在逐渐显示的动画前需增加隐藏动画。

过渡函数变量范围为[0, 1],值范围为[0, 1]。目标帧位置与总帧数比例为变量,所得值乘以总变化量即单帧变化量,以此可计算为单帧变化结果。

上述算法时间复杂度为全部进入动画,且动画开始时间约为总时长时最大,为O(mka)。其中m为总帧数,k为总关键帧数量,a为平均每关键帧的帧数。

动画帧集成与应用

动画帧集成步骤为动画模式归并→帧动画累积。1个三维模型关联动画集合组成称为1个动画模式。在第1步中遍历所有三维模型,并按其动画模式归并。第2步中,遍历所有动画模式,从开始至结束根据帧切分结果累积动画。第1,2步的流程分别如图4,5所示。



帧动画累积算法时间复杂度为O(mnp)。其中m为总帧数;n为模式数量;p为平均每个模式的动画数量。由于各动画模式间的动画可能重复,因此n·p大于总动画数量。若动画数量为q,模型数量为s,则n·p≤min(q!, s),但很难达到最坏的情况。

帧动画集成后得到每个模型在任意帧的目标变换矩阵及颜色。变换矩阵只能应用至瓦片级别,因此若三维模型为模型特征,需确定所属瓦片,在该瓦片上应用此变换矩阵。


3

测试与应用案例

算法效率测试

效率测试中所用动画类型为平移,每个动画为50个关键帧,最开始偏移100s。各测试组其他关键参数及2个阶段的计算时间结果如表3所示。第1组为参照组,第2~5组分别仅调整帧率、动画时长、各模式动画总数、模式数量,对比其结果与第1组,即可判断这些参数对2个阶段计算时间的影响。

表1 效率测试结果

结果与理论估计相符,即帧率与动画总时长与2个阶段的计算时间呈正比;各模式动画总数主要影响帧集成阶段效率;动画总数与帧切分计算时间呈正比关系,对帧集成影响小。同时,大部分动画总时长<5min,各模式动画总数<100,此情况远小于测试参数,可满足需求。


应用案例

应用案例采用某桥连续梁0号块施工工艺,步骤如下:支架搭设→临时支座施工→永久支座安装→支架预压→安装底模及侧模→安装钢筋及设置预应力→安装内模及端模→混凝土浇筑及养护→拆除模板→预应力张拉→压浆封锚→拆除支架。以支架搭设为例,选择该步骤,三维模型场景切换至支架搭设前的状态,并显示步骤描述。

各步骤间动画相互独立,动画制作界面如图6所示。1个工艺步骤有1个动画列表,列表中的每项可能是关键帧动画或复合动画。在动画编辑对话框中可修改参数,特别是关键帧动画,可创建多个关键帧。1个动画可能关联若干三维模型,此后便完成该动画的设置。


动画设置完成后,可使用帧切分与帧集成算法快速生成各帧动画结果,如支架搭设、混凝土浇筑及养护、支架拆除,如图7所示。


本文来自清华控股有限公司,清华大学深圳国际研究生院;王珩玮,胡振中,赵燕来

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表