模型渲染方法、装置、存储介质和电子设备转让专利

申请号 : CN202210713115.X

文献号 : CN114782614B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 柳晓华朱旭平宋彬何文武

申请人 : 北京飞渡科技有限公司

摘要 :

本公开涉及一种模型渲染方法、装置、存储介质和电子设备,涉及模型渲染技术领域,该方法包括:获取由多个预设图形构成的原始模型,以及每个预设图形的顶点位置,根据顶点位置,从多个预设图形中确定至少一个目标预设图形,目标预设图形为原始模型的被遮挡区域中的预设图形,删除原始模型上的目标预设图形,得到目标模型,并对目标模型进行渲染。本公开通过删除原始模型的被遮挡区域中的目标预设图形,得到目标模型,并对目标模型进行渲染,可以在保留模型数据的语义信息的同时,减少模型渲染加载的数据量,并缩短加载时间,同时提升加载后的渲染帧率,避免影响三维模型的使用。

权利要求 :

1.一种模型渲染方法,其特征在于,所述方法包括:获取由多个预设图形构成的原始模型,以及每个所述预设图形的顶点位置;

根据所述顶点位置,从所述多个预设图形中确定至少一个目标预设图形;所述目标预设图形为所述原始模型的被遮挡区域中的预设图形;

删除所述原始模型上的所述目标预设图形,得到目标模型,并对所述目标模型进行渲染;

所述根据所述顶点位置,从所述多个预设图形中确定至少一个目标预设图形,包括:根据每个所述预设图形的顶点位置,确定所述多个预设图形对应的目标包围球;所述目标包围球为包围所述多个预设图形的最小体积的包围球;

根据每个所述预设图形和所述目标包围球,确定每个所述预设图形对应的目标概率;

所述目标概率为所述预设图形位于所述被遮挡区域中的概率;

根据所述目标概率,确定所述目标预设图形;

所述根据每个所述预设图形和所述目标包围球,确定每个所述预设图形对应的目标概率,包括:获取所述目标包围球上的预设数量个目标点对应的深度图;

根据每个所述预设图形和每个所述目标点对应的深度图,确定每个所述预设图形对应的目标次数;所述目标次数为所述预设图形被确定位于所述被遮挡区域中的次数;

根据每个所述预设图形对应的目标次数和所述预设数量,确定该预设图形对应的目标概率;

所述根据每个所述预设图形和每个所述目标点对应的深度图,确定每个所述预设图形对应的目标次数,包括:针对每个所述预设图形,将该预设图形的重心分别投影到每个所述深度图上,得到该预设图形对应的重心投影点;

获取每个所述重心投影点的第一深度和每个所述重心投影点的第二深度;每个所述重心投影点的第一深度为该重心投影点与该重心投影点对应的预设图形的重心之间的深度,每个所述重心投影点的第二深度为该重心投影点在该重心投影点所处深度图上的深度;

根据所述第一深度和所述第二深度,确定每个所述预设图形对应的目标次数。

2.根据权利要求1所述的方法,其特征在于,所述获取所述目标包围球上的预设数量个目标点对应的深度图,包括:将所述目标包围球上所述预设数量个顶点作为所述目标点,并通过图像采集装置在每个所述目标点,沿该目标点至所述目标包围球的球心的方向,获取该目标点对应的深度图。

3.根据权利要求1所述的方法,其特征在于,所述根据所述第一深度和所述第二深度,确定每个所述预设图形对应的目标次数,包括:针对每个所述预设图形,在该预设图形对应的全部重心投影点中,统计所述第一深度大于或等于所述第二深度的重心投影点的目标数量,并将所述目标数量作为该预设图形对应的目标次数。

4.根据权利要求1所述的方法,其特征在于,所述根据所述目标概率,确定所述目标预设图形,包括:在所述多个预设图形中,将对应的所述目标概率大于或等于预设概率阈值的所述预设图形,作为所述目标预设图形。

5.一种模型渲染装置,其特征在于,所述装置包括:获取模块,用于获取由多个预设图形构成的原始模型,以及每个所述预设图形的顶点位置;

确定模块,用于根据所述顶点位置,从所述多个预设图形中确定至少一个目标预设图形;所述目标预设图形为所述原始模型的被遮挡区域中的预设图形;

处理模块,用于删除所述原始模型上的所述目标预设图形,得到目标模型,并对所述目标模型进行渲染;

所述确定模块包括:

第一确定子模块,用于根据每个所述预设图形的顶点位置,确定所述多个预设图形对应的目标包围球;所述目标包围球为包围所述多个预设图形的最小体积的包围球;

所述第一确定子模块,还用于根据每个所述预设图形和所述目标包围球,确定每个所述预设图形对应的目标概率;所述目标概率为所述预设图形位于所述被遮挡区域中的概率;

第二确定子模块,用于根据所述目标概率,确定所述目标预设图形;

所述第一确定子模块用于:

获取所述目标包围球上的预设数量个目标点对应的深度图;

根据每个所述预设图形和每个所述目标点对应的深度图,确定每个所述预设图形对应的目标次数;所述目标次数为所述预设图形被确定位于所述被遮挡区域中的次数;

根据每个所述预设图形对应的目标次数和所述预设数量,确定该预设图形对应的目标概率;

所述第一确定子模块用于:

针对每个所述预设图形,将该预设图形的重心分别投影到每个所述深度图上,得到该预设图形对应的重心投影点;

获取每个所述重心投影点的第一深度和每个所述重心投影点的第二深度;每个所述重心投影点的第一深度为该重心投影点与该重心投影点对应的预设图形的重心之间的深度,每个所述重心投影点的第二深度为该重心投影点在该重心投影点所处深度图上的深度;

根据所述第一深度和所述第二深度,确定每个所述预设图形对应的目标次数。

6.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1‑4中任一项所述方法的步骤。

7.一种电子设备,其特征在于,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1‑4中任一项所述方法的步骤。

说明书 :

模型渲染方法、装置、存储介质和电子设备

技术领域

[0001] 本公开涉及模型渲染技术领域,具体地,涉及一种模型渲染方法、装置、存储介质和电子设备。

背景技术

[0002] BIM模型(英文:Building Information Modeling,中文:建筑信息模型)是一种建筑全生命周期信息化管理技术,能够将建筑信息进行数字化,因此被广泛应用于建筑领域中。然而,随着建模技术的不断提高,BIM模型的数据量也随之飞速增长,使得BIM模型的模型数据占用较大的存储空间,同时会导致在渲染加载BIM模型时的加载时间较长,并且会使得加载后的渲染帧率较低,进而影响三维模型的使用。

发明内容

