CN114529648A - 模型展示方法、设备、装置、电子设备及存储介质 - Google Patents

模型展示方法、设备、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114529648A
CN114529648A CN202210153040.4A CN202210153040A CN114529648A CN 114529648 A CN114529648 A CN 114529648A CN 202210153040 A CN202210153040 A CN 202210153040A CN 114529648 A CN114529648 A CN 114529648A
Authority
CN
China
Prior art keywords
model
node
information
dimensional
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210153040.4A
Other languages
English (en)
Inventor
范涛
周玉杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sensetime Technology Development Co Ltd
Original Assignee
Beijing Sensetime Technology Development Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sensetime Technology Development Co Ltd filed Critical Beijing Sensetime Technology Development Co Ltd
Priority to CN202210153040.4A priority Critical patent/CN114529648A/zh
Publication of CN114529648A publication Critical patent/CN114529648A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开提供了一种模型展示方法、设备、装置、电子设备及存储介质,该方法包括:获取目标场景中包括的每个三维模型对应的八叉树信息;其中,八叉树信息包括多个节点;每个节点表征的三维区域包括三维模型上的局部模型;节点包括的局部模型的精细程度、与节点的节点深度正相关;精细程度高的局部模型包括的顶点数量、大于精细程度低的局部模型包括的顶点数量;基于用于拍摄所述目标场景中三维模型的虚拟相机当前的拍摄参数信息,确定所述虚拟相机的可视化区域的区域信息;基于所述目标场景包括的各个三维模型分别对应的八叉树信息和所述区域信息,确定位于所述可视化区域内的至少一个节点所包括的目标局部模型。

Description

