一种三维数据生成方法、装置、设备和存储介质与流程

文档序号:29460119发布日期:2022-04-02 00:59阅读:149来源:国知局
一种三维数据生成方法、装置、设备和存储介质与流程

1.本公开涉及数据技术领域,尤其涉及一种三维数据生成方法、装置、设备和存储介质。


背景技术:

2.目前,三维扫描仪在扫描阶段多是以重建三维点云数据为主,三维点云数据实际上是离散的点,缺乏拓扑信息,显示效果比较差。三维扫描仪在扫描阶段还可以重建三角网格,三角网格的显示效果比较好,但是数据量比较大,增加了传输带宽,且传输速度慢,对扫描的帧率也会有影响。
3.综上所述,三维扫描仪在扫描阶段重建不同数据时,会出现显示效果差,或者数据量大、传输速度慢以及扫描帧率低的问题。


技术实现要素:

4.为了解决上述技术问题,本公开提供了一种三维数据生成方法、装置、设备和存储介质,生成每帧图像对应的增量数据,降低传输带宽以及传输量,并加快渲染速度。
5.第一方面,本公开实施例提供了一种三维数据生成方法,方法包括:
6.获取待扫描物体的每帧图像;
7.确定每帧图像对应的网格数据;
8.基于每帧图像对应的网格数据和每帧图像的上帧图像对应的网格数据,生成增量数据;增量数据包括顶点更新数据和索引更新数据;
9.将增量数据发送至图形处理器,以使图形处理器基于增量数据更新全局顶点数组和全局索引数组,并基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。
10.第二方面,本公开实施例提供了一种三维数据生成方法,方法包括:
11.接收待扫描物体对应的增量数据,增量数据包括顶点更新数据和索引更新数据;
12.根据增量数据更新全局顶点数组和全局索引数组;
13.基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。
14.第三方面,本公开实施例提供了一种三维数据生成装置,装置包括:
15.获取单元,用于获取待扫描物体的每帧图像;
16.确定单元,用于确定每帧图像对应的网格数据;
17.生成单元,用于基于每帧图像对应的网格数据和每帧图像的上帧图像对应的网格数据,生成增量数据;增量数据包括顶点更新数据和索引更新数据;
18.发送单元,用于将增量数据发送至图形处理器,以使图形处理器基于增量数据更新全局顶点数组和全局索引数组,并基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。
19.第四方面,本公开实施例提供了一种三维数据生成装置,装置包括:
20.接收单元,用于接收待扫描物体对应的增量数据,增量数据包括顶点更新数据和索引更新数据;
21.更新单元,用于根据增量数据更新全局顶点数组和全局索引数组;
22.渲染单元,用于基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。
23.第五方面,本公开实施例提供了一种电子设备,包括:
24.存储器;
25.处理器;以及
26.计算机程序;
27.其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如上述的三维数据生成方法。
28.第六方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述的三维数据生成方法的步骤。
29.本公开涉及一种三维数据生成方法、装置、设备和存储介质。三维数据生成方法包括:获取待扫描物体的每帧图像,确定每帧图像对应的网格数据,基于每帧图像对应的网格数据和每帧图像的上一帧图像对应的网格数据,生成增量数据,增量数据包括顶点更新数据和索引更新数据,将增量数据发送至图形处理器,以使图形处理器基于增量数据更新全局顶点数组和全局索引数组,并基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。本公开的方法生成每帧图像对应的、包括顶点更新数据和索引更新数据的增量数据,并将增量数据传输至图形处理器,可以降低传输带宽以及传输量,并加快渲染待扫描物体的三维数据的速度。
附图说明
30.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
31.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
32.图1为本公开实施例提供的一种三维数据生成方法的流程示意图;
33.图2为本公开实施例提供的一种应用场景的示意图;
34.图3为本公开实施例提供的另一种三维数据生成方法的流程示意图;
35.图4为本公开实施例提供的另一种三维数据生成方法的流程示意图;
36.图5为本公开实施例提供的另一种三维数据生成方法的流程示意图;
37.图6为本公开实施例提供的一种三维数据生成装置的结构示意图;
38.图7为本公开实施例提供的另一种三维数据生成装置的结构示意图;
39.图8为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
40.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
41.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
42.具体的,扫描仪在扫描过程中,传统的数据流为:扫描仪通过摄像头采集图片,然后通过三维重建算法获得单帧图片的点云数据,再通过跟踪融合算法获得全局点云数据,最后通过封装全局点云数据获得三角网格,其中,中央处理器(central processing unit,cpu)将点云数据传输至图形处理器(graphics processing unit,gpu),随后图形处理器对三角网格进行渲染,但是该种方法显示效果比较差;其中,点云数据具体包括:坐标值、顶点颜色、顶点法向和其他属性,坐标值包括3个浮点型数据类型,共12个字节,顶点颜色包括3个浮点型数据类型,共12个字节,顶点法向也包括3个浮点型数据类型,共12个字节,其他属性包括1个字节。还有一种数据流为:扫描仪通过摄像头采集图片,然后通过三维重建算法获得单帧图片的三角网格,随后传输单帧图片的三角网格,再通过跟踪融合算法获得全局三角网格,最后通过后处理对三角网格进行优化,得到最终的三角网格,其中,中央处理器端会将每帧三角网格组合成完整的三角网格,将组合后的完整三角网格传输至图形处理器端进行渲染,但是每帧需要渲染的三角网格的数据传输量非常大,而且随着扫描的进行,三角网格的规模可能达到几千万个三角形,例如6000万个三角形的模型,三角网格中的顶点索引数据量就可能有700兆(m),三角网格中的顶点数据大约也有1个第一代移动通信技术(1g)的存储容量,要传输的单帧数据就有1.7g,几乎达到无法渲染的程度,也极大影响渲染帧率。综上,上述两种数据流中传输的单帧图片的三角网格的数据量比较大,传输速度慢,且单帧图片的三角网格从中央处理器端传输到图形处理器端需要的带宽也大幅增加,操作不灵活。
43.针对上述技术问题,本公开实施例提供了一种三维数据生成方法,具体通过下述一个或多个实施例进行详细说明。
44.图1为本公开实施例提供的一种三维数据生成方法的流程示意图,应用于中央处理器,也就是中央处理器端执行的操作,具体包括如图1所示的如下步骤s110至s140:
45.s110、获取待扫描物体的每帧图像。
46.可理解的,图2为本公开实施例提供的一种应用场景的示意图,三维数据生成方法可以应用在终端21或服务器22上。一种可能的应用场景为,三维扫描仪扫描待扫描物体的过程中得到多帧图像,将多帧图像传输至终端21,终端21中的中央处理器根据多帧图像中的每帧图像生成对应的增量数据,随后将增量数据传输至终端21中的图形处理器进行渲染,得到待扫描物体对应的三维数据,三维数据可以是待测物体的三维模型。另一种可能的实现方式,终端21接收三维扫描仪传输的多帧图像,随后终端21中的中央处理器根据多帧图像中的每帧图像生成对应的增量数据,并将增量数据传输至服务器22,服务器22对增量数据进行渲染,得到待扫描物体对应的三维数据。还有一种可以能的实现方式,扫描仪直接将扫描得到的多帧图像传输至服务器22,服务器22中的中央处理器根据多帧图像中的每帧
图像生成对应的增量数据,随后将增量数据传输至服务器22中的图形处理器进行渲染,得到待扫描物体对应的三维数据。下面以终端21实现三维数据生成方法为例,进行详细说明。
47.可理解的,扫描仪扫描待扫描物体生成多帧图像,并将多帧图像传输至终端,终端获取传输的多帧图像,扫描仪可以一次向终端传输多帧图像,也可以每次只传输一帧图像。
48.s120、确定每帧图像对应的网格数据。
49.可理解的,在上述s110的基础上,终端获取到一帧图像后,终端中的中央处理器通过三维重建算法对该帧图像进行处理,得到该帧图像对应的三角网格数据,三角网格数据中包括顶点数组和索引数据,顶点数组包括上述的坐标值、顶点颜色、顶点法向和其他属性,索引数组中的每个三角形包括3个整型类型,共12个字节。
50.s130、基于每帧图像对应的网格数据和每帧图像的上帧图像对应的网格数据,生成增量数据;增量数据包括顶点更新数据和索引更新数据。
51.可理解的,在上述s120的基础上,终端获取该帧图像的上一帧图像对应的三角网格数据,终端中的中央处理器根据该帧图像对应的三角网格数据和上一帧图像对应的三角网格数据进行比对分析,生成增量数据,增量数据中包括顶点更新数据和索引更新数据进行处理的标识和数据,例如包括增加标识、删除标识和修改标识。可理解的是,增量数据的数据量要小于全量数据,也就是增量数据的数据量要小于通常方法中央处理器要传输至图形处理器的三角网格数据的数据量,增量数据可以理解为对顶点数组和索引数据进行修改的数据,增量数据可以用来删除、增加或修改顶点数组和索引数据中的数据。
52.s140、将增量数据发送至图形处理器,以使图形处理器基于增量数据更新全局顶点数组和全局索引数组,并基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。
53.可理解的,在上述s130的基础上,终端中的中央处理器得到增量数据后,将增量数据传输至终端中的图形处理器,图形处理器基于增量数据对存储空间存储的全局顶点数据和全局索引数组进行更新,更新具体包括对全局顶点数据和全局索引数组中的数据(顶点数据或者三角形数据)进行删除、修改以及增加操作。
54.可选的,生成增量数据之前,方法还包括:获取待扫描物体的第一帧图像;确定第一帧图像对应的网格数据,并将第一帧图像对应的网格数据发送至图形处理器,以使图形处理器根据第一帧图像对应的网格数据构建全局顶点数组和全局索引数组。
55.可理解的,终端获取扫描仪生成的第一帧图像,随后中央处理器确定第一帧图像对应的三角网格数据,并根据该三角网格数据生成具有增加标识的增量数据,并将该增量数据传输至图形处理器,图形处理器根据增量数据中的增加标识构建并在存储空间存储全局顶点数据和全局索引数据。
56.可选的,根据第一帧图像对应的网格数据构建全局顶点数组和全局索引数组,具体包括:确定第一帧图像对应的网格数据中网格的顶点数量和面数量;根据顶点数量和面数量构建全局顶点数组和全局索引数组。
57.可理解的,图形处理器获取到第一帧图像对应的增量数据后,确定增量数据中总的顶点的数量,并根据总的顶点的数量确定三角形面的数量,随后根据当前总的顶点数量和面数量分别创建并存储全局顶点数组和全局索引数组。可理解的是,第一帧图像生成的增量数据中只包括增加标识,第一帧图像之后的其他帧图像生成的增量数据中可能包括增
加标识、删除标识和修改标识中的至少一种标识。例如第二帧图像对应的增量数据中包括删除标识,那么图形处理器就会根据该删除标识,删除上述根据第一帧图像对应的增量数据所构建的全局顶点数组和全局索引数组中删除标识对应的数据,可能会删除全局顶点数组和全局索引数组中的顶点、三角形和/或索引数据等。
58.本公开实施例提供的一种三维数据生成方法,通过获取待扫描物体的每帧图像,确定每帧图像对应的网格数据,基于每帧图像对应的网格数据和每帧图像的上一帧图像对应的网格数据,生成增量数据,增量数据包括顶点更新数据和索引更新数据,将增量数据发送至图形处理器,以使图形处理器基于增量数据更新全局顶点数组和全局索引数组,并基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。本公开的方法生成每帧图像对应的、包括顶点更新数据和索引更新数据的增量数据,并将增量数据传输至图形处理器,可以降低传输带宽以及传输量,并加快渲染待扫描物体的三维数据的速度。
59.在上述实施例的基础上,图3为本公开实施例提供的另一种三维数据生成方法的流程示意图,应用于图像处理器,也就是终端中的图形处理器执行三维数据生成方法,具体包括如图3所示的如下步骤s310至s330:
60.s310、接收待扫描物体对应的增量数据,增量数据包括顶点更新数据和索引更新数据。
61.可理解的,终端中的图形处理器接收中央处理器传输的待扫描物体对应的增量数据,增量数据中具体包括顶点更新数据和索引更新数据,顶点更新数据用于对存储的全局顶点数据进行更新,索引更新数据用于对存储的全局索引数组进行更新。
62.可选的,顶点更新数据包括顶点类别和顶点索引,顶点类别用于标识顶点更新数据的类型,顶点索引用于索引顶点更新数据在全局顶点数组中的位置。
63.可理解的,顶点更新数据包括顶点数据、顶点类别和顶点索引,顶点类别用于标识顶点数据的类型,也就是标识该顶点数据是坐标值、顶点颜色还是顶点法向,其中,顶点类别具体包括0、1、2,顶点类别为0表示该顶点数据中包括的数据为位置信息,顶点类别为1表示该顶点数据中包括的数据为法向信息,顶点类别为2表示该顶点数据中包括的数据为颜色信息。顶点索引用于索引顶点数据在全局顶点数组中的位置以及要执行的操作,执行的操作可以是删除操作,若顶点索引中的索引值为负整数,例如索引值为-1时,表示将顶点数据删除,若顶点索引中的索引值为非负整数,索引值就表示全局顶点数组中的具体索引位置,也就是确定该顶点数据需要作用到全局顶点数组中哪个顶点。
64.可选的,索引更新数据包括多边形面索引和多边形顶点索引,多边形面索引用于索引索引更新数据在全局索引数组中的位置,多边形顶点索引用于索引索引更新数据中多边形的顶点在全局索引数组中的位置。
65.可理解的,索引更新数据包括多边形面索引和多边形顶点索引,多边形面索引用于索引该索引更新数据在全局索引数组中的位置,多边形面索引具体可以是三角形面索引,当三角形面索引的索引值为-1时,表示在全局索引数组中删除该索引更新数据中的三角形,当三角形面索引的索引值为非负整数时,表示该索引更新数据在全局索引数组中的具体位置,也就是该索引更新数据需要作用到全局索引数组中哪个三角形。多边形顶点索引用于索引该索引更新数据中多边形的顶点在全局索引数组中的位置,多边形顶点索引也
就是三角形三个顶点的索引值,表明三角形的三个顶点在全局索引数组中的位置,多边形顶点索引可以是3个无符号整型数据。
66.s320、根据增量数据更新全局顶点数组和全局索引数组。
67.可理解的,在上述s310的基础上,图形处理器根据增量数据中的顶点更新数据和索引更新数据分别对存储的全局顶点数组和全局索引数组进行更新,可以根据顶点更新数据在全局顶点数组中增加顶点、删除顶点或者修改顶点数据等,可以根据索引更新数据删除全局索引数组中的三角形。
68.可选的,上述s320中具体包括:在计算队列中以大于预设阈值的帧率对增量数据进行解析。
69.可理解的,图形处理器接收到增量数据后会执行解析和渲染两个步骤,对增量数据进行解析,并对解析后的增量数据进行渲染。图形处理器内包括计算队列和渲染队列,可以在计算队列中以大于预设阈值的帧率对增量数据进行解析,预设阈值可以是60,可理解的是,终端屏幕的刷新率为60帧,也就是需要解析的速度要高于屏幕刷新的速度,避免后续不能及时提供渲染数据,进而影响屏幕刷新。
70.s330、基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。
71.可选的,上述s330中具体包括:将更新后的全局索引数组和更新后的全局顶点数组中的顶点数据进行变换处理;对变换处理后的顶点数据中的至少部分多边形进行剔除,生成片元;将片元进行渲染,得到待扫描物体的三维数据。
72.可理解的,在上述s320的基础上,图形处理器基于上述更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据,渲染的步骤具体包括:将更新后的全局索引数组和更新后的全局顶点数组中的顶点数据进行变换处理,随后对变换处理后的顶点数据中标记为删除的三角形进行剔除,生成片元,也就是删除顶点数据中被标记为删除的三角形后生成片元,最后将生成的片元进行渲染,得到待扫描物体的三维模型,渲染的步骤可以参见图形处理器进行渲染的步骤,具体说明在此不作赘述。
73.可选的,上述s330中具体包括:在渲染队列中以预设阈值的帧率基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。
74.可理解的,在图形处理器的渲染队列中以预设阈值的帧率,基于更新后的全局顶点数组和更新后的全局索引数组进行渲染,得到待扫描物体的三维数据,终端屏幕刷新率为60帧,因此渲染的帧率也可以是以60帧的速度进行渲染,以使渲染和屏幕刷新保持合理的刷新帧率。可理解的是,图形处理器中的渲染队列和计算队列分别对应中央处理器的一个线程,渲染可以基于中央处理器的主线程和渲染队列实现,解析可以基于中央处理器中除主线程之外的其他线程以及计算队列实现,实现多线程的并行计算架构,能加快生成三维数据的速度,让增量更新保持和三维重建算法同样的帧率(大于60的帧率),而让渲染保持和屏幕刷新保持一样的帧率(等于60的帧率),能够有效的减少不必要的渲染刷新次数,减少消耗。
75.本公开实施例提供的一种三维数据生成方法,通过接收待扫描物体对应的增量数据,增量数据包括顶点更新数据和索引更新数据,根据增量数据更新全局顶点数组和全局索引数组,基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数
据,提供了一种基于增量数据更新全局顶点数组和全局索引数组的方法,有效减少了中央处理器端到图形处理器端的传输带宽,加快了渲染速度。
76.在上述实施例的基础上,图4为本公开实施例提供的另一种三维数据生成方法的流程示意图,可选的,上述根据增量数据更新全局顶点数组和全局索引数组,具体包括如图4所示的如下步骤s410至s430:
77.s410、解析增量数据,解析后的增量数据中包括解析后的顶点更新数据和解析后的索引更新数据。
78.可理解的,图形处理器接收到增量数据后,基于中央处理器的某一线程和图形处理器中的计算队列,对增量数据进行解析,具体的,图形处理器的计算着色器(compute shader)执行解析操作,得到解析后的顶点更新数据和解析后的索引更新数据。
79.s420、根据解析后的顶点更新数据更新全局顶点数组。
80.可选的,根据解析后的顶点更新数据更新全局顶点数组,包括:根据解析后的顶点更新数据中的顶点索引,在全局顶点数组中确定目标顶点;根据解析后的顶点更新数据中的顶点类别对应的数据更新目标顶点对应的数据。
81.可理解的,在上述s410的基础上,基于中央处理器中的主线程和图形处理器中渲染队列,根据解析后的顶点更新数据更新全局顶点数组,具体的,根据解析后的顶点更新数据中的顶点索引,在全局顶点中确定要修改的目标顶点,随后根据顶点类别对应的信息更新全局顶点数组目标顶点位置处的数据。例如,在全局顶点数组中目标顶点的位置处增加顶点数据,当顶点类别为0时,在全局顶点数组中目标顶点的位置处增加位置信息,还可以在全局顶点数组中目标顶点位置处删除顶点更新数据中涉及到的顶点数据,还可以在全局顶点数组中目标顶点位置处修改顶点更新数据中涉及到的顶点数据。
82.s430、根据解析后的索引更新数据更新全局索引数组。
83.可选的,根据解析后的索引更新数据更新全局索引数组,包括:根据解析后的索引更新数据中的多边形面索引,在全局索引数组中确定目标多边形;根据解析后的索引更新数据中的多边形顶点索引对应的数据更新目标多边形的顶点对应的数据。
84.可理解的,在上述s420的基础上,根据解析后的索引更新数据中的多边形面索引中的索引值,在全局索引数组中确定目标多边形,也就是确定待更新的目标三角形,随后根据解析后的索引更新数据中的多边形顶点索引对应的数据,更新目标多边形的顶点对应的数据,上述确定目标三角形后,也可以更新三角形三个顶点的至少一个顶点。
85.本公开实施例提供的一种三维数据生成方法,通过解析增量数据,解析后的增量数据中包括解析后的顶点更新数据和解析后的索引更新数据,根据解析后的顶点更新数据更新全局顶点数组,根据解析后的索引更新数据更新全局索引数组,在中央处理器的不同线程以及图形处理器的不同队列中,执行解析操作和更新操作,能够快速的完成增量数据的解析,以及更新全局顶点数组和更新全局索引数组等操作,也能加快后续的渲染操作。
86.在上述实施例的基础上,图5为本公开实施例提供的另一种三维数据生成方法的流程示意图,三维数据生成方法还包括如图5所示的如下步骤s510至s530:
87.s510、若存储全局顶点数组和全局索引数组的第一存储空间满时,获取第二存储空间。
88.可理解的,随着增量数据的陆续生成,增量数据从中央处理器不断传到图形处理
器,图形处理器也会不断的通过增量数据更新全局顶点数组和全局索引数组,导致终端存储全局顶点数组和全局索引数组的第一存储空间存储满了时,获取第二存储空间,第二存储空间用于存储后续全局顶点数组和全局索引数组更新后的至少部分数据。可理解的,当存储空间满了需要扩容时,通常情况下会分三步执行,具体包括:申请更大的新空间,将旧空间的数据拷贝到新空间内,释放旧空间,并使用新空间进行后续的根据增量数据更新全局顶点数组和全局索引数组操作,但是该种方法,在扩容的那一帧会出现明显的卡顿现象,且从旧空间拷贝到新空间也比较费时,极易影响后续的全局顶点数组和全局索引数组的更新。
89.s520、将第二存储空间和第一存储空间进行绑定。
90.可理解的,在上述s510的基础上,将第二存储空间(新空间)和第一存储空间(旧空间)进行绑定,也就是获取新空间后,不需要执行将旧空间数据拷贝到新空间以及释放旧空间的操作,具体的可以通过使用离散绑定(sparse binding)技术,将第二存储空间和第一存储空间进行绑定,绑定后的第二存储空间和第一存储空间在图形处理器进行更新时会理解为一个新的空间,能够从第二存储空间和第一存储空间内直接读取需要的全局顶点数组和全局索引数组,也能够存储全局顶点数组和全局索引数组中更新后的数据,也就是第二存储空间和第一存储空间都处于可使用状态。例如,第一存储空间存储的是0-20g的数据,第二存储空间会存储20-40g的数据,第一存储空间和第二存储空间在使用上是连续的,但是第一存储空间和第二存储空间在物理上可能是分开的,也就是在终端上可能看到第一存储空间和第二存储空间分为两个区域的情况。
91.s530、根据增量数据更新第二存储空间和/或第一存储空间内的全局顶点数组以及全局索引数组。
92.可理解的,在上述s520的基础上,完成存储空间的绑定和扩容后,图形处理器获取新的增量数据,随后图形处理器就可以根据增量数据直接读取、更新第二存储空间和/或第一存储空间内存储的全局顶点数组以及全局索引数组。
93.本公开实施例提供的一种三维数据生成方法,在存储全局顶点数组和全局索引数组的第一存储空间满时,获取新的第二存储空间,并将新的第二存储空间和旧的第一存储空间进行绑定,随后图形处理器获取新的增量数据后,就可以根据增量数据直接读取、更新第二存储空间和/或第一存储空间按内存储的全局顶点数组以及全局索引数组。本公开提供的方法,在进行存储空间扩容时不会出现明显的卡顿现象,将新空间和旧空间进行绑定作为一个完整的新空间进行使用,也就是新空间和旧空间是连续的,不需要将旧空间的内容拷贝到新空间,也不需要释放旧空间。
94.图6为本公开实施例提供的三维数据生成装置的结构示意图。本公开实施例提供的三维数据生成装置可以执行上述三维数据生成方法实施例提供的处理流程,如图6所示,三维数据生成装置600包括:
95.获取单元610,用于获取待扫描物体的每帧图像;
96.确定单元620,用于确定每帧图像对应的网格数据;
97.生成单元630,用于基于每帧图像对应的网格数据和每帧图像的上帧图像对应的网格数据,生成增量数据;增量数据包括顶点更新数据和索引更新数据;
98.发送单元640,用于将增量数据发送至图形处理器,以使图形处理器基于增量数据
更新全局顶点数组和全局索引数组,并基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。
99.可选的,装置600中还包括处理单元,处理单元用于生成增量数据之前,具体用于:
100.获取待扫描物体的第一帧图像;
101.确定第一帧图像对应的网格数据,并将第一帧图像对应的网格数据发送至图形处理器,以使图形处理器根据第一帧图像对应的网格数据构建全局顶点数组和全局索引数组。
102.可选的,处理单元中根据第一帧图像对应的网格数据构建全局顶点数组和全局索引数组,具体用于:
103.确定第一帧图像对应的网格数据中网格的顶点数量和面数量;
104.根据顶点数量和面数量构建全局顶点数组和全局索引数组。
105.图6所示实施例的三维数据生成装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
106.图7为本公开实施例提供的三维数据生成装置的结构示意图。本公开实施例提供的三维数据生成装置可以执行上述三维数据生成方法实施例提供的处理流程,如图7所示,三维数据生成装置700包括:
107.接收单元710,用于接收待扫描物体对应的增量数据,增量数据包括顶点更新数据和索引更新数据;
108.更新单元720,用于根据增量数据更新全局顶点数组和全局索引数组;
109.渲染单元730,用于基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。
110.可选的,装置700中顶点更新数据包括顶点类别和顶点索引,顶点类别用于标识顶点更新数据的类型,顶点索引用于索引顶点更新数据在全局顶点数组中的位置;
111.索引更新数据包括多边形面索引和多边形顶点索引,多边形面索引用于索引索引更新数据在全局索引数组中的位置,多边形顶点索引用于索引索引更新数据中多边形的顶点在全局索引数组中的位置。
112.可选的,更新单元720中根据增量数据更新全局顶点数组和全局索引数组,具体用于:
113.解析增量数据,解析后的增量数据中包括解析后的顶点更新数据和解析后的索引更新数据;
114.根据解析后的顶点更新数据更新全局顶点数组;
115.根据解析后的索引更新数据更新全局索引数组。
116.可选的,更新单元720中根据解析后的顶点更新数据更新全局顶点数组,具体用于:
117.根据解析后的顶点更新数据中的顶点索引,在全局顶点数组中确定目标顶点;
118.根据解析后的顶点更新数据中的顶点类别对应的数据更新目标顶点对应的数据。
119.可选的,更新单元720中,根据解析后的索引更新数据更新全局索引数组,具体用于:
120.根据解析后的索引更新数据中的多边形面索引,在全局索引数组中确定目标多边
形;
121.根据解析后的索引更新数据中的多边形顶点索引对应的数据更新目标多边形的顶点对应的数据。
122.可选的,渲染单元730中基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据,具体用于:
123.将更新后的全局索引数组和更新后的全局顶点数组中的顶点数据进行变换处理;
124.对变换处理后的顶点数据中的至少部分多边形进行剔除,生成片元;
125.将片元进行渲染,得到待扫描物体的三维数据。
126.可选的,装置700中还包括存储单元,存储单元具体用于:
127.若存储增量数据的第一存储空间满时,获取第二存储空间;
128.将第二存储空间和第一存储空间进行绑定;
129.根据增量数据更新全局顶点数组和全局索引数组,包括:
130.根据增量数据更新第二存储空间和/或第一存储空间内的全局顶点数组以及全局索引数组。
131.可选的,更新数据720中根据增量数据更新全局顶点数组和全局索引数组,具体用于:
132.在计算队列中以大于预设阈值的帧率对增量数据进行解析。
133.可选的,渲染单元730中基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据,具体用于:
134.在渲染队列中以预设阈值的帧率基于更新后的全局顶点数组和更新后的全局索引数组渲染待扫描物体的三维数据。
135.图7所示实施例的三维数据生成装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
136.图8为本公开实施例提供的一种电子设备的结构示意图。本公开实施例提供的电子设备可以执行上述实施例提供的处理流程,如图8所示,电子设备800包括:处理器810、通讯接口820和存储器830;其中,计算机程序存储在存储器830中,并被配置为由处理器810执行如上述的三维数据生成方法。
137.另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的三维数据生成方法。
138.此外,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的三维数据生成方法。
139.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
140.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公
开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1