[0003] 为了解决相关技术中存在的问题,本公开提供了一种模型渲染方法、装置、存储介质和电子设备。
[0004] 为了实现上述目的,根据本公开实施例的第一方面,提供一种模型渲染方法,所述方法包括:
[0005] 获取由多个预设图形构成的原始模型,以及每个所述预设图形的顶点位置;
[0006] 根据所述顶点位置,从所述多个预设图形中确定至少一个目标预设图形;所述目标预设图形为所述原始模型的被遮挡区域中的预设图形;
[0007] 删除所述原始模型上的所述目标预设图形,得到目标模型,并对所述目标模型进行渲染。
[0008] 可选地,所述根据所述顶点位置,从所述多个预设图形中确定至少一个目标预设图形,包括:
[0009] 根据每个所述预设图形的顶点位置,确定所述多个预设图形对应的目标包围球;所述目标包围球为包围所述多个预设图形的最小体积的包围球;
[0010] 根据每个所述预设图形和所述目标包围球,确定每个所述预设图形对应的目标概率;所述目标概率为所述预设图形位于所述被遮挡区域中的概率;
[0011] 根据所述目标概率,确定所述目标预设图形。
[0012] 可选地,所述根据每个所述预设图形和所述目标包围球,确定每个所述预设图形对应的目标概率,包括:
[0013] 获取所述目标包围球上的预设数量个目标点对应的深度图;
[0014] 根据每个所述预设图形和每个所述目标点对应的深度图,确定每个所述预设图形对应的目标次数;所述目标次数为所述预设图形被确定位于所述被遮挡区域中的次数;
[0015] 根据每个所述预设图形对应的目标次数和所述预设数量,确定该预设图形对应的目标概率。
[0016] 可选地,所述获取所述目标包围球上的预设数量个目标点对应的深度图,包括:
[0017] 将所述目标包围球上所述预设数量个顶点作为所述目标点,并通过图像采集装置在每个所述目标点,沿该目标点至所述目标包围球的球心的方向,获取该目标点对应的深度图。
[0018] 可选地,所述根据每个所述预设图形和每个所述目标点对应的深度图,确定每个所述预设图形对应的目标次数,包括:
[0019] 针对每个所述预设图形,将该预设图形的重心分别投影到每个所述深度图上,得到该预设图形对应的重心投影点;
[0020] 获取每个所述重心投影点的第一深度和每个所述重心投影点的第二深度;每个所述重心投影点的第一深度为该重心投影点与该重心投影点对应的预设图形的重心之间的深度,每个所述重心投影点的第二深度为该重心投影点在该重心投影点所处深度图上的深度;
[0021] 根据所述第一深度和所述第二深度,确定每个所述预设图形对应的目标次数。
[0022] 可选地,所述根据所述第一深度和所述第二深度,确定每个所述预设图形对应的目标次数,包括:
[0023] 针对每个所述预设图形,在该预设图形对应的全部重心投影点中,统计所述第一深度大于或等于所述第二深度的重心投影点的目标数量,并将所述目标数量作为该预设图形对应的目标次数。
[0024] 可选地,所述根据所述目标概率,确定所述目标预设图形,包括:
[0025] 在所述多个预设图形中,将对应的所述目标概率大于或等于预设概率阈值的所述预设图形,作为所述目标预设图形。
[0026] 根据本公开实施例的第二方面,提供一种模型渲染装置,所述装置包括:
[0027] 获取模块,用于获取由多个预设图形构成的原始模型,以及每个所述预设图形的顶点位置;
[0028] 确定模块,用于根据所述顶点位置,从所述多个预设图形中确定至少一个目标预设图形;所述目标预设图形为所述原始模型的被遮挡区域中的预设图形;
[0029] 处理模块,用于删除所述原始模型上的所述目标预设图形,得到目标模型,并对所述目标模型进行渲染。
[0030] 可选地,确定模块包括:
[0031] 第一确定子模块,用于根据每个所述预设图形的顶点位置,确定所述多个预设图形对应的目标包围球;所述目标包围球为包围所述多个预设图形的最小体积的包围球;
[0032] 所述第一确定子模块,还用于根据每个所述预设图形和所述目标包围球,确定每个所述预设图形对应的目标概率;所述目标概率为所述预设图形位于所述被遮挡区域中的概率;
[0033] 第二确定子模块,用于根据所述目标概率,确定所述目标预设图形。
[0034] 可选地,所述第一确定子模块用于:
[0035] 获取所述目标包围球上的预设数量个目标点对应的深度图;
[0036] 根据每个所述预设图形和每个所述目标点对应的深度图,确定每个所述预设图形对应的目标次数;所述目标次数为所述预设图形被确定位于所述被遮挡区域中的次数;
[0037] 根据每个所述预设图形对应的目标次数和所述预设数量,确定该预设图形对应的目标概率。
[0038] 可选地,所述第一确定子模块用于:
[0039] 将所述目标包围球上所述预设数量个顶点作为所述目标点,并通过图像采集装置在每个所述目标点,沿该目标点至所述目标包围球的球心的方向,获取该目标点对应的深度图。
[0040] 可选地,所述第一确定子模块用于:
[0041] 针对每个所述预设图形,将该预设图形的重心分别投影到每个所述深度图上,得到该预设图形对应的重心投影点;
[0042] 获取每个所述重心投影点的第一深度和每个所述重心投影点的第二深度;每个所述重心投影点的第一深度为该重心投影点与该重心投影点对应的预设图形的重心之间的深度,每个所述重心投影点的第二深度为该重心投影点在该重心投影点所处深度图上的深度;
[0043] 根据所述第一深度和所述第二深度,确定每个所述预设图形对应的目标次数。
[0044] 可选地,所述第一确定子模块用于:
[0045] 针对每个所述预设图形,在该预设图形对应的全部重心投影点中,统计所述第一深度大于或等于所述第二深度的重心投影点的目标数量,并将所述目标数量作为该预设图形对应的目标次数。
[0046] 可选地,所述第二确定子模块用于:
[0047] 在所述多个预设图形中,将对应的所述目标概率大于或等于预设概率阈值的所述预设图形,作为所述目标预设图形。
[0048] 根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上第一方面中任一项所述方法的步骤。
[0049] 根据本公开实施例的第四方面,提供一种电子设备,包括:
[0050] 存储器,其上存储有计算机程序;
[0051] 处理器,用于执行所述存储器中的所述计算机程序,以实现以上第一方面中任一项所述方法的步骤。
[0052] 通过上述技术方案,本公开首先获取由多个预设图形构成的原始模型,以及每个预设图形的顶点位置,再根据顶点位置,从多个预设图形中确定至少一个目标预设图形,其中目标预设图形为原始模型的被遮挡区域中的预设图形,然后删除原始模型上的目标预设图形,得到目标模型,并对目标模型进行渲染。本公开通过删除原始模型的被遮挡区域中的目标预设图形,得到目标模型,并对目标模型进行渲染,可以在保留模型数据的语义信息的同时,减少模型渲染加载的数据量,并缩短加载时间,同时提升加载后的渲染帧率,避免影响三维模型的使用。
[0053] 本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