模型展示方法、设备、装置、电子设备及存储介质
技术领域
本公开涉及三维模型技术领域,具体而言,涉及一种模型展示方法、设备、装置、电子设备及存储介质。
背景技术
随着技术的发展,越来越多的场景中需要渲染三维模型;比如,增强现实(Augmented Reality,AR)、虚拟现实(Virtual Reality,VR)、数字孪生项目等。其中,可以生成每个三维模型对应的模型文件,并将各个三维模型的模型文件存储到内存中,使得设备利用从内存中获取的模型文件,对三维模型进行渲染展示。
一般的,可以使用三维重建算法生成三维模型对应的模型文件,而三维重建算法生成的模型文件的数据容量较大,若场景中需要渲染的三维模型较多,且进行渲染展示的设备的内存容量较小时,将各个三维模型的模型文件加载到内存中,会造成内存容量较小的设备无法渲染展示各个三维模型,为各个三维模型的渲染展示带来不便。
发明内容
有鉴于此,本公开至少提供一种模型展示方法、设备、装置、电子设备及存储介质。
第一方面,本公开提供了一种模型展示方法,包括:
获取目标场景中包括的每个三维模型对应的八叉树信息;其中,所述八叉树信息包括多个节点;每个所述节点表征的三维区域包括所述三维模型上的局部模型;所述节点包括的局部模型的精细程度、与所述节点的节点深度正相关;精细程度高的局部模型包括的顶点数量、大于精细程度低的局部模型包括的顶点数量;
基于用于拍摄所述目标场景中三维模型的虚拟相机当前的拍摄参数信息,确定所述虚拟相机的可视化区域的区域信息;
基于所述目标场景包括的各个三维模型分别对应的八叉树信息和所述区域信息,确定位于所述可视化区域内的至少一个节点所包括的目标局部模型。
上述方法中,通过获取目标场景中包括的每个三维模型对应的八叉树信息;其中,八叉树信息包括多个节点,每个节点表征的三维区域包括三维模型上的局部模型;即将三维模型划分为多个局部模型,每个局部模型对应八叉树中的一个节点。在基于虚拟相机当前的拍摄参数信息,确定虚拟相机的可视化区域的区域信息之后,基于虚拟相机当前的可视化区域的区域信息和各个三维模型的八叉树信息,能够较高效和较精准的确定位于可视化区域内的目标局部模型,实现了对各个三维模型的精细化渲染展示,提高了三维模型的展示灵活性。
一种可能的实施方式中,所述获取目标场景中包括的每个三维模型对应的八叉树信息,包括:
获取目标场景中包括的每个三维模型的模型信息;
基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的八叉树信息。
这里,通过利用获取到的目标场景中包括的每个三维模型的模型信息,能够较精准的生成三维模型对应的八叉树信息,为后续确定目标局部模型提供数据支持,实现对目标场景中各个三维模型的精细化展示。
一种可能的实施方式中,所述基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的八叉树信息,包括:
基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的初始八叉树信息;其中,所述初始八叉树信息中每个节点表征的三维区域包括所述三维模型对应的原始局部模型;所述原始局部模型中包括多个顶点、以及由顶点之间的连接关系构成的多个网格;
针对所述初始八叉树信息中每个节点,确定所述节点对应的原始局部模型中的待删除顶点,以及基于所述原始局部模型包括的多个顶点中除所述待删除顶点外的其他顶点,生成所述节点对应的局部模型;
基于各个节点对应的局部模型的局部模型信息,生成所述三维模型对应的八叉树信息。
本公开实施例中,针对生成的初始八叉树信息中的每个节点,确定节点对应的原始局部模型中的待删除顶点,并基于原始局部模型包括的多个顶点中除待删除顶点外的其他顶点,生成节点对应的局部模型,其中,顶点删除后的局部模型的模型精度、低于未删除的原始局部模型,降低了节点对应的模型的模型精度,再基于各个节点对应的局部模型的局部模型信息,能够较精准的生成三维模型对应的八叉树信息,以便后续能够利用三维模型对应的八叉树信息,较准确的确定位于视化区域内目标局部模型,实现了三维模型的精细化展示。
一种可能的实施方式中,所述基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的初始八叉树信息,包括:
将所述三维模型作为目标模型,基于所述目标模型的模型信息,按照设置的划分方式,将所述目标模型对应的三维区域划分为八个子三维区域;其中,所述三维模型的所述三维区域对应的节点为根节点,所述根节点的节点信息包括所述三维模型的模型信息;以及每个子三维区域对应一个子节点;每个子节点的节点信息包括:位于所述节点对应的子三维区域内的原始局部模型的模型信息、或者预设信息;
在存在满足预设条件的子节点时,将满足所述预设条件的子节点中包括的原始局部模型作为目标模型,返回至基于所述目标模型的模型信息,按照设置的划分方式,将所述目标模型对应的三维区域划分为八个子三维区域的步骤,直至划分后得到的子节点均不满足预设条件;其中,满足预设条件的子节点包括:节点深度小于设置的深度阈值的子节点,和/或,节点信息包括的模型信息中顶点数量大于设置的数量阈值的子节点;
基于生成的所述根节点的节点信息、和各个子节点的节点信息,生成所述三维模型对应的初始八叉树信息。
这里,通过将三维模型作为目标模型,基于目标模型的模型信息,按照设置的划分方式,将目标模型对应的三维区域划分为八个子三维区域;并设置预设条件,在确定存在满足预设条件的子节点时,将子节点进行划分,直至划分后得到的子节点均不满足预设条件,得到了根节点的节点信息和各个子节点的节点信息。进而基于根节点的节点信息和各个子节点的节点信息,较准确的生成三维模型对应的初始八叉树信息。
一种可能的实施方式中,所述确定所述节点对应的原始局部模型中的待删除顶点,包括:
基于所述节点包括的原始局部模型的模型信息,确定所述模型信息指示的多个网格分别对应的法线之间的法线相似度;
基于所述多个网格分别对应的法线之间的法线相似度,确定所述节点对应的原始局部模型中的待删除顶点。
这里,通过基于节点对应的原始局部模型的模型信息,确定模型信息指示的多个网格分别对应的法线之间的法线相似度;再基于多个网格分别对应的法线之间的法线相似度,较简便的从原始局部模型的多个顶点中确定待删除顶点;然后基于多个顶点中除待删除顶点外的其他顶点,生成节点对应的局部模型,实现对原始局部模型的简化,提升三维模型简化的效率。
一种可能的实施方式中,所述基于所述多个网格分别对应的法线之间的法线相似度,确定所述节点对应的原始局部模型中的待删除顶点,包括:
遍历所述原始局部模型的各个顶点,针对遍历到的顶点,确定包括所述遍历到的顶点的目标网格;
将所述目标网格对应的法线之间的法线相似度、与所述节点对应的法线相似度阈值进行比对;其中,所述节点对应的法线相似度阈值与所述节点对应的节点深度正相关;
响应于所述法线相似度大于或者等于所述法线相似度阈值,将所述遍历到的顶点确定为待删除顶点。
这样,通过数值可控的法线相似度阈值来限制顶点删除的边界,使得对原始局部模型的简化的精细度可控,在保障了简化后的局部模型的精度的同时,提高了模型简化的效率。
一种可能的实施方式中,所述基于所述目标场景包括的各个三维模型分别对应的八叉树信息和所述区域信息,确定位于所述可视化区域内的至少一个节点所包括的目标局部模型,包括:
基于所述区域信息、所述目标场景中包括的每个三维模型的展示位姿和模型尺寸,确定位于所述可视化区域内的至少一个目标三维模型;
基于所述目标三维模型对应的八叉树信息、和所述区域信息,确定所述可视化区域内的至少一个节点所包括的目标局部模型。
本公开实施例中,基于区域信息、目标场景中包括的每个三维模型的展示位姿和模型尺寸,确定位于可视化区域内的至少一个目标三维模型;再根据目标三维模型对应的八叉树信息和区域信息,较精准的确定可视化区域内的至少一个节点所包括的目标局部模型,且目标局部模型的确定过程较简便、效率较高。
一种可能的实施方式中,所述基于所述目标三维模型对应的八叉树信息、和所述区域信息,确定所述可视化区域内的至少一个节点所包括的目标局部模型,包括:
将所述目标三维模型对应的所述八叉树信息中的根节点作为待处理节点,确定所述待处理节点对应的三维区域是否完全位于所述区域信息指示的可视化区域;
在所述待处理节点对应的三维区域部分位于所述可视化区域的情况下,将与所述待处理节点相连的每个子节点作为待处理节点,返回至确定所述待处理节点对应的三维区域是否完全位于所述区域信息指示的可视化区域的步骤,直至待处理节点对应的三维区域完全位于所述可视化区域;
在所述待处理节点对应的三维区域完全位于所述可视化区域的情况下,将所述待处理节点所包括的局部模型,确定为位于所述可视化区域内的节点所包括的目标局部模型。
上述方式中,通过判断待处理节点对应的三维区域是否完全位于可视化区域内,在待处理节点对应的三维区域完全位于可视化区域时,将待处理节点所包括的局部模型,确定为目标局部模型,提高了目标局部模型的准确度和效率。
第二方面,本公开提供了一种模型展示设备,包括:中央处理器CPU和图形处理器GPU;
所述CPU,用于存储目标场景中包括的各个三维模型对应的八叉树信息,并在确定了至少一个节点所包括的目标局部模型之后,将所述节点包括的目标局部模型的模型信息传输至所述GPU;其中,所述至少一个节点所包括的目标局部模型为利用第一方面或任一实施方法所述的模型展示方法确定的;
所述GPU,用于将接收到的所述节点包括的目标局部模型的模型信息存储至内部存储器中;并通过读取所述内部存储器中所述模型信息,在虚拟相机的拍摄画面中,对所述目标局部模型进行渲染展示。
这里,通过利用第一方面或任一实施方式所述的模型展示方法,较精准的确定了目标局部模型之后,可以将目标局部模型的模型信息发送给GPU,无需向GPU发送其他局部模型的模型信息,减少了信息传输量,缓解了将无需渲染的其他局部模型的模型信息发送给GPU时造成带宽资源的消耗,提高了带宽资源的利用率。同时,将目标局部模型的模型信息加载至内部存储器(内存),无需将其他局部模型的模型信息加载至内存中,减少了内存的开销,提高了内存的利用率。
一种可能的实施方式中,所述CPU,还用于在目标局部模型更新之后,将更新后的目标局部模型的模型信息发送给所述GPU;
所述GPU,还用于将所述内部存储器中与所述更新后的目标局部模型不匹配的模型信息删除;以及,将所述更新后的目标局部模型中,未存储的目标局部模型的模型信息存储至所述内部存储器中。
上述实施方式中,在目标局部模型更新后,可以将更新的目标局部模型的模型信息加载至内存,将内存中与更新后的目标局部模型不匹配的模型信息删除,以保障内存中加载的是当前需要渲染展示的目标局部模型的模型信息,避免内存资源的浪费。
以下装置、电子设备等的效果描述参见上述方法的说明,这里不再赘述。
第三方面,本公开提供了一种模型展示装置,包括:
获取模块,用于获取目标场景中包括的每个三维模型对应的八叉树信息;其中,所述八叉树信息包括多个节点;每个所述节点表征的三维区域包括所述三维模型上的局部模型;所述节点包括的局部模型的精细程度、与所述节点的节点深度正相关;精细程度高的局部模型包括的顶点数量、大于精细程度低的局部模型包括的顶点数量;
第一确定模块,用于基于用于拍摄所述目标场景中三维模型的虚拟相机当前的拍摄参数信息,确定所述虚拟相机的可视化区域的区域信息;
第二确定模块,用于基于所述目标场景包括的各个三维模型分别对应的八叉树信息和所述区域信息,确定位于所述可视化区域内的至少一个节点所包括的目标局部模型。
第四方面,本公开提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述第一方面或任一实施方式所述的模型展示方法的步骤。
第五方面,本公开提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面或任一实施方式所述的模型展示方法的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1示出了本公开实施例所提供的一种模型展示方法的流程示意图;
图2示出了本公开实施例所提供的一种模型展示方法中,目标模型对应的三维区域、子三维区域和八叉树的示意图;
图3示出了本公开实施例所提供的一种模型展示方法中,原始局部模型的示意图;
图4示出了本公开实施例所提供的模型展示方法中,一种子三维区域和可视化区域的示意图;
图5示出了本公开实施例所提供的模型展示方法中,另一种子三维区域和可视化区域的示意图;
图6示出了本公开实施例所提供的模型展示方法中,另一种子三维区域和可视化区域的示意图;
图7示出了本公开实施例所提供的一种模型展示设备的架构示意图。
图8示出了本公开实施例所提供的一种模型展示装置的架构示意图。
图9示出了本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
针对每个三维模型,可以使用三维重建算法生成该三维模型对应的模型文件,而三维重建算法生成的三维模型的模型文件的数据容量较大,若场景中需要渲染的三维模型较多,且进行渲染展示的设备的内存容量较小时,将各个三维模型的模型文件加载到内存中,会造成内存容量较小的设备无法渲染展示各个三维模型,为各个三维模型的渲染展示带来不便。
一般的,针对每个三维模型,可以构建多种精度的模型,比如高精度模型、中精度模型、低精度模型等;其中,针对同一模型,模型的精度越高,构建该三维模型所需的三角面片越多。进而,可以根据三维模型与用于拍摄三维模型的虚拟相机之间的距离,选择不同精度的三维模型进行渲染。比如,在三维模型距离较远时,可以选择低精度的该三维模型进行渲染展示,在三维模型距离较近时,可以选择高精度的该三维模型进行渲染展示。但是,通过构建多种精度的三维模型的方式进行渲染展示,使得三维模型的构建较为繁琐,且在三维模型渲染展示时,需要将多种精度的三维模型的模型文件加载到内存中,增大了内存开销。
为了缓解上述问题,本公开实施例提供了一种模型展示方法、设备、装置、电子设备及存储介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本公开实施例进行理解,首先对本公开实施例所公开的一种模型展示方法进行详细介绍。本公开实施例所提供的模型展示方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器;服务器比如可以为本地服务器、云端服务器等。终端设备比如可以为手机、平板、增强现实(Augmented Reality,AR)眼镜、个人数字助理(Personal Digital Assistant,PDA)等设备。在一些可能的实现方式中,该模型展示方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例所提供的模型展示方法的流程示意图,该方法包括:S101-S103,其中:
S101,获取目标场景中包括的每个三维模型对应的八叉树信息;其中,八叉树信息包括多个节点;每个节点表征的三维区域包括三维模型上的局部模型;节点包括的局部模型的精细程度、与节点的节点深度正相关;精细程度高的局部模型包括的顶点数量、大于精细程度低的局部模型包括的顶点数量;
S102,基于用于拍摄目标场景中三维模型的虚拟相机当前的拍摄参数信息,确定虚拟相机的可视化区域的区域信息;
S103,基于目标场景包括的各个三维模型分别对应的八叉树信息和区域信息,确定位于可视化区域内的至少一个节点所包括的目标局部模型。
上述方法中,通过获取目标场景中包括的每个三维模型对应的八叉树信息;其中,八叉树信息包括多个节点,每个节点表征的三维区域包括三维模型上的局部模型;即将三维模型划分为多个局部模型,每个局部模型对应八叉树中的一个节点。在基于虚拟相机当前的拍摄参数信息,确定虚拟相机的可视化区域的区域信息之后,基于虚拟相机当前的可视化区域的区域信息和各个三维模型的八叉树信息,能够较高效和较精准的确定位于可视化区域内的目标局部模型,实现了对各个三维模型的精细化渲染展示,提高了三维模型的展示灵活性。
下述对S101-S103进行具体说明。
针对S101:
三维模型可以包括目标场景中真实物体对应的模型。比如,目标场景可以是学校场景、商场场景、办公场景等,三维模型可以包括学校场景中包括的教学楼、及教学楼内的课桌、椅子等真实物体的模型。或者,三维模型还可以包括构建的虚拟对象,比如,三维模型可以包括构建的虚拟教导员、虚拟动物等。
每个三维模型对应的八叉树信息中包括多个节点,每个节点对应一个三维区域,该三维区域内包括该三维模型上的局部模型。其中,节点包括的局部模型的精细程度、与节点的节点深度正相关,即节点深度越大,节点表征的三维区域包括的局部模型的精细程度越高。其中,针对同一局部模型,精细程度高的局部模型包括的顶点数量、大于精细程度低的局部模型包括的顶点数量;也即精细程度高的局部模型包括的三角面片、大于精细程度低的局部模型包括的三角面片,该三角面片是由多个顶点、和顶点之间的连接关系构成的。
实施时,可以利用三维重建算法生成目标场景中的每个三维模型对应的模型文件,该三维模型可以为高精度模型。在构建得到目标场景中的各个三维模型之后,可以针对每个三维模型,确定该三维模型对应的八叉树信息。进而可以获取到各个三维模型分别对应的八叉树信息。
一种可能的实施方式中,获取目标场景中包括的每个三维模型对应的八叉树信息,可以包括:
步骤A1,获取目标场景中包括的每个三维模型的模型信息;
步骤A2,基于每个三维模型对应的模型信息,生成三维模型对应的八叉树信息。
一般的,三维模型可以包括:多个网格;其中,多个网格中的任一网格,与至少一个其他网格之间具有共用的顶点。多个网格之间相互连接,构成了三维模型。其中,每个网格是一个三角面片。
实施时,可以先获取目标场景中包括的各个三维模型的模型信息,该模型信息包括多个顶点的顶点坐标、以及顶点之间的连接边信息。
再可以针对每个三模模型,基于该三维模型对应的模型信息,生成三维模型对应的八叉树信息。比如可以将三维模型作为目标模型,基于目标模型的模型信息,按照设置的切分方向,将目标模型划分为八个局部模型,得到每个局部模型的模型信息;再将每个局部模型作为目标模型,返回至按照设置的切分方向,将目标模型划分为八个局部模型的步骤,直至划分的次数等于设置的次数阈值,和/或,直至划分后的局部模型的体积小于或等于设置的体积阈值等。根据划分后得到的各个局部模型的模型信息,生成三维模型对应的八叉树信息。或者,对划分后得到的至少一个局部模型进行顶点删除处理,得到删除处理后的局部模型的模型信息;并根据删除处理后的局部模型的模型信息、和/或未删除顶点的局部模型的模型信息,生成三维模型对应的八叉树信息。
这里,通过利用获取到的目标场景中包括的每个三维模型的模型信息,能够较精准的生成三维模型对应的八叉树信息,为后续确定目标局部模型提供数据支持,实现对目标场景中各个三维模型的精细化展示。
一种可能的实施方式中,在步骤A2中,基于每个三维模型对应的模型信息,生成三维模型对应的八叉树信息,可以包括:
步骤A21,基于每个三维模型对应的模型信息,生成三维模型对应的初始八叉树信息。其中,初始八叉树信息中每个节点表征的三维区域包括三维模型对应的原始局部模型;原始局部模型中包括多个顶点、以及由顶点之间的连接关系构成的多个网格。
步骤A22,针对初始八叉树信息中每个节点,确定节点对应的原始局部模型中的待删除顶点,以及基于原始局部模型包括的多个顶点中除待删除顶点外的其他顶点,生成节点对应的局部模型。
步骤A23,基于各个节点对应的局部模型的局部模型信息,生成三维模型对应的八叉树信息。
本公开实施例中,针对生成的初始八叉树信息中的每个节点,确定节点对应的原始局部模型中的待删除顶点,并基于原始局部模型包括的多个顶点中除待删除顶点外的其他顶点,生成节点对应的局部模型,其中,顶点删除后的局部模型的模型精度、低于未删除的原始局部模型,降低了节点对应的模型的模型精度,再基于各个节点对应的局部模型的局部模型信息,能够较精准的生成三维模型对应的八叉树信息,以便后续能够利用三维模型对应的八叉树信息,较准确的确定位于视化区域内目标局部模型,实现了三维模型的精细化展示。
在步骤A21中,在获取到三维模型的模型信息之后,可以基于该三维模型对应的模型信息,生成该三维模型对应的初始八叉树信息;其中,初始八叉树信息包括多个节点,每个节点表征的三维区域包括三维模型对应的原始局部模型,该原始局部模型为顶点未删除的模型。即初始八叉树信息中各个节点对应的原始局部模型的模型精度相同。
比如可以将三维模型按照设置的切分方向进行划分,得到多个原始局部模型、和原始局部模型的模型信息。再根据多个原始局部模型的模型信息,生成三维模型对应的八叉树信息。
一种可能的实施方式中,步骤A21中,基于每个三维模型对应的模型信息,生成三维模型对应的初始八叉树信息,包括:
步骤A211,将三维模型作为目标模型,基于目标模型的模型信息,按照设置的划分方式,将目标模型对应的三维区域划分为八个子三维区域。
其中,三维模型的三维区域对应的节点为根节点,根节点的节点信息包括三维模型的模型信息;以及每个子三维区域对应一个子节点;每个子节点的节点信息包括:位于节点对应的子三维区域内的原始局部模型的模型信息、或者预设信息。
步骤A212,在存在满足预设条件的子节点时,将满足预设条件的子节点中包括的原始局部模型作为目标模型,返回至基于目标模型的模型信息,按照设置的划分方式,将目标模型对应的三维区域划分为八个子三维区域的步骤,直至划分后得到的子节点均不满足预设条件。
其中,满足预设条件的子节点包括:节点深度小于设置的深度阈值的子节点,和/或,节点信息包括的模型信息中顶点数量大于设置的数量阈值的子节点。
步骤A213,基于生成的根节点的节点信息、和各个子节点的节点信息,生成三维模型对应的初始八叉树信息。
将三维模型作为目标模型,基于目标模型的模型信息,按照设置的划分方式,将目标模型对应的三维区域划分为八个子三维区域。目标模型对应的三维区域可以为包围该目标模型的三维检测框所处的三维区域。或者,目标模型对应的三维区域也可以为该目标模型的轮廓所处的三维区域。
划分方式可以包括多个切割方向,比如可以包括水平方向、竖直方向和垂直方向,且水平方向、竖直方向和垂直方向中任意两个方向之间相互垂直。其中,设置的切割方向可以参见图2所示。
参见图2所示,将三维模型作为目标模型,沿着划分方式指示的多个切割方向,将目标模型对应的三维区域(即目标模型的三维检测框所处的三维区域)划分为8个子三维区域。其中,将三维模型的三维区域对应的节点为根节点,根节点的节点信息包括三维模型的模型信息,即图2上右侧的八叉树中节点1为根节点。以及每个子三维区域对应一个子节点,即子节点2、子节点3、……、子节点9;每个子节点的节点信息包括:位于节点对应的子三维区域内的原始局部模型的模型信息、或者预设信息。在节点对应的子三维区域内不存在原始局部模型时,可以将该节点的节点信息设置为预设信息,预设信息比如可以为0等。
在得到多个子节点之后,针对每个子节点,判断该子节点是否满足预设条件,若满足预设条件,则将该子节点中包括的原始局部模型作为目标模型,返回至基于目标模型的模型信息,按照设置的划分方式,将目标模型对应的三维区域划分为八个子三维区域的步骤。比如,若确定图2中的子节点4满足预设条件,则将子节点4中包括的原始局部模型作为目标模型,返回至步骤A211。若确定图2中的子节点2不满足预设条件,则不进行后续的处理,即该子节点2无需进行切分处理。
其中,预设条件可以包括节点深度小于设置的深度阈值,和/或,节点信息包括的模型信息中顶点数量大于设置的数量阈值。比如,在子节点的节点深度小于设置的深度阈值,和/或,子节点的节点信息包括的模型信息中顶点数量大于设置的数量阈值。子节点的节点深度、与子节点在八叉树中所处的层数相关,比如,如图2中,根节点1的节点深度可以为0、子节点2至子节点9的节点深度可以为1、子节点10至子节点25的节点深度可以为2。
深度阈值、数量阈值可以根据实际情况进行设置,比如,深度阈值可以为4、5、6等,数量阈值可以为5、8等。
实施时,若该子节点的节点信息包括预设信息时,则确定该子节点不满足预设条件,不会对该子节点对应的子三维区域进行划分。若该子节点的节点信息包括位于该子节点对应的子三维区域内的原始局部模型的模型信息时,判断该子节点是否满足预设条件,并在该子节点满足预设条件的情况下,将该子节点中包括的原始局部模型作为目标模型,对该目标模型对应的三维区域进行划分,直至划分后得到的子节点均不满足预设条件,得到了根节点、根节点的节点信息、和多个子节点、每个子节点的节点信息。
进而基于根节点的节点信息和各个子节点的节点信息,生成三维模型对应的初始八叉树信息。参见图2右侧展示的八叉树,其中,该八叉树中每个圆形代表一个节点。
这里,通过将三维模型作为目标模型,基于目标模型的模型信息,按照设置的划分方式,将目标模型对应的三维区域划分为八个子三维区域;并设置预设条件,在确定存在满足预设条件的子节点时,将子节点进行划分,直至划分后得到的子节点均不满足预设条件,得到了根节点的节点信息和各个子节点的节点信息。进而基于根节点的节点信息和各个子节点的节点信息,较准确的生成三维模型对应的初始八叉树信息。
在步骤A22中,针对初始八叉树信息中的每个节点,可以确定该节点对应的原始局部模型中的待删除顶点;比如,可以根据原始局部模型上具有同一顶点的任意两个网格之间的法线相似度,从原始局部模型包括的多个顶点中确定待删除顶点。
再基于原始局部模型包括的多个顶点中除待删除顶点外的其他顶点,生成节点对应的局部模型。比如,可以利用三角剖分算法,对原始局部模型包括的多个顶点中除待删除顶点外的其他顶点进行三角剖分处理,生成新的网格;根据新的网格和其他顶点,得到该节点对应的局部模型。
实施时,三角剖分算法例如包括下述步骤:步骤1,求出简单多边形的凹凸顶点。步骤2,对三角形按照内角的最小值进行排序并除去其中最大的构造三角形网格;修改多边形的顶点链表重新计算多边形的凹凸性;重复此过程,直到边界顶点链表为空时结束。步骤3,在局部范围内,按照最大-最小准则,得到Delaunay三角网,即得到除待删除顶点外的其他顶点构成的至少一个网格。
一种可能的实施方式中,在步骤A22中,确定节点对应的原始局部模型中的待删除顶点,包括:
步骤A221,基于节点包括的原始局部模型的模型信息,确定模型信息指示的多个网格分别对应的法线之间的法线相似度。
步骤A222,基于多个网格分别对应的法线之间的法线相似度,确定节点对应的原始局部模型中的待删除顶点。
实施时,针对初始八叉树信息中的每个节点,基于该节点包括的原始局部模型的模型信息,确定该原始局部模型包括的多个网格,并确定每个网格对应的面的法线;比如可以根据构成该网格的三个顶点的坐标信息,确定该网格对应的面的法向量,将该法向量作为该网格对应的法线。再确定原始局部模型包括的多个网格中,具有同一顶点的两个网格的法线之间的法线相似度。比如,可以根据两个网格的法向量,确定法线之间的距离;并将该距离,确定为两个网格的法线之间的法线相似度。
再基于多个网络分别对应的法线之间的法线相似度,确定该节点对应的原始局部模型中的待删除顶点。比如,可以将具有一个共同顶点的两个网格对应的法线之间的法线相似度、与该节点对应的法线相似度阈值进行比对,若两个网格对应的法线之间的法线相似度、大于该节点对应的法线相似度阈值,则将两个网格之间共用的顶点作为待删除顶点。其中,节点对应的法线相似度阈值可以根据实际情况进行设置。
这里,通过基于节点对应的原始局部模型的模型信息,确定模型信息指示的多个网格分别对应的法线之间的法线相似度;再基于多个网格分别对应的法线之间的法线相似度,较简便的从原始局部模型的多个顶点中确定待删除顶点;然后基于多个顶点中除待删除顶点外的其他顶点,生成节点对应的局部模型,实现对原始局部模型的简化,提升三维模型简化的效率。
一种可能的实施方式中,在步骤A222中,基于多个网格分别对应的法线之间的法线相似度,确定节点对应的原始局部模型中的待删除顶点,包括:
步骤一、遍历原始局部模型的各个顶点,针对遍历到的顶点,确定包括遍历到的顶点的目标网格。
步骤二、将目标网格对应的法线之间的法线相似度、与节点对应的法线相似度阈值进行比对;其中,节点对应的法线相似度阈值与节点对应的节点深度正相关。
步骤三、响应于法线相似度大于或者等于法线相似度阈值,将遍历到的顶点确定为待删除顶点。
实施时,需要遍历的顶点,可以是原始局部模型中的所有顶点,也可以是部分顶点。例如只对原始局部模型表征的某个侧面进行简化,则将该侧面中的顶点作为需要遍历的顶点。在遍历原始局部模型的各个顶点时,可以根据遍历到的顶点所在的位置确定该顶点对应的目标网格,即确定包括该顶点的目标网络。
如图3所示的原始局部模型的示例中,该原始局部模型包括14个顶点,即a1~a14为遍历到的顶点,以及还包括a1~a14之间的连接关系构成的网格。
假设当前遍历的顶点为a4,则能够确定所有与a4具有连接关系的顶点包括:a1、a2、a3、a5、a6,对应的目标网格包括:(a4,a1,a2)、(a4,a2,a6)、(a4,a6,a5)、(a4,a5,a3)、(a4,a3,a1)。
假设当前遍历到的顶点为a9,则能够确定与a9具有关联关系的顶点包括:a5、a10、a13、a8,对应的目标网格包括:M1(a9,a5,a10)、M2(a9,a10,a13)、M3(a9,a13,a8)、M4(a9,a8,a5)。
在确定了目标网格之后,可以通过计算法向量之间距离的方式,确定目标网格对应的法线之间的法线相似度,该距离例如包括:欧式距离、曼哈顿距离、夹角余弦、汉明距离、切比雪夫距离等中至少一种,具体可以根据实际情况进行确定。
在确定了目标网格之间法线的法线相似度后,可以将目标网格对应的法线之间的法线相似度、与节点对应的法线相似度阈值进行比对;响应于法线相似度大于或者等于法线相似度阈值,将遍历到的顶点确定为待删除顶点。其中,节点对应的法线相似度阈值与节点对应的节点深度正相关。即节点对应的节点深度越大,则节点对应的法线相似度阈值越大。
一般的,针对同一个三维模型,法线相似度阈值越大,确定的该三维模型上的待删除顶点的数量越少,对该三维模型的简化越小,简化后的三维模型的精度较大;相反,法线相似度阈值越小,确定的该三维模型上的待删除顶点的数量越多,对该三维模型的简化越大,简化后的三维模型的精度较小。通过为节点深度不同的节点,设置不同的法线相似度阈值,使得节点深度不同的节点对应的原始局部模型的精度不同,实现对目标场景中各个三维模型的精细化展示。
比如,在三维模型距离虚拟相机较近时,则确定展示该三维模型上节点深度较大的节点所对应的目标局部模型,该目标局部模型的精度较高,即该情况下展示的是精度较高的目标局部模型;在三维模型距离虚拟相机较远时,则确定展示该三维模型上节点深度较小的节点所对应的目标局部模型,该目标局部模型的精度较低,即该情况下展示的是精度较低的目标局部模型,实现了三维模型的精细化展示。
比如,在图2中,节点1的深度为0,则节点1对应的法线相似度阈值比如可以为0.6;节点2至节点9的深度均为1,那么节点2至节点9对应的法线相似度阈值相同,比如可以为0.8;节点10至节点25的深度均为2,则节点10至节点25对应的法线相似度阈值相同,比如可以为0.9。
示例性的,结合图3继续说明,针对当前遍历到的顶点为a9,该顶点a9对应的目标网络包括M1、M2、M3、M4,则可以得到M1和M2,M1和M3,M1和M4,M2和M3,M2和M4,M3和M4,共6个目标网格对分别对应的法线相似度,若M1和M2,M1和M3,M1和M4,M2和M3,M2和M4,M3和M4分别对应的法线相似度均大于或等于节点对应的法线相似度阈值,则表征M1、M2、M3和M4能够被合并到同一平面,同时也不会对目标局部模型所表征的结构造成接受范围外的影响,因此可以将遍历到的顶点a9作为待删除顶点。
若上述6个目标网格对中,任一目标网格对所对应的法线相似度小于节点对应的法线相似度阈值,则表征若将a9删除,将M1、M2、M3和M4合并到同一平面,会对三维模型所表征的结构造成较大的影响,因此不能将顶点a9删除,也即不能将其作为待删除顶点。
遍历原始局部模型中的所有顶点,将能够从原始局部模型中删除的顶点作为待删除顶点。
这样,通过数值可控的法线相似度阈值来限制顶点删除的边界,使得对原始局部模型的简化的精细度可控,在保障了简化后的局部模型的精度的同时,提高了模型简化的效率。
在步骤A23中,在得到各个节点对应的局部模型的局部模型信息之后,可以根据各个节点对应的局部模型的局部模型信息,生成三维模型对应的八叉树信息。
针对S102:
这里,虚拟相机可以为渲染引擎中包括的用于对三维模型进行拍摄的虚拟相机。虚拟相机的当前的拍摄参数信息可以包括虚拟相机的当前位姿、虚拟相机的可视角度范围、虚拟相机的可视距离等。其中,可视角度范围和可视距离可以根据实际情况进行设置。比如,可视角度范围可以与人眼视度相匹配,可视距离可以为50米等。
实施时,可以根据虚拟相机的可视角度范围、虚拟相机的可视距离,确定在虚拟相机的当前位姿下,虚拟相机对应的当前的可视化区域、和可视化区域的区域信息。
针对S103:
实施时,可以先基于虚拟相机的可视化区域的区域信息,确定目标场景中位于可视化区域内的三维模型;再基于位于可视化区域内的三维模型对应的八叉树信息,确定位于可视化区域内的至少一个节点所包括的目标局部模型。比如可以将八叉树信息包括的每个节点表征的三维区域、与可视化区域进行比较,确定位于可视化区域内的至少一个节点所包括的目标局部模型。
一种可能的实施方式中,基于目标场景包括的各个三维模型分别对应的八叉树信息和区域信息,确定位于可视化区域内的至少一个节点所包括的目标局部模型,包括:
步骤B1,基于区域信息、目标场景中包括的每个三维模型的展示位姿和模型尺寸,确定位于可视化区域内的至少一个目标三维模型。
步骤B2,基于目标三维模型对应的八叉树信息、和区域信息,确定可视化区域内的至少一个节点所包括的目标局部模型。
实施时,基于区域信息、目标场景中包括的每个三维模型的展示位姿和模型尺寸,确定位于可视化区域内的至少一个目标三维模型。比如,可以根据每个三维模型的展示位姿和模型尺寸,确定该三维模型在目标场景中所处的空间区域;再判断该三维模型对应的空间区域是否与可视化区域重叠,若重叠,则该三维模型属于目标三维模型;若不重叠,则该三维模型不属于目标三维模型。
再基于目标三维模型对应的八叉树信息和区域信息,确定位于可视化区域内的至少一个节点所包括的目标局部模型。比如,可以将八叉树信息包括的每个节点表征的三维区域、与当前的可视化区域进行比较,根据比较结果,确定位于当前的可视化区域内的至少一个节点所包括的目标局部模型。比如,若比较结果指示当前的可视化区域完全包围节点的三维区域,则该节点所包括的局部模型属于目标局部模型。
本公开实施例中,基于区域信息、目标场景中包括的每个三维模型的展示位姿和模型尺寸,确定位于可视化区域内的至少一个目标三维模型;再根据目标三维模型对应的八叉树信息和区域信息,较精准的确定可视化区域内的至少一个节点所包括的目标局部模型,且目标局部模型的确定过程较简便、效率较高。
一种可能的实施方式中,在步骤B2中,基于目标三维模型对应的八叉树信息、和区域信息,确定可视化区域内的至少一个节点所包括的目标局部模型,包括:
步骤B21,将目标三维模型对应的八叉树信息中的根节点作为待处理节点,确定待处理节点对应的三维区域是否完全位于区域信息指示的可视化区域;
步骤B22,在待处理节点对应的三维区域部分位于可视化区域的情况下,将与待处理节点相连的每个子节点作为待处理节点,返回至确定待处理节点对应的三维区域是否完全位于区域信息指示的可视化区域的步骤,直至待处理节点对应的三维区域完全位于所述可视化区域;
步骤B23,在待处理节点对应的三维区域完全位于可视化区域的情况下,将待处理节点所包括的局部模型,确定为位于可视化区域内的节点所包括的目标局部模型。
将目标三维模型对应的八叉树信息中的根节点作为待处理节点,确定待处理节点对应的三维区域是否完全位于区域信息指示的可视化区域。若待处理节点对应的三维区域部分位于可视化区域,则执行步骤B22;若待处理节点对应的三维区域完全位于可视化区域,则执行步骤B23;若待处理节点对应的三维区域完全不位于可视化区域,则确定该待处理节点所包括的局部模型不属于目标局部模型。
实施时,从目标三维模型对应的八叉树信息中的根节点开始遍历,若根节点对应的三维区域部分位于可视化区域,则遍历与根节点相连的子节点,即将与根节点相连的每个子节点作为待处理节点,确定待处理节点对应的三维区域是否完全位于可视化区域。
在待处理节点对应的三维区域部分位于可视化区域时,将与待处理节点相连的每个子节点作为待处理节点,返回至确定待处理节点对应的三维区域是否完全位于区域信息指示的可视化区域的步骤,直至待处理节点对应的三维区域完全位于可视化区域。参见图4所示,待处理节点对应的三维区域部分位于可视化区域的示意图。
在待处理节点对应的三维区域完全位于可视化区域的情况下,将待处理节点所包括的局部模型,确定为目标局部模型。参见图5所示,待处理节点对应的三维区域完全位于可视化区域的示意图。
在节点对应的三维区域完全不位于可视化区域的情况下,确定节点包括的局部模型不属于目标局部模型,不进行渲染展示。参见图6所示,节点对应的三维区域完全不位于可视化区域的示意图。
上述方式中,通过判断待处理节点对应的三维区域是否完全位于可视化区域内,在待处理节点对应的三维区域完全位于可视化区域时,将待处理节点所包括的局部模型,确定为目标局部模型,提高了目标局部模型的准确度和效率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于相同的构思,本公开实施例还提供了一种模型展示设备,参见图7所示,为本公开实施例提供的模型展示设备的架构示意图,包括中央处理器(central processingunit,CPU)701、图形处理器(graphics processing unit,GPU)702,具体的:
所述CPU701,用于存储目标场景中包括的各个三维模型对应的八叉树信息,并在确定了至少一个节点所包括的目标局部模型之后,将所述节点包括的目标局部模型的模型信息传输至所述GPU;其中,所述至少一个节点所包括的目标局部模型为利用上述实施方式所述的模型展示方法确定的。
所述GPU702,用于将接收到的所述节点包括的目标局部模型的模型信息存储至内部存储器中;并通过读取所述内部存储器中所述模型信息,在虚拟相机的拍摄画面中,对所述目标局部模型进行渲染展示。
实施时,可以在构建了各个三维模型之后,根据目标场景中各个三维模型的模型信息,确定每个三维模型对应的八叉树信息;并将各个三维模型对应的八叉树信息存储至CPU中。以及,可以按照上述实施方式,确定待渲染展示的目标局部模型。将目标局部模型的模型信息传输至相连的GPU。其中,目标局部模型的确定过程可参考上述对S101至S103的具体描述,此处不在赘述。
GPU将接收到的目标局部模型的模型信息存储至内部存储器(内存),并通过读取内存中的模型信息,在虚拟相机的拍摄画面中,对目标局部模型进行渲染展示。
这里,通过利用第一方面或任一实施方式所述的模型展示方法,较精准的确定了目标局部模型之后,可以将目标局部模型的模型信息发送给GPU,无需向GPU发送其他局部模型的模型信息,减少了信息传输量,缓解了将无需渲染的其他局部模型的模型信息发送给GPU时造成带宽资源的消耗,提高了带宽资源的利用率。同时,将目标局部模型的模型信息加载至内部存储器(内存),无需将其他局部模型的模型信息加载至内存中,减少了内存的开销,提高了内存的利用率。
一种可选实施方式中,所述CPU,还用于在目标局部模型更新之后,将更新后的目标局部模型的模型信息发送给所述GPU;
所述GPU,还用于将所述内部存储器中与所述更新后的目标局部模型不匹配的模型信息删除;以及,将所述更新后的目标局部模型中,未存储的目标局部模型的模型信息存储至所述内部存储器中。
在虚拟相机的当前位姿发生改变时,虚拟相机的当前的拍摄参数信息发生改变,虚拟相机对应的可视化区域发生了改变,故确定的目标局部模型会发生改变。可以利用上述S101-S03的过程重新确定目标局部模型。
在基于八叉树信息和虚拟相机对应的更新后的当前的拍摄参数信息,从目标场景区域内的各个三维模型中确定更新后的目标局部模型之后,CPU可以将更新后的目标局部模型的模型信息发送给GPU。GPU可以将内存中与更新后的目标局部模型不匹配的模型信息删除;以及,将更新后的目标局部模型中,未存储的目标局部模型的模型信息存储至内存,使得内存中存储的为需要渲染展示的目标局部模型的模型信息,缓解内存资源的消耗,提高内存资源的利用率。
上述实施方式中,在目标局部模型更新后,可以将更新的目标局部模型的模型信息加载至内存,将内存中与更新后的目标局部模型不匹配的模型信息删除,以保障内存中加载的是当前需要渲染展示的目标局部模型的模型信息,避免内存资源的浪费。
基于相同的构思,本公开实施例还提供了一种模型展示装置,参见图8所示,为本公开实施例提供的模型展示装置的架构示意图,包括获取模块801、第一确定模块802、第二确定模块803,具体的:
获取模块801,用于获取目标场景中包括的每个三维模型对应的八叉树信息;其中,所述八叉树信息包括多个节点;每个所述节点表征的三维区域包括所述三维模型上的局部模型;所述节点包括的局部模型的精细程度、与所述节点的节点深度正相关;精细程度高的局部模型包括的顶点数量、大于精细程度低的局部模型包括的顶点数量;
第一确定模块802,用于基于用于拍摄所述目标场景中三维模型的虚拟相机当前的拍摄参数信息,确定所述虚拟相机的可视化区域的区域信息;
第二确定模块803,用于基于所述目标场景包括的各个三维模型分别对应的八叉树信息和所述区域信息,确定位于所述可视化区域内的至少一个节点所包括的目标局部模型。
一种可能的实施方式中,所述装置还包括:第一生成模块804,所述第一生成模块804,用于根据下述步骤生成目标场景中包括的每个三维模型对应的八叉树信息:
获取目标场景中包括的每个三维模型的模型信息;
基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的八叉树信息。
一种可能的实施方式中,所述第一生成模块804,在基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的八叉树信息时,用于:
基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的初始八叉树信息;其中,所述初始八叉树信息中每个节点表征的三维区域包括所述三维模型对应的原始局部模型;所述原始局部模型中包括多个顶点、以及由顶点之间的连接关系构成的多个网格;
针对所述初始八叉树信息中每个节点,确定所述节点对应的原始局部模型中的待删除顶点,以及基于所述原始局部模型包括的多个顶点中除所述待删除顶点外的其他顶点,生成所述节点对应的局部模型;
基于各个节点对应的局部模型的局部模型信息,生成所述三维模型对应的八叉树信息。
一种可能的实施方式中,所述装置还包括:第二生成模块805,所述第二生成装置,在基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的初始八叉树信息时,用于:
将所述三维模型作为目标模型,基于所述目标模型的模型信息,按照设置的划分方式,将所述目标模型对应的三维区域划分为八个子三维区域;其中,所述三维模型的所述三维区域对应的节点为根节点,所述根节点的节点信息包括所述三维模型的模型信息;以及每个子三维区域对应一个子节点;每个子节点的节点信息包括:位于所述节点对应的子三维区域内的原始局部模型的模型信息、或者预设信息;
在存在满足预设条件的子节点时,将满足所述预设条件的子节点中包括的原始局部模型作为目标模型,返回至基于所述目标模型的模型信息,按照设置的划分方式,将所述目标模型对应的三维区域划分为八个子三维区域的步骤,直至划分后得到的子节点均不满足预设条件;其中,满足预设条件的子节点包括:节点深度小于设置的深度阈值的子节点,和/或,节点信息包括的模型信息中顶点数量大于设置的数量阈值的子节点;
基于生成的所述根节点的节点信息、和各个子节点的节点信息,生成所述三维模型对应的初始八叉树信息。
一种可能的实施方式中,所述装置还包括:第三确定模块806,所述第三确定模块806,用于确定所述节点对应的原始局部模型中的待删除顶点:
基于所述节点包括的原始局部模型的模型信息,确定所述模型信息指示的多个网格分别对应的法线之间的法线相似度;
基于所述多个网格分别对应的法线之间的法线相似度,确定所述节点对应的原始局部模型中的待删除顶点。
一种可能的实施方式中,所述第三确定模块806,在基于所述多个网格分别对应的法线之间的法线相似度,确定所述节点对应的原始局部模型中的待删除顶点时,用于:
遍历所述原始局部模型的各个顶点,针对遍历到的顶点,确定包括所述遍历到的顶点的目标网格;
将所述目标网格对应的法线之间的法线相似度、与所述节点对应的法线相似度阈值进行比对;其中,所述节点对应的法线相似度阈值与所述节点对应的节点深度正相关;
响应于所述法线相似度大于或者等于所述法线相似度阈值,将所述遍历到的顶点确定为待删除顶点。
一种可能的实施方式中,所述第一确定模块802,在基于所述目标场景包括的各个三维模型分别对应的八叉树信息和所述区域信息,确定位于所述可视化区域内的至少一个节点所包括的目标局部模型时,用于:
基于所述区域信息、所述目标场景中包括的每个三维模型的展示位姿和模型尺寸,确定位于所述可视化区域内的至少一个目标三维模型;
基于所述目标三维模型对应的八叉树信息、和所述区域信息,确定所述可视化区域内的至少一个节点所包括的目标局部模型。
一种可能的实施方式中,所述第二确定模块803,在基于所述目标三维模型对应的八叉树信息、和所述区域信息,确定所述可视化区域内的至少一个节点所包括的目标局部模型时,用于:
将所述目标三维模型对应的所述八叉树信息中的根节点作为待处理节点,确定所述待处理节点对应的三维区域是否完全位于所述区域信息指示的可视化区域;
在所述待处理节点对应的三维区域部分位于所述可视化区域的情况下,将与所述待处理节点相连的每个子节点作为待处理节点,返回至确定所述待处理节点对应的三维区域是否完全位于所述区域信息指示的可视化区域的步骤,直至待处理节点对应的三维区域完全位于所述可视化区域;
在所述待处理节点对应的三维区域完全位于所述可视化区域的情况下,将所述待处理节点所包括的局部模型,确定为位于所述可视化区域内的节点所包括的目标局部模型。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模板可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图9所示,为本公开实施例提供的电子设备的结构示意图,包括处理器901、存储器902、和总线903。其中,存储器902用于存储执行指令,包括内存9021和外部存储器9022;这里的内存9021也称内存储器,用于暂时存放处理器901中的运算数据,以及与硬盘等外部存储器9022交换的数据,处理器901通过内存9021与外部存储器9022进行数据交换,当电子设备900运行时,处理器901与存储器902之间通过总线903通信,使得处理器901在执行以下指令:
获取目标场景中包括的每个三维模型对应的八叉树信息;其中,所述八叉树信息包括多个节点;每个所述节点表征的三维区域包括所述三维模型上的局部模型;所述节点包括的局部模型的精细程度、与所述节点的节点深度正相关;精细程度高的局部模型包括的顶点数量、大于精细程度低的局部模型包括的顶点数量;
基于用于拍摄所述目标场景中三维模型的虚拟相机当前的拍摄参数信息,确定所述虚拟相机的可视化区域的区域信息;
基于所述目标场景包括的各个三维模型分别对应的八叉树信息和所述区域信息,确定位于所述可视化区域内的至少一个节点所包括的目标局部模型。
其中,处理器901的具体处理流程可以参照上述方法实施例的记载,这里不再赘述。
此外,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的模型展示方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的模型展示方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
本公开涉及增强现实领域,通过获取现实环境中的目标对象的图像信息,进而借助各类视觉相关算法实现对目标对象的相关特征、状态及属性进行检测或识别处理,从而得到与具体应用匹配的虚拟与现实相结合的AR效果。示例性的,目标对象可涉及与人体相关的脸部、肢体、手势、动作等,或者与物体相关的标识物、标志物,或者与场馆或场所相关的沙盘、展示区域或展示物品等。视觉相关算法可涉及视觉定位、SLAM、三维重建、图像注册、背景分割、对象的关键点提取及跟踪、对象的位姿或深度检测等。具体应用不仅可以涉及跟真实场景或物品相关的导览、导航、讲解、重建、虚拟效果叠加展示等交互场景,还可以涉及与人相关的特效处理,比如妆容美化、肢体美化、特效展示、虚拟模型展示等交互场景。可通过卷积神经网络,实现对目标对象的相关特征、状态及属性进行检测或识别处理。上述卷积神经网络是基于深度学习框架进行模型训练而得到的网络模型。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种模型展示方法,其特征在于,包括:
获取目标场景中包括的每个三维模型对应的八叉树信息;其中,所述八叉树信息包括多个节点;每个所述节点表征的三维区域包括所述三维模型上的局部模型;所述节点包括的局部模型的精细程度、与所述节点的节点深度正相关;精细程度高的局部模型包括的顶点数量、大于精细程度低的局部模型包括的顶点数量;
基于用于拍摄所述目标场景中三维模型的虚拟相机当前的拍摄参数信息,确定所述虚拟相机的可视化区域的区域信息;
基于所述目标场景包括的各个三维模型分别对应的八叉树信息和所述区域信息,确定位于所述可视化区域内的至少一个节点所包括的目标局部模型。
2.根据权利要求1所述的方法,其特征在于,所述获取目标场景中包括的每个三维模型对应的八叉树信息,包括:
获取目标场景中包括的每个三维模型的模型信息;
基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的八叉树信息。
3.根据权利要求2所述的方法,其特征在于,所述基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的八叉树信息,包括:
基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的初始八叉树信息;其中,所述初始八叉树信息中每个节点表征的三维区域包括所述三维模型对应的原始局部模型;所述原始局部模型中包括多个顶点、以及由顶点之间的连接关系构成的多个网格;
针对所述初始八叉树信息中每个节点,确定所述节点对应的原始局部模型中的待删除顶点,以及基于所述原始局部模型包括的多个顶点中除所述待删除顶点外的其他顶点,生成所述节点对应的局部模型;
基于各个节点对应的局部模型的局部模型信息,生成所述三维模型对应的八叉树信息。
4.根据权利要求3所述的方法,其特征在于,所述基于每个所述三维模型对应的所述模型信息,生成所述三维模型对应的初始八叉树信息,包括:
将所述三维模型作为目标模型,基于所述目标模型的模型信息,按照设置的划分方式,将所述目标模型对应的三维区域划分为八个子三维区域;其中,所述三维模型的所述三维区域对应的节点为根节点,所述根节点的节点信息包括所述三维模型的模型信息;以及每个子三维区域对应一个子节点;每个子节点的节点信息包括:位于所述节点对应的子三维区域内的原始局部模型的模型信息、或者预设信息;
在存在满足预设条件的子节点时,将满足所述预设条件的子节点中包括的原始局部模型作为目标模型,返回至基于所述目标模型的模型信息,按照设置的划分方式,将所述目标模型对应的三维区域划分为八个子三维区域的步骤,直至划分后得到的子节点均不满足预设条件;其中,满足预设条件的子节点包括:节点深度小于设置的深度阈值的子节点,和/或,节点信息包括的模型信息中顶点数量大于设置的数量阈值的子节点;
基于生成的所述根节点的节点信息、和各个子节点的节点信息,生成所述三维模型对应的初始八叉树信息。
5.根据权利要求3或4所述的方法,其特征在于,所述确定所述节点对应的原始局部模型中的待删除顶点,包括:
基于所述节点包括的原始局部模型的模型信息,确定所述模型信息指示的多个网格分别对应的法线之间的法线相似度;
基于所述多个网格分别对应的法线之间的法线相似度,确定所述节点对应的原始局部模型中的待删除顶点。
6.根据权利要求5所述的方法,其特征在于,所述基于所述多个网格分别对应的法线之间的法线相似度,确定所述节点对应的原始局部模型中的待删除顶点,包括:
遍历所述原始局部模型的各个顶点,针对遍历到的顶点,确定包括所述遍历到的顶点的目标网格;
将所述目标网格对应的法线之间的法线相似度、与所述节点对应的法线相似度阈值进行比对;其中,所述节点对应的法线相似度阈值与所述节点对应的节点深度正相关;
响应于所述法线相似度大于或者等于所述法线相似度阈值,将所述遍历到的顶点确定为待删除顶点。
7.根据权利要求1~6任一所述的方法,其特征在于,所述基于所述目标场景包括的各个三维模型分别对应的八叉树信息和所述区域信息,确定位于所述可视化区域内的至少一个节点所包括的目标局部模型,包括:
基于所述区域信息、所述目标场景中包括的每个三维模型的展示位姿和模型尺寸,确定位于所述可视化区域内的至少一个目标三维模型;
基于所述目标三维模型对应的八叉树信息、和所述区域信息,确定所述可视化区域内的至少一个节点所包括的目标局部模型。
8.根据权利要求7所述的方法,其特征在于,所述基于所述目标三维模型对应的八叉树信息、和所述区域信息,确定所述可视化区域内的至少一个节点所包括的目标局部模型,包括:
将所述目标三维模型对应的所述八叉树信息中的根节点作为待处理节点,确定所述待处理节点对应的三维区域是否完全位于所述区域信息指示的可视化区域;
在所述待处理节点对应的三维区域部分位于所述可视化区域的情况下,将与所述待处理节点相连的每个子节点作为待处理节点,返回至确定所述待处理节点对应的三维区域是否完全位于所述区域信息指示的可视化区域的步骤,直至待处理节点对应的三维区域完全位于所述可视化区域;
在所述待处理节点对应的三维区域完全位于所述可视化区域的情况下,将所述待处理节点所包括的局部模型,确定为位于所述可视化区域内的节点所包括的目标局部模型。
9.一种模型展示设备,其特征在于,包括:中央处理器CPU和图形处理器GPU;
所述CPU,用于存储目标场景中包括的各个三维模型对应的八叉树信息,并在确定了至少一个节点所包括的目标局部模型之后,将所述节点包括的目标局部模型的模型信息传输至所述GPU;其中,所述至少一个节点所包括的目标局部模型为利用权利要求1至8任一所述的模型展示方法确定的;
所述GPU,用于将接收到的所述节点包括的目标局部模型的模型信息存储至内部存储器中;并通过读取所述内部存储器中所述模型信息,在虚拟相机的拍摄画面中,对所述目标局部模型进行渲染展示。
10.根据权利要求9所述的设备,其特征在于,所述CPU,还用于在目标局部模型更新之后,将更新后的目标局部模型的模型信息发送给所述GPU;
所述GPU,还用于将所述内部存储器中与所述更新后的目标局部模型不匹配的模型信息删除;以及,将所述更新后的目标局部模型中,未存储的目标局部模型的模型信息存储至所述内部存储器中。
11.一种模型展示装置,其特征在于,包括:
获取模块,用于获取目标场景中包括的每个三维模型对应的八叉树信息;其中,所述八叉树信息包括多个节点;每个所述节点表征的三维区域包括所述三维模型上的局部模型;所述节点包括的局部模型的精细程度、与所述节点的节点深度正相关;精细程度高的局部模型包括的顶点数量、大于精细程度低的局部模型包括的顶点数量;
第一确定模块,用于基于用于拍摄所述目标场景中三维模型的虚拟相机当前的拍摄参数信息,确定所述虚拟相机的可视化区域的区域信息;
第二确定模块,用于基于所述目标场景包括的各个三维模型分别对应的八叉树信息和所述区域信息,确定位于所述可视化区域内的至少一个节点所包括的目标局部模型。
12.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至8任一所述的模型展示方法的步骤。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至8任一所述的模型展示方法的步骤。
CN202210153040.4A 2022-02-18 2022-02-18 模型展示方法、设备、装置、电子设备及存储介质 Pending CN114529648A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210153040.4A CN114529648A (zh) 2022-02-18 2022-02-18 模型展示方法、设备、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210153040.4A CN114529648A (zh) 2022-02-18 2022-02-18 模型展示方法、设备、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114529648A true CN114529648A (zh) 2022-05-24

