一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种提升渲染速度的三维模型数据轻量化方法及系统与流程

2022-08-11 03:23:01 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,尤其是涉及一种提升渲染速度的三维模型数据轻量化方法及系统。


背景技术:

2.三维模型在虚拟场景中构建,进行渲染后,能够在虚拟场景中得到高真实感的画面,但是随着三维模型复杂度的提高,渲染过程中的数据处理量也越来越大,各种渲染方式的加入,进一步提高了渲染过程中的数据处理量。以大型的三维模型为例,由多个零部件组成,每个零部件又具有多个渲染面,并且这些渲染面还存在遮挡、部分遮挡、渲染后对画面无法产生影响和可视与不可视等多种情况,如何进行处理是一个亟待解决的问题。


技术实现要素:

3.本技术提供一种提升渲染速度的三维模型数据轻量化方法及系统,通过球面矩阵化的扫描筛选方式来对三维模型数据进行简化,用以降低在后续渲染过程中的数据处理量。
4.本技术的上述目的是通过以下技术方案得以实现的:第一方面,本技术提供了一种提升渲染速度的三维模型数据轻量化方法,包括:响应于获取到的三维模型文件,在三维坐标系中对三维模型文件进行重构,得到三维映射模型;在三维坐标系中构建扫描球形壳并将三维映射模型移动到扫描球形壳内;以扫描范围为基准在扫描球形壳上均匀部署扫描点;在扫描点处对三维映射模型进行扫描,每个扫描点处的扫描范围均相同;以及根据扫描结果对三维映射模型进行拆解,三维映射模型上被扫描到的部分进行保留处理,三维映射模型上未被扫描到的部分进行删除处理,得到渲染模型。
5.在第一方面的一种可能的实现方式中,移动三维映射模型移动与扫描球形壳至扫描球形壳的球心与三维坐标系中的原点重合后以扫描范围为基准在扫描球形壳上均匀部署扫描点。
6.在第一方面的一种可能的实现方式中,以扫描范围为基准在扫描球形壳上均匀部署扫描点后还包括:在三维坐标系中构建校正球形壳,校正球形壳的球心与扫描球形壳的球心重合并且校正球形壳的半径小于扫描球形壳的半径;在扫描点处对校正球形壳进行扫描;以及调整扫描点的扫描范围,在校正球形壳的表面能够被全部扫描点的扫描范围覆盖的前提下,将扫描点的扫描范围最小化。
7.在第一方面的一种可能的实现方式中,校正球形壳上存在至少一个点与三维映射模型表面上的一个点重合。
8.在第一方面的一种可能的实现方式中,对三维映射模型进行拆解后还包括对渲染模型进行扫描,确定渲染模型上是否存在破损面;存在破损面时还包括:寻找与破损面关联的扫描点,记为基准扫描点;以扫描球形壳的球心和基准扫描点为基准构建扫描线;基准扫描点在扫描线上移动并对周围环境进行扫描;以及根据基准扫描点的扫描结果修复破损面。
9.在第一方面的一种可能的实现方式中,扫描线构建完成后在扫描线上选取多个扫描位置,基准扫描点在每个扫描位置处进行扫描。
10.在第一方面的一种可能的实现方式中,下一个扫描位置根据基准扫描点在上一个扫描位置处的扫描结果确定,两个相邻扫描位置处的扫描结果在扫描线的轴向方向重合。
11.第二方面,本技术提供了一种提升渲染速度的三维模型数据轻量化装置,包括:重构单元,用于响应于获取到的三维模型文件,在三维坐标系中对三维模型文件进行重构,得到三维映射模型;构建单元,用于在三维坐标系中构建扫描球形壳并将三维映射模型移动到扫描球形壳内;部署单元,用于以扫描范围为基准在扫描球形壳上均匀部署扫描点;扫描单元,用于在扫描点处对三维映射模型进行扫描,每个扫描点处的扫描范围均相同;以及拆解单元,用于根据扫描结果对三维映射模型进行拆解,三维映射模型上被扫描到的部分进行保留处理,三维映射模型上未被扫描到的部分进行删除处理,得到渲染模型。
12.第三方面,本技术提供了一种提升渲染速度的三维模型数据轻量化系统,所述系统包括:一个或多个存储器,用于存储指令;以及一个或多个处理器,用于从所述存储器中调用并运行所述指令,执行如第一方面及第一方面任意可能的实现方式中所述的方法。
13.第四方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质包括:程序,当所述程序被处理器运行时,如第一方面及第一方面任意可能的实现方式中所述的方法被执行。
14.第五方面,本技术提供了一种计算机程序产品,包括程序指令,当所述程序指令被计算设备运行时,如第一方面及第一方面任意可能的实现方式中所述的方法被执行。
15.第六方面,本技术提供了一种芯片系统,该芯片系统包括处理器,用于实现上述各方面中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。
16.该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
17.在一种可能的设计中,该芯片系统还包括存储器,该存储器,用于保存必要的程序指令和数据。该处理器和该存储器可以解耦,分别设置在不同的设备上,通过有线或者无线的方式连接,或者处理器和该存储器也可以耦合在同一个设备上。
附图说明
18.图1是本技术提供的一种三维模型数据轻量化方法的处理步骤示意框图。
19.图2是本技术提供的一种扫描球形壳与三维映射模型的相对位置示意图。
20.图3是本技术提供的一种扫描球形壳上扫描点的分布示意图。
21.图4是本技术提供的一种在不同直径的截面圆上的扫描点的对比分布示意图。
22.图5是本技术提供的一种使用校正球形壳来调整扫描范围的示意图。
23.图6是本技术提供的一种使用破损面反向寻找基准扫描点的示意图。
24.图7是本技术提供的一种基准扫描点的移动路径及方向示意图。
25.图8是本技术提供的一种基准扫描点在扫描线上不同位置处的扫描范围示意图。
具体实施方式
26.以下结合附图,对本技术中的技术方案作进一步详细说明。
27.本技术公开的提升渲染速度的三维模型数据轻量化方法,应用于终端(包括智能手机、平板、电脑、服务器和云平台),终端面向用户,用户将需要进行轻量化处理的三维模型文件发送给终端,终端进行处理(包括数据轻量化和渲染两个过程)后通过显示器向用户展示。本技术公开的提升渲染速度的三维模型数据轻量化方法,用于终端对三维模型文件进行数据轻量化的过程。
28.请参阅图1,为本技术公开的一种提升渲染速度的三维模型数据轻量化方法,方法包括如下步骤:s101,响应于获取到的三维模型文件,在三维坐标系中对三维模型文件进行重构,得到三维映射模型;s102,在三维坐标系中构建扫描球形壳并将三维映射模型移动到扫描球形壳内;s103,以扫描范围为基准在扫描球形壳上均匀部署扫描点;s104,在扫描点处对三维映射模型进行扫描,每个扫描点处的扫描范围均相同;以及s105,根据扫描结果对三维映射模型进行拆解,三维映射模型上被扫描到的部分进行保留处理,三维映射模型上未被扫描到的部分进行删除处理,得到渲染模型。
29.初始阶段,用户会将需要处理的三维模型文件发送给终端,从终端的角度看,终端会收到一个三维模型文件。此处需要说明的是,三维模型文件有多种格式,例如stp、x-t、prt和igs等,不同格式的三维模型文件需要经过转换后,才能进行后续的处理步骤。
30.也就是在步骤s101中,响应于获取到的三维模型文件,终端会在三维坐标系中对三维模型文件进行重构,得到三维映射模型,这个过程的目的是将不同的数据格式进行统一。
31.从另一个角度解释,终端中存储有针对于不同格式的解析程序,当收到一个三维模型文件后,终端会首先识别三维模型文件的类型,然后选择合适的解析程度对三维模型文件中包含的数据进行解析,并在三维坐标系中对三维模型文件进行重构。
32.为了描述方便,将这个经过重构的三维模型文件称为三维映射模型。
33.然后执行步骤s102,该步骤中,终端会在三维坐标系中构建扫描球形壳并将三维映射模型移动到扫描球形壳内,三维映射模型的全部均位于扫描球形壳内,扫描球形壳的
作用是在三维映射模型的周围建立一个能够给部署扫描点提供位置参考的基准曲面,请参阅图2。
34.在构建扫描球形壳的过程中,可以以三维映射模型的重心为参考,假设三维映射模型的密度均匀,然后计算三维映射模型的重心,再以计算得到的重心为基准,构建扫描球形壳,扫描球形壳要将整个三维映射模型包裹住。
35.继续执行步骤s103,该步骤中,请参阅图3,会以扫描范围为基准在扫描球形壳上均匀部署扫描点,扫描点是对三维映射模型进行扫描的基准点。此处以过扫描球形壳的球心的截面为参考,扫描点在截面圆形上均匀分布,任意两个相邻的扫描点间的最小直线距离或者弧线段的长度都相等。
36.但是对于没有过扫描球形壳的球心的截面,这个截面上的截面圆形的周长会缩小,因此其上分布的扫描点的数量也要适当减少,请参阅图4。
37.具体的减少方式是以扫描范围为基准进行调整,每一个扫描点处的扫描范围都是相等的,为了能够对三维映射模型的表面进行全覆盖,就需要任意两个相邻的扫描点处的扫描范围都存在重合区域,重合区域作为冗余。
38.继续执行步骤s104,该步骤中,在扫描点处对三维映射模型进行扫描,每个扫描点处的扫描范围均相同,此处是给步骤s105中的处理提供数据支撑。在步骤s105中,会根据扫描结果对三维映射模型进行拆解,三维映射模型上被扫描到的部分进行保留处理,三维映射模型上未被扫描到的部分进行删除处理,得到渲染模型。
39.具体的说,对于三维映射模型的处理,以最终的渲染和显示结果为依据进行拆解。以一个按照三维零件进行组装的三维映射模型为参考,这个模型中的每一个零件都由平面和曲面组成,有些零件位于三维映射模型的内部,有些零件位于三维映射模型的表面,有些零件的一部分位于三维映射模型的表面,一部分位于三维映射模型的内部。
40.对于上述三维映射模型的呈现,用户在显示终端得到的仅仅是模型的外表面,三维映射模型的内部用户是无法看到的,因此对于三维映射模型的内部,可以不进行渲染。也就是在步骤s105中,三维映射模型上被扫描到的部分进行保留处理,三维映射模型上未被扫描到的部分进行删除处理,经过删除处理的三维映射模型称为渲染模型。
41.这个渲染模型由三维映射模型上能够被看到的面(包括平面和曲面)组成,并且在上述内容中提到的扫描球形壳,这个扫描球形壳可以看作是用户视线移动的参考。用户视线在这个扫描球形壳上移动,其得到的画面就是在步骤s105中的渲染模型在某一个平面或者曲面上的投影。
42.作为申请提供的提升渲染速度的三维模型数据轻量化方法的一种具体实施方式,移动三维映射模型移动与扫描球形壳至扫描球形壳的球心与三维坐标系中的原点重合后以扫描范围为基准在扫描球形壳上均匀部署扫描点。
43.具体而言,就是将三维映射模型的重心和扫描球形壳的球心移动到与三维坐标系中的原点重合,这三个点重合后,能够有效的降低处理过程的数据计算量。
44.应理解,以三维坐标系中的原点为基准时,三维映射模型上的一部分点的坐标就会变为(x,y,0)、(x,0,z)或者(0,y,z),同样的,部分扫描点的坐标也会变成(x,y,0)、(x,0,z)或者(0,y,z)。
45.还应理解,三维映射模型和扫描球形壳中的坐标都是基于三维坐标系中的原点生
成的,扫描过程中产生的数据都需要通过三维坐标系中的原点进行转换,这会增加额外的计算量。将三维映射模型的重心、扫描球形壳的球心和三维坐标系中的原点这三个点重合后,这部分转换过程就能够省略,因此能够降低数据处理量,提高数据轻量化过程的速度。
46.请参阅图5,作为申请提供的提升渲染速度的三维模型数据轻量化方法的一种具体实施方式,以扫描范围为基准在扫描球形壳上均匀部署扫描点后还包括以下步骤:s201,在三维坐标系中构建校正球形壳,校正球形壳的球心与扫描球形壳的球心重合并且校正球形壳的半径小于扫描球形壳的半径;s202,在扫描点处对校正球形壳进行扫描;以及s203,调整扫描点的扫描范围,在校正球形壳的表面能够被全部扫描点的扫描范围覆盖的前提下,将扫描点的扫描范围最小化。
47.校正球形壳的作用是用来调整扫描点的扫描范围,具体的说,三维映射模型由多个平面和多个曲面组成,对于两个相邻的扫描区域,确定其是否重合或者对边界处的平面和/或曲面进行了覆盖是一个难题。
48.因为位于边界处的平面和/或曲面可以存在连接关系,也可以不存在连接关系,同时这两个面间还可以存在高度差,这种情况下对于边界的识别计算会带来巨大的计算量。
49.使用校正球形壳后,就可以通过判断两个扫描点的扫描范围在校正球形壳上的投影来判断其是否会在三维映射模型上发生重合,因为校正球形壳的表面圆滑过渡,相比于在不规则的三维映射模型上进行计算,很明显,使用校正球形壳进行辅助计算,能够通过更少的计算量得到结果。
50.此处需要说明的是,校正球形壳位于扫描球形壳和三维映射模型之间的空间中,其与三维映射模型之间的距离作为冗余。并且,为了使冗余尽可能的小,校正球形壳上存在至少一个点与三维映射模型表面上的一个点重合,这样可以使校正球形壳的体积能够尽可能的小。
51.作为申请提供的提升渲染速度的三维模型数据轻量化方法的一种具体实施方式,对三维映射模型进行拆解后还包括对渲染模型进行扫描,确定渲染模型上是否存在破损面。
52.出现破损面意味着渲染模型存在表面缺失的情况,这会导致后续的渲染程序无法得到完整的渲染模型,从用户的角度看,经过处理的三维模型文件是破损或者说无法使用的,因此需要对破损面进行修补,具体的步骤如下:s301,寻找与破损面关联的扫描点,记为基准扫描点;s302,以扫描球形壳的球心和基准扫描点为基准构建扫描线;s303,基准扫描点在扫描线上移动并对周围环境进行扫描;以及s304,根据基准扫描点的扫描结果修复破损面。
53.具体地说,在步骤s301中,会根据破损面找到与关联的扫描点,这些扫描点记为基准扫描点,如图6所示。具体的过程是确定破损面边缘处的点或者破损面周围的面,然后根据这些确定的点或者面反向找出与其关联的扫描点,关联指的是这些点或者面是在该扫描点处扫描生成的。然后使用这些关联的扫描点构建一个小范围的封闭图形并将该封闭图形围拢起来的扫描点一并划入到基准扫描点的范围内。
54.接着执行步骤s302,请参阅图7,该步骤中,会以扫描球形壳的球心和基准扫描点
为基准构建扫描线,扫描线就是扫描球形壳的球心与基准扫描点的连线。在步骤s303中,基准扫描点在扫描线上移动并对周围环境进行扫描,基准扫描点会脱离扫描球形壳并沿着扫描线向靠近三维映射模型的方向移动,直至与三维映射模型的表面发生接触。
55.此处的扫描方式是以基准扫描点位置为起点绘制两条线段,这两条线段与扫描线的夹角相同并且和扫描线位于同一平面,然后两条线段以扫描线为轴线基准转动360
°
,得到两个锥形面,这两个锥形面之间的区域就是该基准扫描点的扫描范围。
56.该过程中,基准扫描点会向四周扫描,并根据扫描得到的结果对破损面进行修复,此处以三维映射模型和渲染模型进行进一步说明。当最终得到的渲染模型存在破损时,需要使用完整的三维映射模型对最终得到的渲染模型进行修补。因为在前述步骤中,扫描点的位置固定,可能存在部分需要渲染的面(包括平面和曲面)无法被扫描到的情况。
57.因此在步骤s301至步骤s304中,使用了移动基准扫描点的方式来对三维映射模型进行扫描,用来将这部分需要渲染的面(包括平面和曲面)找到并将其补入到渲染模型中。
58.进一步地,扫描线构建完成后在扫描线上选取多个扫描位置,基准扫描点在每个扫描位置处进行扫描,这样能够降低的计算量。应理解,如果计算随着基准扫描点的移动动态进行,势必会带来大量的计算,因为这种方式会导致扫描范围会存在大范围的重合,这些重合会导致出现大量的无用计算。
59.设置了扫描位置后,能够将无用计算的范围控制在合适的范围内,这些无用计算的作用是使基准扫描点在多个扫描位置处进行扫描时,其扫描范围的边缘能够重合。
60.更进一步地,下一个扫描位置根据基准扫描点在上一个扫描位置处的扫描结果确定,两个相邻扫描位置处的扫描结果在扫描线的轴向方向重合。
61.本技术还公开了一种提升渲染速度的三维模型数据轻量化装置,包括:重构单元,用于响应于获取到的三维模型文件,在三维坐标系中对三维模型文件进行重构,得到三维映射模型;构建单元,用于在三维坐标系中构建扫描球形壳并将三维映射模型移动到扫描球形壳内;部署单元,用于以扫描范围为基准在扫描球形壳上均匀部署扫描点;扫描单元,用于在扫描点处对三维映射模型进行扫描,每个扫描点处的扫描范围均相同;以及拆解单元,用于根据扫描结果对三维映射模型进行拆解,三维映射模型上被扫描到的部分进行保留处理,三维映射模型上未被扫描到的部分进行删除处理,得到渲染模型。
62.在一个例子中,以上任一装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(application specific integratedcircuit,asic),或,一个或多个数字信号处理器(digital signal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga),或这些集成电路形式中至少两种的组合。
63.再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。
64.在本技术中可能出现的对各种消息/信息/设备/网元/系统/装置/动作/操作/流程/概念等各类客体进行了赋名,可以理解的是,这些具体的名称并不构成对相关客体的限定,所赋名称可随着场景,语境或者使用习惯等因素而变更,对本技术中技术术语的技术含义的理解,应主要从其在技术方案中所体现/执行的功能和技术效果来确定。
65.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
66.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
67.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
68.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
69.还应理解,在本技术的各个实施例中,第一、第二等只是为了表示多个对象是不同的。例如第一时间窗和第二时间窗只是为了表示出不同的时间窗。而不应该对时间窗的本身产生任何影响,上述的第一、第二等不应该对本技术的实施例造成任何限制。
70.还应理解,在本技术的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
71.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
72.本技术还提供了一种计算机程序产品,该计算机程序产品包括指令,当该指令被执行时,以使得该数据轻量化系统执行对应于上述方法的数据轻量化系统的操作。
73.本技术还提供了一种提升渲染速度的三维模型数据轻量化系统,所述系统包括:一个或多个存储器,用于存储指令;以及
一个或多个处理器,用于从所述存储器中调用并运行所述指令,执行如上述内容中所述的方法。
74.本技术还提供了一种芯片系统,该芯片系统包括处理器,用于实现上述内容中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。
75.该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
76.上述任一处提到的处理器,可以是一个cpu,微处理器,asic,或一个或多个用于控制上述的反馈信息传输的方法的程序执行的集成电路。
77.在一种可能的设计中,该芯片系统还包括存储器,该存储器,用于保存必要的程序指令和数据。该处理器和该存储器可以解耦,分别设置在不同的设备上,通过有线或者无线的方式连接,以支持该芯片系统实现上述实施例中的各种功能。或者,该处理器和该存储器也可以耦合在同一个设备上。
78.可选地,该计算机指令被存储在存储器中。
79.可选地,该存储器为该芯片内的存储单元,如寄存器、缓存等,该存储器还可以是该终端内的位于该芯片外部的存储单元,如rom或可存储静态信息和指令的其他类型的静态存储设备,ram等。
80.可以理解,本技术中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
81.非易失性存储器可以是rom、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。
82.易失性存储器可以是ram,其用作外部高速缓存。ram有多种不同的类型,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器。
83.本具体实施方式的实施例均为本技术的较佳实施例,并非依此限制本技术的保护范围,故:凡依本技术的结构、形状、原理所做的等效变化,均应涵盖于本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献