[0054] 附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
[0055] 图1是根据一示例性实施例示出的一种模型渲染方法的流程图;
[0056] 图2是图1所示实施例示出的一种步骤102的流程图;
[0057] 图3是根据一示例性实施例示出的一种模型渲染装置的框图;
[0058] 图4是图3所示实施例示出的一种确定模块的框图;
[0059] 图5是根据一示例性实施例示出的一种电子设备的框图;
[0060] 图6是根据一示例性实施例示出的另一种电子设备的框图。

具体实施方式

[0061] 以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
[0062] 需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
[0063] 图1是根据一示例性实施例示出的一种模型渲染方法的流程图。如图1所示,该方法包括以下步骤:
[0064] 步骤101,获取由多个预设图形构成的原始模型,以及每个预设图形的顶点位置。
[0065] 示例地,为了避免由于模型数据的数据量较大带来的渲染加载BIM模型的加载时间较长以及加载后的渲染帧率较低的问题,可以采用对BIM模型进行分时、分块渲染加载的方式,来减少模型渲染加载的数据量,从而缩短加载时间,并提升加载后的渲染帧率。具体地,首先可以获取待渲染的原始模型。其中,原始模型可以是由多个预设图形拼接构成的三维模型,例如原始模型可以是BIM模型。预设图形可以为三角形(这里的三角形可以理解为一种三角形网格,用于拼接构成三维模型),也可以为除三角形以外的其他多边形(这里的多边形可以理解为一种多边形网格,用于拼接构成三维模型)。
[0066] 其次,可以从原始模型的模型数据中,获取原始模型上的每个预设图形的顶点位置。其中,获取顶点位置的方式可以是:先建立原始模型对应的数据结构,该数据结构例如可以包括:顶点数组vary和预设图形的索引数组fary,vary包含了全部预设图形的顶点位置以及每个顶点的顶点标号,fary包含了每个预设图形对应的顶点的索引值。例如,当预设图形为三角形,且预设图形一共有3个时,vary可以包含顶点标号为0,1,2,3,4,5,6,7,8的九个顶点的顶点位置,fary包含了3个预设图形对应的顶点的索引值,3个预设图形对应的顶点的索引值可以分别为:(0,7,8)、(1,5,6)和(2,3,4)。然后可以遍历原始模型上的所有预设图形,并在每遍历到一个预设图形时,将遍历到的预设图形填充至该数据结构中(填充后的数据结构可以使用MESH_DATA来表示),这样填充后的数据结构中就包含了每个预设图形的顶点位置。例如,在原始模型为BIM模型,且预设图形为三角形的情况下,可以遍历BIM模型上的所有三角形,并在每遍历到一个三角形时,将遍历到的三角形填充至该数据结构中。
[0067] 步骤102,根据顶点位置,从多个预设图形中确定至少一个目标预设图形。其中,目标预设图形为原始模型的被遮挡区域中的预设图形。
[0068] 举例来说,由于用户在使用原始模型时,首先看到和使用的是原始模型的外壳,因此可以采用对原始模型进行分时、分块加载的方式,先加载原始模型的外壳来供用户使用,以减少一次性所需渲染加载的数据量,从而提升加载后的渲染帧率。具体地,在获取到顶点位置之后,可以根据每个预设图形的顶点位置,从多个预设图形中,确定原始模型的被遮挡区域中的目标预设图形。其中,目标预设图形可以理解为原始模型的内部结构中的用户不可见的预设图形,即目标预设图形不用于拼接构成原始模型的外壳,删除目标预设图形并不会影响原始模型外壳的几何形状、材质等。
[0069] 步骤103,删除原始模型上的目标预设图形,得到目标模型,并对目标模型进行渲染。
[0070] 示例地,在确定目标预设图形后,可以先删除原始模型上的目标预设图形,得到只包含原始模型外部结构的目标模型,并对该目标模型进行渲染。通过这样的方式,可以将原始模型自动分成内部结构与外部结构,并分时、分块进行加载,以在保留模型数据的语义信息的同时,先渲染出一个原始模型的外壳(即目标模型)供用户使用,减少了一次性所需渲染加载的数据量,能够缩短加载时间,并提升加载后的渲染帧率,进而避免影响用户对三维模型的使用。
[0071] 以原始模型为BIM模型,且预设图形为三角形为例进行说明,BIM模型的模型数据可以在几千平方米的区域内聚集几千万的三角形网格,并带有网格属性(例如颜色、纹理、标记等),这会占用上G的磁盘空间,使得在渲染加载时过于庞大,导致加载时间长达数分钟甚至达到小时级别,并且加载后的渲染帧率可能会低至个位数帧率。通过删除BIM模型上的目标预设图形,可以将BIM模型的内部结构全部剔除,得到只包含BIM模型可见外壳的目标模型。目标模型的数据量可以只占到BIM模型原始数据的25%,但是BIM模型可见外壳的几何形状、材质没有任何变化,并不会影响到用户初步使用模型。此时对该目标模型进行渲染,能够在保留BIM模型原始数据的语义信息的同时,将加载时间提升到秒级,同时确保加载后的渲染帧率不低于25帧。
[0072] 进一步地,在渲染完成目标模型后,可以在渲染完成的目标模型基础上,对原始模型上的全部预设图形中除目标预设图形外的预设图形进行渲染(即进一步渲染原始模型的内部结构),得到完整的原始模型。
[0073] 综上所述,本公开首先获取由多个预设图形构成的原始模型,以及每个预设图形的顶点位置,再根据顶点位置,从多个预设图形中确定至少一个目标预设图形,其中目标预设图形为原始模型的被遮挡区域中的预设图形,然后删除原始模型上的目标预设图形,得到目标模型,并对目标模型进行渲染。本公开通过删除原始模型的被遮挡区域中的目标预设图形,得到目标模型,并对目标模型进行渲染,可以在保留模型数据的语义信息的同时,减少模型渲染加载的数据量,并缩短加载时间,同时提升加载后的渲染帧率,避免影响三维模型的使用。
[0074] 图2是图1所示实施例示出的一种步骤102的流程图。如图2所示,步骤102可以包括以下步骤:
[0075] 步骤1021,根据每个预设图形的顶点位置,确定多个预设图形对应的目标包围球。其中,目标包围球为包围多个预设图形的最小体积的包围球。
[0076] 示例地,可以根据所有预设图形的顶点位置,计算一个能够包围全部预设图形的最小体积的包围球的球心O与球半径r,并将该包围球作为目标包围球。其中,计算球心O与球半径r的具体实现方式可以参考相关技术中描述的方式,此处不再赘述。
[0077] 步骤1022,根据每个预设图形和目标包围球,确定每个预设图形对应的目标概率。其中,目标概率为预设图形位于被遮挡区域中的概率。
[0078] 举例来说,在确定目标包围球之后,可以在目标包围球上均匀选择预设数量个顶点,并在每个选择的顶点处,沿该顶点至目标包围球的球心的方向,获取该顶点对应的深度图。之后可以将每个预设图形的重心分别反向投影到各个深度图上,得到该预设图形在各个深度图上对应的重心投影点,并获取每个重心投影点与该重心投影点对应的预设图形的重心之间的第一深度,以及每个重心投影点在该重心投影点所处深度图上的第二深度。如果一个重心投影点的第一深度大于或等于第二深度,则可以认为该重心投影点对应的预设图形在原始模型上是不可见的,即该重心投影点对应的预设图形位于原始模型的被遮挡区域中。
[0079] 然后,可以针对每个预设图形,统计该预设图形对应的全部重心投影点中第一深度大于或等于第二深度的重心投影点的目标数量,即获取根据重心投影点的第一深度和第二深度确定预设图形位于被遮挡区域中的次数(即预设图形不可见的次数)。最后,可以根据每个预设图形对应的目标数量和预设数量,确定该预设图形对应的目标概率,即确定该预设图形位于被遮挡区域中的概率(即该预设图形不可见的概率)。
[0080] 步骤1023,根据目标概率,确定目标预设图形。
[0081] 在本步骤中,可以在多个预设图形中,将对应的目标概率大于或等于预设概率阈值的预设图形,作为位于原始模型的被遮挡区域中的目标预设图形。例如,可以设置预设概率阈值为0.8,当某一预设图形对应的目标概率为0.9时,可以认为该预设图形为目标预设图形。
[0082] 可选地,步骤1022可以通过以下步骤实现:
[0083] 步骤a),获取目标包围球上的预设数量个目标点对应的深度图。
[0084] 示例地,可以将目标包围球上预设数量个顶点作为目标点,并通过图像采集装置在每个目标点,沿该目标点至目标包围球的球心的方向,获取该目标点对应的深度图。
[0085] 例如,可以在目标包围球上,按照经度间隔10度与纬度间隔10度的方式来绘制经纬网格,这样会在目标包围球上产生经线与纬线的交点,这些交点的个数为17*36=612个。然后可以将这612个交点作为目标点(即预设数量为612),并调用OPENGL的接口,在这612个目标点上放置指向目标包围球的球心O的相机,来获取每个目标点对应的深度图。
[0086] 步骤b),根据每个预设图形和每个目标点对应的深度图,确定每个预设图形对应的目标次数。其中,目标次数为预设图形被确定位于被遮挡区域中的次数。
[0087] 举例来说,可以针对每个预设图形,将该预设图形的重心分别投影到每个深度图上,得到该预设图形对应的重心投影点,并获取每个重心投影点的第一深度和每个重心投影点的第二深度。其中,每个重心投影点的第一深度为该重心投影点与该重心投影点对应的预设图形的重心之间的深度,每个重心投影点的第二深度为该重心投影点在该重心投影点所处深度图上的深度。
[0088] 然后,可以根据第一深度和第二深度,确定每个预设图形对应的目标次数。例如,可以针对每个预设图形,在该预设图形对应的全部重心投影点中,统计第一深度大于或等于第二深度的重心投影点的目标数量,并将目标数量作为该预设图形对应的目标次数。
[0089] 步骤c),根据每个预设图形对应的目标次数和预设数量,确定该预设图形对应的目标概率。
[0090] 在本步骤中,可以将每个预设图形对应的目标次数和预设数量的比值,作为该预设图形对应的目标概率,其中目标概率的取值范围为[0,1]。例如,当预设数量为612时,如果某一预设图形对应的目标次数为500,则该预设图形对应的目标概率为:500 / 612 ≈ 0.8170。
[0091] 综上所述,本公开首先获取由多个预设图形构成的原始模型,以及每个预设图形的顶点位置,再根据顶点位置,从多个预设图形中确定至少一个目标预设图形,其中目标预设图形为原始模型的被遮挡区域中的预设图形,然后删除原始模型上的目标预设图形,得到目标模型,并对目标模型进行渲染。本公开通过删除原始模型的被遮挡区域中的目标预设图形,得到目标模型,并对目标模型进行渲染,可以在保留模型数据的语义信息的同时,减少模型渲染加载的数据量,并缩短加载时间,同时提升加载后的渲染帧率,避免影响三维模型的使用。
[0092] 图3是根据一示例性实施例示出的一种模型渲染装置的框图。如图3所示,模型渲染装置200包括:
[0093] 获取模块201,用于获取由多个预设图形构成的原始模型,以及每个预设图形的顶点位置。
[0094] 确定模块202,用于根据顶点位置,从多个预设图形中确定至少一个目标预设图形。其中,目标预设图形为原始模型的被遮挡区域中的预设图形。
[0095] 处理模块203,用于删除原始模型上的目标预设图形,得到目标模型,并对目标模型进行渲染。
[0096] 图4是图3所示实施例示出的一种确定模块的框图。如图4所示,确定模块202包括:
[0097] 第一确定子模块2021,用于根据每个预设图形的顶点位置,确定多个预设图形对应的目标包围球。其中,目标包围球为包围多个预设图形的最小体积的包围球。
[0098] 第一确定子模块2021,还用于根据每个预设图形和目标包围球,确定每个预设图形对应的目标概率。其中,目标概率为预设图形位于被遮挡区域中的概率。
[0099] 第二确定子模块2022,用于根据目标概率,确定目标预设图形。
[0100] 可选地,第一确定子模块2021用于:
[0101] 获取目标包围球上的预设数量个目标点对应的深度图。
[0102] 根据每个预设图形和每个目标点对应的深度图,确定每个预设图形对应的目标次数。其中,目标次数为预设图形被确定位于被遮挡区域中的次数。
[0103] 根据每个预设图形对应的目标次数和预设数量,确定该预设图形对应的目标概率。
[0104] 可选地,第一确定子模块2021用于:
[0105] 将目标包围球上预设数量个顶点作为目标点,并通过图像采集装置在每个目标点,沿该目标点至目标包围球的球心的方向,获取该目标点对应的深度图。
[0106] 可选地,第一确定子模块2021用于:
[0107] 针对每个预设图形,将该预设图形的重心分别投影到每个深度图上,得到该预设图形对应的重心投影点。
[0108] 获取每个重心投影点的第一深度和每个重心投影点的第二深度。其中,每个重心投影点的第一深度为该重心投影点与该重心投影点对应的预设图形的重心之间的深度,每个重心投影点的第二深度为该重心投影点在该重心投影点所处深度图上的深度。
[0109] 根据第一深度和第二深度,确定每个预设图形对应的目标次数。
[0110] 可选地,第一确定子模块2021用于:
[0111] 针对每个预设图形,在该预设图形对应的全部重心投影点中,统计第一深度大于或等于第二深度的重心投影点的目标数量,并将目标数量作为该预设图形对应的目标次数。
[0112] 可选地,第二确定子模块2022用于:
[0113] 在多个预设图形中,将对应的目标概率大于或等于预设概率阈值的预设图形,作为目标预设图形。
[0114] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0115] 综上所述,本公开首先获取由多个预设图形构成的原始模型,以及每个预设图形的顶点位置,再根据顶点位置,从多个预设图形中确定至少一个目标预设图形,其中目标预设图形为原始模型的被遮挡区域中的预设图形,然后删除原始模型上的目标预设图形,得到目标模型,并对目标模型进行渲染。本公开通过删除原始模型的被遮挡区域中的目标预设图形,得到目标模型,并对目标模型进行渲染,可以在保留模型数据的语义信息的同时,减少模型渲染加载的数据量,并缩短加载时间,同时提升加载后的渲染帧率,避免影响三维模型的使用。
[0116] 图5是根据一示例性实施例示出的一种电子设备700的框图。如图5所示,该电子设备700可以被提供为一终端,电子设备700可以包括:第一处理器701,第一存储器702。该电子设备700还可以包括多媒体组件703,第一输入/输出接口704,以及第一通信组件705中的一者或多者。
[0117] 其中,第一处理器701用于控制该电子设备700的整体操作,以完成上述的模型渲染方法中的全部或部分步骤。第一存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该第一存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read‑Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read‑Only Memory,简称EPROM),可编程只读存储器(Programmable Read‑Only Memory,简称PROM),只读存储器(Read‑Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在第一存储器702或通过第一通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。第一输入/输出接口704为第一处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。第一通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi‑Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G、4G、NB‑IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该第一通信组件705可以包括:
Wi‑Fi模块,蓝牙模块,NFC模块等等。
[0118] 在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的模型渲染方法。
[0119] 在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的模型渲染方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的第一存储器702,上述程序指令可由电子设备700的第一处理器701执行以完成上述的模型渲染方法。
[0120] 另外,电子设备700还可以被提供为一服务器,如图6所示,电子设备700包括第二处理器706,其数量可以为一个或多个,以及第二存储器707,用于存储可由第二处理器706执行的计算机程序。第二存储器707中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,第二处理器706可以被配置为执行该计算机程序,以执行上述的模型渲染方法。
[0121] 另外,电子设备700还可以包括电源组件708和第二通信组件709,该电源组件708可以被配置为执行电子设备700的电源管理,该第二通信组件709可以被配置为实现电子设备700的通信,例如,有线或无线通信。此外,该电子设备700还可以包括第二输入/输出接口TM710。电子设备700可以操作基于存储在第二存储器707的操作系统,例如Windows Server ,TM TM TM
Mac OS X ,Unix ,Linux 等等。
[0122] 在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的模型渲染方法的步骤。例如,该非临时性计算机可读存储介质可以为上述包括程序指令的第二存储器707,上述程序指令可由电子设备700的第二处理器706执行以完成上述的模型渲染方法。
[0123] 在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的模型渲染方法的代码部分。
[0124] 以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
[0125] 另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
[0126] 此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。