本发明涉及模型轻量化,具体为一种实时自适应的数字孪生模型轻量化方法。
背景技术:
1、三维模型轻量化是指对三维模型进行优化处理,以减少其存储空间和计算资源的占用,从而提高处理速度和系统性能的一种技术。在实际应用中,由于三维模型包含大量的顶点、面片和纹理等数据,因此需要借助三维模型轻量化技术来降低数据量,以便更好地适应各种场景和需求。
2、目前对于数字孪生模型轻量化的解决方案,有许多是在数字孪生系统应用前的bim模型轻量化,即通过点云数据压缩-三角形简化-纹理数据压缩-模型结构优化的方法进行人工处理,这种处理方法属于离线优化。另一种常见的模型轻量化方法即通过lod(levelof detail)方法进行模型轻量化,也是在数字孪生系统使用模型前,通过设置多个层级的lod,层级之间的模型点面、纹理及精度逐级递减,用户可根据需求选择相应的lod层级进行展示。
3、对于离线bim模型轻量化,并不能根据系统实时动态的进行模型轻量化处理,在有些需要精细展示的场景可能精度不足,而在一些需要节省开销的场景又会优化不足造成卡顿。基于lod的模型轻量化方法,在导入数字孪生系统前就会包含多个lod层级,需要一次性全部加载进系统,对于系统的存储及模型保存不够友好,且层级之间的切换较为生硬,并且大多数lod模型轻量化方法基于模型在场景中的距离,这对于较大体积的模型如楼宇工厂等并不适用。对于当前场景中被遮挡的部分模型或一些被隐藏的模型内部结构等,许多数字孪生系统仍会对其进行展示渲染,大大加重了计算机的负载能力。因此,设计一种实时自适应的数字孪生模型轻量化方法是很有必要的。
技术实现思路
1、本发明的目的在于提供一种实时自适应的数字孪生模型轻量化方法,以解决上述背景技术中提出的问题。
2、为了解决上述技术问题,本发明提供如下技术方案:一种实时自适应的数字孪生模型轻量化方法,该方法采用模型轻量化系统进行工作,该系统包括模型精度设定模块、精度映射模块、相邻模型处理模块,所述模型精度设定模块用于根据屏幕像素百分比与模型点面数、纹理流送的贴图分辨率相绑定,所述精度映射模块用于通过映射得到模型屏幕像素占比下的模型点、面精度减少比例,所述相邻模型处理模块用于将场景中多个模型组合为一个单一的hold代理模型,以及进行被遮挡部分的动态减面。
3、根据上述技术方案,所述模型精度设定模块包括模型导入模块、模型信息获取模块、点面数量判断模块、占比优化绑定模块、差值填充模块、球体边界构建模块,所述模型信息获取模块与点面数量判断模块和占比优化绑定模块电连接,所述模型导入模块与模型信息获取模块电连接,所述占比优化绑定模块与差值填充模块电连接,所述差值填充模块与球体边界构建模块电连接;
4、所述模型导入模块用于将模型导入ue4引擎,所述模型信息获取模块用于获取此时模型所具备的点、面数量及纹理流送贴图的分辨率作为屏幕像素占比100%时的精度,所述点面数量判断模块用于判断模型的点面数量是否大于阈值,所述占比优化绑定模块用于对模型精度降低的需求大的屏幕像素占比与模型点、面精度绑定,所述差值填充模块用于利用三次样条插值法对中间数据进行插值得到两者的绑定序列,所述球体边界构建模块用于确定模型大小;
5、所述精度映射模块包括距离计算模块、投影直径获取模块、屏幕像素占比计算模块、比例确定模块,所述距离计算模块和投影直径获取模块与屏幕像素占比计算模块电连接,所述屏幕像素占比计算模块与比例确定模块电连接;
6、所述距离计算模块用于在世界空间中计算模型到相机的距离,所述投影直径获取模块用于得出球体边界投影到屏幕空间的直径,所述屏幕像素占比计算模块用于将球体边界投影到屏幕空间中的直径与屏幕视口高/宽的比值作为当前模型屏幕像素占比,所述比例确定模块用于通过映射得到模型屏幕像素占比下的模型点、面精度减少比例;
7、所述相邻模型处理模块包括包裹放置模块、动态静态合并模块、代理模型组合模块、遮挡部分判断模块、三角形移除模块、包壳隐藏模块,所述动态静态合并模块与代理模型组合模块电连接,所述遮挡部分判断模块与三角形移除模块电连接,所述遮挡部分判断模块与包壳隐藏模块电连接;
8、所述包裹放置模块用于使用分层体积域将相邻模型分别包裹放置在场景中,所述动态静态合并模块用于将多个相邻模型根据动态、静态两种情况合并,所述代理模型组合模块用于将多个相邻模型组合为一个单一的hlod代理模型,所述遮挡部分判断模块用于判断模型被遮挡的部分,所述三角形移除模块用于删除模型网格体中所有的被遮挡三角形,所述包壳隐藏模块用于将被遮挡的模型放在一个新的图层中。
9、根据上述技术方案,包括:
10、s0、将模型导入ue4引擎,获取此时模型所具备的点、面数量及纹理流送贴图的分辨率作为屏幕像素占比100%时的精度,判断模型的点、面数量是否大于阈值,是则进入s1;
11、s1、由于屏幕像素占比的可视化感官与模型精度存在跳变,即屏幕像素占比在-间对于模型精度降低的需求小,在-之间才会对模型精度降低的需求大,分别将屏幕像素占比与模型点、面精度相绑定,屏幕像素占比与模型点、面精度相绑定,将模型像素占比与点、面数量为0、纹理流送贴图分辨率0相绑定;
12、s2、采用三次样条插值法对中间数据进行插值,得到屏幕像素占比与模型所具备的点、面数量及纹理流送贴图分辨率的绑定序列,并将其作为映射参数传递给模型;
13、s3、每个模型外层构建球体边界,此球体边界通过计算模型原始大小下的轮廓得到。
14、根据上述技术方案,还包括:
15、s4、获取当前屏幕视口的空间尺寸,在世界空间中计算模型到相机的距离,根据投影矩阵缩放因子,获取模型投影到屏幕空间的缩放比例;
16、s5、获取模型投影在屏幕空间的半径,得出球体边界投影到屏幕空间的直径;
17、s6、将球体边界投影到屏幕空间中的直径与屏幕视口高/宽的比值作为当前模型屏幕像素占比;
18、s7、在每次屏幕刷新时将当前屏幕视口中的模型屏幕像素占比传递给模型,通过映射得到平均模型屏幕像素占比下的模型点、面精度减少比例。
19、根据上述技术方案,还包括:
20、s8、对于多个相邻的模型,在运行前使用体积域将其分别包裹放置在场景中,选择体积域放置在需要放入同一群集的模型周围,设置相应的模型屏幕像素占比阈值,当小于此值时会将体积域内的多个相邻模型动态、静态合并,组合为一个单一的hlod代理模型;
21、s9、当模型被遮挡时,通过球体边界将模型内部被遮挡的部分以三角形为基本单位进行处理,删除模型网格体中所有的被遮挡三角形;
22、s10、在确保模型被完全遮挡部分后,移除完全遮挡部分三角形,所有可见的三角形保持原样不变,同时移除其内部细节的三角形,若多个模型的三角形重叠,则只保留最上层的外部三角形;
23、s11、将被遮挡的模型放在一个新的图层中,同时为这些模型添加一个包壳隐藏的标签,以便实时渲染时忽视该部分模型网格体;
24、s12、每次屏幕刷新时,均重复上述s4-s7、s8-s11过程,实现实时自适应的数字孪生模型轻量化处理。
25、根据上述技术方案,所述s8中,将体积域内的多个相邻模型动态、静态合并的具体方法为:
26、s8-1、对于静态合并,使用分层体积域的生成群集为这些分组模型生成新群集,生成hlod代理模型;
27、s8-2、对于动态合并,设置动态合并所需边界半径,即将模型网格体聚集在一起的半径,从而计算用于计算群集化的体积域填充范围,在填充范围内生成hlod代理模型。
28、根据上述技术方案,所述s7中,映射得到模型屏幕像素占比下的模型点、面精度减少比例的具体方法为:记录屏幕刷新的起始时刻之前,计算球体边界投影到屏幕空间中的直径与屏幕视口高度和屏幕视口宽度的比值,得出初始比例值,具体为;在屏幕开始刷新时,记录一段时间内多个时刻的球体边界投影到屏幕空间中的直径,其中为记录次数,与屏幕视口高度和屏幕视口宽度的比值,得到平均模型屏幕像素占比变化值,通过将代入绑定序列得到模型点、面精度减少比例。
29、根据上述技术方案,所述s8中,屏幕像素占比阈值的设定方法为:首先将屏幕像素占比阈值设定为,设进行了个记录周期,为第一个记录周期的平均模型屏幕像素占比变化值,最后一个记录周期的平均模型屏幕像素占比变化值与倒数第二个周期内的平均模型屏幕像素占比变化值进行对比,如果,且时,意味着模型占比连续减小且小于初始值,模型屏幕像素占比阈值增大,多个相邻模型时更需要模型精度降低。
30、与现有技术相比,本发明所达到的有益效果是:本发明,根据用户当前操作实时计算屏幕中场景及各个模型的屏幕像素百分比,根据屏幕像素百分比与模型点面数、纹理流送的贴图分辨率相绑定,实现实时的模型轻量化,同时将多个模型的屏幕像素百分比与点云数据相结合,将场景中多个模型组合为一个单一的hold代理模型,加快渲染速度、降低资源占用,实时动态的判断模型在场景及屏幕中的图层位置,及时的进行被遮挡部分的动态减面,提高运行效率。