Family

ID=81623706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210153040.4A Pending CN114529648A (zh) 2022-02-18 2022-02-18 模型展示方法、设备、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114529648A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116049924A (zh) * 2023-03-07 2023-05-02 武汉益模科技股份有限公司 一种基于Cuda的三维零件差异分析算法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116049924A (zh) * 2023-03-07 2023-05-02 武汉益模科技股份有限公司 一种基于Cuda的三维零件差异分析算法

Similar Documents

Publication Publication Date Title
CN110889890B (zh) 图像处理方法及装置、处理器、电子设备及存储介质
CN107223269A (zh) 三维场景定位方法和装置
US11645815B2 (en) Method, device, and storage medium for segmenting three-dimensional object
CN107464286B (zh) 三维城市模型中的孔洞修复方法及装置、设备及可读介质
WO2023024441A1 (zh) 模型重建方法及相关装置、电子设备和存储介质
CN109979013B (zh) 三维人脸贴图方法及终端设备
CN115439607A (zh) 一种三维重建方法、装置、电子设备及存储介质
CN112102480B (zh) 图像数据处理方法、装置、设备以及介质
CN111653175B (zh) 一种虚拟沙盘展示方法及装置
CN111382618B (zh) 一种人脸图像的光照检测方法、装置、设备和存储介质
CN114742956B (zh) 模型处理方法、装置、设备及计算机可读存储介质
CN114529647A (zh) 对象渲染方法、设备、装置、电子设备及存储介质
CN116416366A (zh) 3d模型构建方法、装置和电子设备
CN113313832A (zh) 三维模型的语义生成方法、装置、存储介质与电子设备
CN112270709A (zh) 地图构建方法及装置、计算机可读存储介质和电子设备
CN111651055A (zh) 城市虚拟沙盘展示方法、装置、计算机设备及存储介质
CN114529648A (zh) 模型展示方法、设备、装置、电子设备及存储介质
CN113240789B (zh) 虚拟对象构建方法及装置
CN116385619B (zh) 对象模型渲染方法、装置、计算机设备和存储介质
CN117333637A (zh) 三维场景的建模及渲染方法、装置及设备
CN111640195A (zh) 一种历史场景的复现方法、装置、电子设备及存储介质
CN116977539A (zh) 图像处理方法、装置、计算机设备、存储介质和程序产品
TW202312100A (zh) 網格生成方法、電子設備及電腦可讀儲存介質
CN116012666B (zh) 图像生成、模型的训练、信息重建方法、装置及电子设备
CN115761123B (zh) 三维模型处理方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination