掌桥专利:专业的专利平台
掌桥专利
首页

虚拟模型的摆放方法及装置

文献发布时间:2023-06-19 16:04:54



技术领域

本申请涉及计算机技术领域,特别涉及一种虚拟模型的摆放方法。本申请同时涉及一种虚拟模型的摆放装置、一种计算设备,以及一种计算机可读存储介质。

背景技术

随着互联网技术的发展,用户对于游戏、电影等场景中的画面细节要求越来越高。在游戏、影视等场景制作的过程中,虚拟模型的摆放位置需要根据场景中地形的不同进行修改,从而使虚拟模型可以更为真实的展示,提升用户的观看体验。

目前,通常由人工进行虚拟模型的摆放,但人工摆放的工作量极大,处理效率较低,并且人工摆放的虚拟模型不能和场景中的地形很好的贴合,影响场景细节效果。

因此,如何提升对虚拟模型的摆放效率以及摆放效果成为本领域技术人员亟待解决的技术问题。

发明内容

有鉴于此,本申请实施例提供了一种虚拟模型的摆放方法,以解决现有技术中存在的技术缺陷。本申请实施例同时提供了一种虚拟模型的摆放装置,一种计算设备,以及一种计算机可读存储介质。

根据本申请实施例的第一方面,提供了一种虚拟模型的摆放方法,包括:

响应于虚拟模型摆放请求确定目标虚拟模型和预设地形;

基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息;

根据所述模型摆放位置信息对所述目标虚拟模型进行摆放。

可选地,所述基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息之前,还包括:

确定预设转换规则,并基于所述预设转换规则将所述预设地形转换为至少一个目标地形;

获取每个目标地形的地形属性信息。

可选地,所述基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息,包括:

获取每个目标地形的地形长度信息和地形宽度信息,以及所述目标虚拟模型的模型长度信息和模型宽度信息;

根据所述地形长度信息、所述地形宽度信息、所述模型长度信息和所述模型宽度信息确定所述目标虚拟模型的模型位置信息;

基于所述模型位置信息确定模型摆放位置信息。

可选地,所述基于所述模型位置信息确定模型摆放位置信息,包括:

基于所述模型位置信息创建所述目标地形的目标包围盒,并获取所述目标包围盒的包围盒位置信息;

将所述包围盒位置信息作为所述目标虚拟模型的模型摆放位置信息。

可选地,所述根据所述地形长度信息、所述地形宽度信息、所述模型长度信息和所述模型宽度信息确定所述目标虚拟模型的模型位置信息,包括:

在所述地形长度信息与所述模型长度信息之差小于或等于长度差阈值,并且所述地形宽度信息与所述模型宽度信息之差小于或等于宽度差阈值的情况下,将所述目标地形的地形位置信息作为所述目标虚拟模型的模型位置信息;

在所述地形长度信息与所述模型长度信息之差大于所述长度差阈值的情况下,基于所述模型长度信息对所述目标地形进行切分,获得第一长度地形以及第二长度地形,并将所述第一长度地形的地形位置信息作为所述目标虚拟模型的模型位置信息,其中,所述第一长度地形的地形长度信息与所述模型长度信息一致;

在所述地形宽度信息与所述模型宽度信息之差大于所述宽度差阈值的情况下,基于所述模型宽度信息对所述目标地形进行切分,获得第一宽度地形以及第二宽度地形,并将所述第一宽度地形的地形位置信息作为所述目标虚拟模型的模型位置信息,其中,所述第一宽度地形的地形宽度信息与所述模型宽度信息一致。

可选地,所述方法还包括:

在虚拟模型数据集中基于所述第二长度地形的地形长度信息确定待处理虚拟模型,将所述第二长度地形的地形位置信息作为所述待处理虚拟模型的模型位置信息;

在虚拟模型数据集中基于所述第二宽度地形的地形长度信息确定待处理虚拟模型,将所述第二宽度地形的地形位置信息作为所述待处理虚拟模型的模型位置信息。

可选地,所述根据所述模型摆放位置信息对所述目标虚拟模型进行摆放,包括:

获取所述目标虚拟模型的模型属性信息以及所述模型摆放位置信息创建虚拟模型点集合;

根据所述虚拟模型点集合在所述预设地形中摆放目标虚拟模型。

可选地,所述根据所述模型摆放位置信息对所述目标虚拟模型进行摆放之后,还包括:

获取目标虚拟模型的模型底面,并创建所述模型底面与所述预设地形之间的目标射线;

基于所述目标射线的长度信息将所述目标虚拟模型向所述预设地形移动。

可选地,所述根据所述模型摆放位置信息对所述目标虚拟模型进行摆放之后,还包括:

将所述目标虚拟模型向上位移,将所述目标虚拟模型的模型底面映射至预设地形,获得映射底面;

确定所述映射底面中的非模型区域占比,并基于所述非模型区域占比确定对所述目标虚拟模型调整策略。

可选地,所述根据所述模型摆放位置信息对所述目标虚拟模型进行摆放之后,还包括:

确定目标虚拟模型与待处理虚拟模型的重叠度;

在所述重叠度超过预设重叠度阈值的情况下,移动或删除所述目标虚拟模型。

根据本申请实施例的第二方面,提供了一种虚拟模型的摆放装置,包括:

第一确定模块,被配置为响应于虚拟模型摆放请求确定目标虚拟模型和预设地形;

第二确定模块,被配置为基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息;

摆放模块,被配置为根据所述模型摆放位置信息对所述目标虚拟模型进行摆放。

根据本申请实施例的第三方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器执行所述计算机可执行指令时实现所述虚拟模型的摆放方法的步骤。

根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述虚拟模型的摆放方法的步骤。

根据本申请实施例的第五方面,提供了一种芯片,其存储有计算机程序,该计算机程序被芯片执行时实现所述虚拟模型的摆放方法的步骤。

本申请提供的虚拟模型的摆放方法,响应于虚拟模型摆放请求确定目标虚拟模型和预设地形;基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息;根据所述模型摆放位置信息对所述目标虚拟模型进行摆放。通过在确定预设地形以及目标虚拟模型后,基于预设地形的地形属性信息和目标虚拟模型的模型属性信息自动化的确定目标虚拟模型在预设地形中的摆放位置,避免了人工调整模型摆放位置的情况,提升了虚拟模型的摆放效率,以及虚拟模型的摆放效果。

附图说明

图1是本申请一实施例提供的一种虚拟模型的摆放方法的流程图;

图2是本申请一实施例提供的一种应用于崖壁模型摆放的虚拟模型的摆放方法的处理流程示意图;

图3是本申请一实施例提供的一种虚拟模型的摆放装置的结构示意图;

图4是本申请一实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。

首先,对本发明一个或多个实施例涉及的名词术语进行解释。

高模:是指较为精细的3D建模,即由较高数量的点、线、面生成的虚拟模型。

白模:是指较为简单的3D建模,即由较低数量的点、线、面生成的虚拟模型。

mesh:是Unity中的一个组件,称为网格组件。通俗的讲,mesh是指模型的网格,3D模型是由多边形拼接而成,而多边形实际上是由多个三角形拼接而成的。所以一个3D模型的表面其实是由多个彼此相连的三角面构成。三维空间中,构成这些三角形的点和边的集合就是mesh。

体素化:是将物体的几何形式表示转换成最接近该物体的体素表示形式,产生体数据集,本方案中用于对虚拟模型进行简化,得到均匀网格。

vdb:是体素化虚拟模型后得到的虚拟模型文件的文件格式。

bool:布尔运算是数字符号化的逻辑推演法,包括联合、相交、相减。在图形处理操作中引用了这种逻辑运算方法以使简单的基本图形组合产生新的形体,并由二维布尔运算发展到三维图形的布尔运算。

Unity:是实时3D互动内容创作和运营平台,Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容。

terrain:是指Unity中的地形编辑组件。

在本申请中,提供了一种虚拟模型的摆放方法。本申请同时涉及一种虚拟模型的摆放装置、一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图1出了根据本申请一实施例提供的一种虚拟模型的摆放方法的流程图,具体包括以下步骤:

步骤102:响应于虚拟模型摆放请求确定目标虚拟模型和预设地形。

其中,虚拟模型摆放请求是指在预设地形中摆放虚拟模型的请求,例如,在游戏场景中,更改游戏场景的地形后,需要对地形上的虚拟模型进行同步调整,从而产生虚拟模型摆放请求;目标虚拟模型是指需要基于地形进行展示的虚拟模型,例如,山体崖壁虚拟模型需要根据山体地形的变换进行摆放,再如,树林虚拟模型需要根据地形的变换进行摆放等等;在实际应用中,可以基于虚拟模型摆放请求确定虚拟模型集合,虚拟模型集合中包含至少一个虚拟模型,可以将虚拟模型集合中的每个虚拟模型作为目标虚拟模型,后续可以在虚拟模型集合中筛选可以摆放在预设地形中的虚拟模型;预设地形是指基于虚拟场景的地形需求创建的地形,如,虚拟盆地地形、虚拟高原地形等等。

需要注意的是,本申请的预设地形是指可以摆放虚拟模型的地形;若获取未确定是否可以摆放虚拟模型的待处理地形,则可以基于非模型摆放区域和待处理地形确定预设区域,如,获取场景地形A以及非模型摆放区域(如包括湖泊区域、河流区域)等,根据非模型摆放区域在场景地形A中确定可以摆放崖壁的地形。

此外,为了提高后续摆放的计算效率,可以确定两种类型的目标虚拟模型,包括高模目标虚拟模型和白模目标虚拟模型;在对目标虚拟模型进行摆放时,获取白模目标虚拟模型对应的模型属性信息,由于白模目标虚拟模型对应的模型属性信息较少,故便于后续对目标虚拟模型的摆放位置的计算;在确定目标模型的摆放位置后,即可用高模目标虚拟模型替换白模目标虚拟模型,通过对包含较多模型细节的高模目标虚拟模型进行展示,在提升计算效率同时,保证了对目标虚拟模型的展示效果。

具体的,接收虚拟模型摆放请求,并解析所述虚拟模型摆放请求获得虚拟模型标识以及地形标识;基于所述虚拟模型标识确定目标虚拟模型,或基于所述虚拟模型标识确定虚拟模型数据集,在所述虚拟模型数据集中可确定目标虚拟模型;根据所述地形标识获取预设地形。

进一步地,为了可以将目标虚拟模型在预设地形中摆放,在基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息之前,还可以包括:

确定预设转换规则,并基于所述预设转换规则将所述预设地形转换为至少一个目标地形;

获取每个目标地形的地形属性信息。

其中,预设转换规则是指可对预设地形进行转换的规则;目标地形是指预设地形中的部分地形;地形属性信息是指地形长度信息、地形宽度信息、地形位置信息等与目标地形相关的属性信息。

例如,使用转换插件将Unity中的采用terrain组件创建的地形转换为mesh格式,并按照正x正z负x负z轴把mesh分成四个部分,后续可以根据mesh的方向和大小对虚拟模型进行摆放;由于在Unity中使用terrain组件创建的地形展示效果不佳,故可以将terrain组件创建地形导出成mesh格式。

通过确定预设地形以及目标虚拟模型,以便后续将目标虚拟模型在预设地形中进行摆放。

步骤104:基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息。

其中,地形属性信息是指与地形相关的属性信息,如,地形长度信息、地形宽度信息、地形位置信息等等;模型属性信息是指与虚拟模型相关的属性信息,如,虚拟模型长度信息、虚拟模型宽度信息等等;模型摆放位置信息是指虚拟模型在地形中摆放时的位置信息。

具体的,为了将虚拟模型更贴合的摆放在目标地形中,保证摆放效果,需要确定目标虚拟模型的模型属性信息与目标地形的地形属性信息,从而确定虚拟模型与目标地形间的对应关系,进而便于后续确定虚拟模型的摆放位置。

进一步地,在确定虚拟模型集合后,可以基于预设地形的地形属性信息以及虚拟模型集合中每个虚拟模型的模型属性信息,确定每个虚拟模型在摆放时的模型摆放位置信息。

在实际应用中,基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息,可以包括:

获取每个目标地形的地形长度信息和地形宽度信息,以及所述目标虚拟模型的模型长度信息和模型宽度信息;

根据所述地形长度信息、所述地形宽度信息、所述模型长度信息和所述模型宽度信息确定所述目标虚拟模型的模型位置信息;

基于所述模型位置信息确定模型摆放位置信息。

其中,地形长度信息是指目标地形的长度,地形宽度信息是指目标地形的宽度;在实际应用中,由于目标地形并不是规则的图形,故可以基于实际需求确定目标地形的长度;模型长度信息是指目标虚拟模型的长度,模型宽度信息是指目标虚拟模型的宽度;模型位置信息是指根据目标虚拟模型的模型属性信息确定的可以摆放目标虚拟模型的目标地形对应的位置信息;在实际应用中,由于目标地形为不规则的形状,故对其进行计算时可采用近似的属性信息进行计算,故需要基于模型位置信息确定对应的模型摆放位置信息。

在实际应用中,基于所述模型位置信息确定模型摆放位置信息的方法可以包括:

基于所述模型位置信息创建所述目标地形的目标包围盒,并获取所述目标包围盒的包围盒位置信息;

将所述包围盒位置信息作为所述目标虚拟模型的模型摆放位置信息。

具体的,在确定目标地形的地形长度信息和地形宽度信息均符合要求的情况下,可以为确定的目标地形创建包围盒;包围盒是一种求解离散点集的包围空间的算法,其算法是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象;在本申请中为筛选确定的目标地形创建包围盒,从而提升后续的计算效率,进而提升虚拟模型摆放效率。

例如,确定可以将虚拟模型A在目标地形G中摆放,则确定目标地形G的位置信息,并基于位置信息创建包围盒;获取包围盒对应的位置信息,并将包围盒的位置信息作为目标地形G的模型摆放位置信息。

在实际应用中,根据所述地形长度信息、所述地形宽度信息、所述模型长度信息和所述模型宽度信息确定所述目标虚拟模型的模型位置信息的方法可以包括:

在所述地形长度信息与所述模型长度信息之差小于或等于长度差阈值,并且所述地形宽度信息与所述模型宽度信息之差小于或等于宽度差阈值的情况下,将所述目标地形的地形位置信息作为所述目标虚拟模型的模型位置信息;

在所述地形长度信息与所述模型长度信息之差大于长度差阈值的情况下,基于所述模型长度信息对所述目标地形进行切分,获得第一长度地形以及第二长度地形,并将所述第一长度地形的地形位置信息作为所述目标虚拟模型的模型位置信息,其中,所述第一长度地形的地形长度信息与所述模型长度信息一致;

在所述地形宽度信息与所述模型宽度信息之差大于宽度差阈值的情况下,基于所述模型宽度信息对所述目标地形进行切分,获得第一宽度地形以及第二宽度地形,并将所述第一宽度地形的地形位置信息作为所述目标虚拟模型的模型位置信息,其中,所述第一宽度地形的地形宽度信息与所述模型宽度信息一致。

具体的,在地形长度信息与模型长度信息之差小于或等于长度差阈值,即地形长度信息与模型长度信息之差的绝对值小于或等于长度差阈值的情况下,可以进一步确定地形宽度信息与模型宽度信息之差是否小于或等于长度差阈值;在地形长度信息与模型长度信息之差小于或等于长度差阈值,并且地形宽度信息与模型宽度信息之差小于或等于长度差阈值的情况下,确定目标虚拟模型可以在目标地形中摆放,则可以将目标地形的位置信息作为模型位置信息。

进一步地,长度差阈值是指预先设定的长度信息之差绝对值的上限值;宽度差阈值是指预设设定的宽度信息之差的上限值;在地形长度信息与模型长度信息之差小于或等于长度差阈值的情况下,可以调整目标虚拟模型的模型长度信息或模型宽度信息,即按照地形长度信息和地形宽度信息扩大或缩小目标虚拟模型,从而使模型长度信息与地形长度信息相同,模型宽度信息与地形宽度信息相同。

例如,基于长度为5宽度为3的虚拟模型A,在多个目标地形中确定长度为5.1宽度为3的目标地形B,由于虚拟模型A的模型宽度信息与目标地形的地形宽度信息之差0.1等于宽度差阈值,则可以确定将虚拟模型A摆放在目标地形B中,并且需要将虚拟模型A的长度扩大为5.1;获取目标地形B的位置信息作为模型摆放信息。

在地形长度信息与模型长度信息之差大于长度差阈值的情况下,优选地,可以在虚拟模型数据集中选取其他与模型长度信息之差小于或等于长度差阈值的目标地形用于确定模型位置信息;若无法筛选出其他地形,并且地形长度信息大于模型长度信息的情况下,则可以对当前的目标地形进行切分;具体为根据模型长度信息对目标地形的地形长度信息进行切分,得到第一长度地形以及第二长度地形,其中,第一长度地形的地形长度信息与目标虚拟模型的模型长度信息一致;在确定第一长度地形后,可以进一步确定第一长度地形的地形宽度信息与目标虚拟模型的模型宽度之差是否小于或等于宽度差阈值;若是,则可以将第一长度地形的位置信息作为模型位置信息;若否,则可以根据目标虚拟模型的模型宽度信息对第一长度地形进行进一步的切分。

例如,筛选得到的与目标地形最为符合的目标虚拟模型的模型长度信息为6,但目标地形的地形长度信息为10,则需要对地形进行切分,得到地形长度信息为6的第一长度地形以及地形长度信息为4的第二长度地形;确定第一长度地形的地形宽度信息2与目标虚拟模型的模型宽度信息2一致,并且第一长度地形的地形宽度信息与模型宽度信息一致,则获取第一长度信息的位置信息作为目标虚拟模型的模型位置信息。

在实际应用中,将所述第一长度地形的地形位置信息作为所述目标虚拟模型的模型位置信息之后,还可以包括:

在虚拟模型数据集中基于所述第二长度地形的地形长度信息确定待处理虚拟模型,将所述第二长度地形的地形位置信息作为所述待处理虚拟模型的模型位置信息。

其中,虚拟模型数据集是指包含一个或多个虚拟模型的集合,在虚拟模型数据集中包含至少一个待处理虚拟模型。

具体的,在将第一长度地形确定为与目标虚拟模型对应的地形后,可以在虚拟模型数据集中确定与第二长度地形的地形长度信息对应的待处理虚拟模型;具体可以是在虚拟模型数据集中确定与第二长度地形的地形长度信息之差小于或等于长度差阈值的待处理虚拟模型;并且确定待处理虚拟模型的模型宽度信息与第二长度地形的地形宽度信息之差是否小于或等于宽度差阈值,若是,则对待处理虚拟模型按照第二长度地形的地形长度信息和地形宽度信息进行调整,将第二长度地形的位置信息作为待处理虚拟模型的模型位置信息;若否,则可以根据待处理虚拟模型的模型宽度信息对第二长度地形做进一步的切分。

在地形宽度信息与模型宽度信息之差大于宽度差阈值的情况下,优选地,可以选取其他与模型宽度信息之差小于或等于目标地形的虚拟模型用于确定模型位置信息;若无法筛选出其他目标地形,并且地形宽度信息大于模型宽度信息的情况下,则可以基于模型宽度信息对当前的目标地形进行切分,得到第一宽度地形以及第二宽度地形,其中,第一宽度地形的地形宽度信息与目标虚拟模型的模型宽度信息一致;在确定第一宽度地形后,可以进一步确定第一宽度地形的地形长度信息与目标虚拟模型的模型长度信息之差是否小于或等于长度差阈值;若是,则可以获取目标地形的位置信息作为模型位置信息;若否,则可以根据目标虚拟模型的模型长度信息对第一宽度地形进一步的切分。

例如,筛选得到的与目标地形最为符合的目标虚拟模型的模型宽度信息为9,但目标地形的地形宽度为15,则需要对目标地形进行切分,得到地形宽度信息为9的第一宽度地形和地形宽度为6的第二宽度地形;确定第一宽度地形的地形宽度信息6与目标虚拟模型的模型宽度信息为6一致,并且第一宽度地形的地形长度信息与目标虚拟模型的模型长度信息一致,则获取第一宽度地形的位置信息作为目标虚拟模型的模型位置信息。

在实际应用中,将所述第一宽度地形的地形位置信息作为所述目标虚拟模型的模型位置信息之后,还可以包括:

在虚拟模型数据集中基于所述第二宽度地形的地形长度信息确定待处理虚拟模型,将所述第二宽度地形的地形位置信息作为所述待处理虚拟模型的模型位置信息。

具体的,在将第一宽度地形确定为与目标虚拟模型对应的地形后,可以在虚拟模型数据集中确定与第二宽度地形的地形宽度信息对应的待处理虚拟模型,并确定待处理虚拟模型的模型长度信息与第二宽度地形的地形长度信息之差是否小于或等于长度差阈值,若是,则将第二宽度地形的位置信息作为待处理虚拟模型的模型位置信息;若否,则可以基于模型长度信息对第二宽度地形进行进一步的切分。

需要注意的是,若在进行上述的切分后,仍无法在虚拟模型数据集中筛选出可以在目标地形中摆放的目标虚拟模型,则可以对目标虚拟模型进行进一步的调整,如,在虚拟模型的模型长度信息大于每个目标地形的地形长度信息,并且模型长度信息与地形长度信息之差大于长度差阈值的情况下,缩小模型长度信息,以使得模型长度信息与目标地形的地形长度信息一致,再如,在虚拟模型的模型长度信息小于每个目标地形的地形长度信息,并且模型长度信息与地形长度信息之差大于长度差阈值的情况下,扩大模型长度信息,以使模型长度信息与目标地形的地形长度信息一致。

具体的,确定目标虚拟模型的可调整阈值,其中,可调整阈值是指目标虚拟模型扩大以及缩小的上限值,超过可调整阈值的调整会影响目标虚拟模型的展示效果。在对目标虚拟模型进行了可调整阈值内的调整后,确定与其对应的目标地形,即可以使用调整后的目标虚拟模型确定目标地形;若需对目标虚拟模型进行超过可调整阈值的方式进行调整,才可以确定目标地形,则可以删除目标地形或不将目标虚拟模型在预设地形中摆放,以保证虚拟场景的完整性。

通过将目标虚拟模型的模型属性信息与目标地形的地形属性信息进行比较,从而确定可以较为贴合的摆放目标虚拟模型的目标地形,从而便于后续对目标虚拟模型更为贴合的进行摆放。

步骤106:根据所述模型摆放位置信息对所述目标虚拟模型进行摆放。

具体的,在确定模型摆放位置后,即可基于模型摆放位置信息对目标虚拟模型进行摆放。

在实际应用中,根据所述模型摆放位置信息对所述目标虚拟模型进行摆放的方法可以包括:

获取所述目标虚拟模型的模型属性信息以及所述模型摆放位置信息创建虚拟模型点集合;

根据所述虚拟模型点集合在所述预设地形中摆放目标虚拟模型。

具体的,可以通过获取目标虚拟模型的路径属性信息、材质属性信息等模型属性信息,从而确定目标虚拟模型的存储路径以及展示材质信息等等;基于模型属性信息以及模型摆放信息创建虚拟模型点集合,即创建虚拟模型点云;虚拟模型点云中包含虚拟模型位置信息以及虚拟模型特征信息,可以基于虚拟模型点云将虚拟模型在对应的目标地形中展示。

通过上述步骤可以将目标虚拟模型在目标地形中展示,但为了提高摆放质量,进而提升用户的观看体验,在根据所述模型摆放位置信息对所述目标虚拟模型进行摆放之后,还可以包括:

获取目标虚拟模型的模型底面,并创建所述模型底面与所述预设地形之间的目标射线;

基于所述目标射线的长度信息将所述目标虚拟模型向所述预设地形移动。

在实际应用中,由于基于预设地形得到的至少一个目标地形可能存在与预设地形不完全吻合的情况,导致目标虚拟模型在目标地形中展示时,存在目标虚拟模型悬空展示的情况,即目标虚拟模型未与地形贴合展示,则此时需要将目标虚拟模型移动至地形上。

其中,模型底面是指虚拟模型的底部部分;目标射线是指从模型底面建立模型底面与预设地形之间的映射得到的射线。

具体的,可以对模型底面进行细化,即可以在模型底面增加点、线或面,从而增加模型底面对应的位置信息;根据细化后的模型底面,建立模型底面与预设地形之间的映射;判断是否存在射线位于预设地形中,若是,则基于射线长度信息确定对目标虚拟模型的移动长度信息;根据移动长度信息将目标虚拟模型移动至与预设地形贴合。

在实际应用中,在场景中除预设地形外,还可能包括其他虚拟模型,为了保证摆放的虚拟模型与其他虚拟模型不发生重叠,则根据所述模型摆放位置信息对所述目标虚拟模型进行摆放之后,还可以包括:

将所述目标虚拟模型向上位移,将所述目标虚拟模型的模型底面映射至预设地形,获得映射底面;

确定所述映射底面中的非模型区域占比,并基于所述非模型区域占比确定对所述目标虚拟模型调整策略。

其中,将目标虚拟模型向上位移是指将目标虚拟模型向预设地形的相反方向进行移动,即将目标虚拟模型从目标地形上移开,使预设地形与模型地面存在空隙;建立模型底面与预设地形之间的映射,从而将模型底面映射在预设地形中,得到映射地面;在映射地面中包含模型摆放区域以及非模型摆放区域的情况下,计算非模型区域占比,即非模型摆放区域在映射地面中的面积占比;确定预设占比阈值,在非模型区域占比超过预设展示阈值的情况下,可以对目标虚拟模型进行移动或删除,从而避免虚拟模型之间发生重叠,保证模型摆放的真实性。

在实际应用中,除上述目标虚拟模型与非模型摆放区域的模型发生重叠的情况以外,还可以需要对摆放的虚拟模型之间的重叠进行检测以及对重叠进行处理,具体根据所述模型摆放位置信息对所述目标虚拟模型进行摆放之后,还可以包括:

确定目标虚拟模型与待处理虚拟模型的重叠度;

在所述重叠度超过预设重叠度阈值的情况下,移动或删除所述目标虚拟模型。

其中,重叠度是指目标虚拟模型与待处理虚拟模型之间的重叠数值;预设重叠阈值是指重叠度的上限,在重叠度超过预设重叠阈值的情况下,需要删除目标虚拟模型,从而避免重叠计算造成的资源浪费、计算效率低下等问题。

在实际应用中,可采用下述方式确定虚拟模型的重叠度:获取虚拟模型数据集中虚拟模型,为了便于后续计算虚拟模型间是否发生了重叠,可以将虚拟模型进行体素化得到虚拟模型vdb格式的模型外框,以便后续基于模型外框计算虚拟模型是否发生重叠;计算虚拟模型点集合中每个模型点的六个方向到模型外框的外框距离,并确定每个方向的模型尺寸信息,将外框距离与对应方向的模型尺寸信息进行比对,并累计外框距离超过模型尺寸信息的方向重叠数量;在方向重叠数量超过预设数量阈值的情况下,确定发生重叠并对目标虚拟模型进行删除。

例如,获取崖壁模型集合,并将崖壁模型进行体素化得到虚拟模型vdb格式的模型外框;确定法线N是崖壁模型的Z轴方向,up是崖壁模型的Y方向,right是崖壁模型的X方向,计算每一个崖壁点云六个方向到模型外框的距离(±N、±up、±right),即六个方向的距离分别为a、b、c、d、e、f;计算崖壁尺寸六个方向的值,六个方向的值分别为A、B、C、D、E、F,如果a>A则重叠数量加一,即x+1;若变量x>5则确定需要对目标崖壁模型进行移动或删除的操作。

此外,还通过计算重叠面积的方式进行重叠检测,具体为:创建每个虚拟模型的模型外框;遍历虚拟模型集合中的每个虚拟模型,计算模型外框与虚拟模型的重叠面积;确定目标虚拟模型的总面积以及重叠面积,并计算重叠面积在总面积中所占的百分比,如,通过bool计算模型外框与崖壁模型重叠的部分,在百分比超过预设百分比阈值的情况下,删除目标虚拟模型。

优选地,在确定虚拟模型的重叠度之前,可以对虚拟模型进行分块处理,以减轻每次对虚拟模型进行计算时的压力,从而减少系统加载内存,保证系统的稳定性。

例如,创建虚拟模型A的目标包围盒,并将目标包围盒划分为多个网格块;将虚拟模型A投影至网格块上,并删除未被投影的网格块;遍历剩余的每个网格块,并将虚拟模型A的点云投影至网格块,从而对虚拟模型A进行分块处理。

本申请的虚拟模型摆放方法,在确定预设地形以及目标虚拟模型后,基于预设地形的地形属性信息和目标虚拟模型的模型属性信息自动化的确定目标虚拟模型在预设地形中的摆放位置,避免了人工调整模型摆放位置的情况,提升了虚拟模型的摆放效率,以及虚拟模型的摆放效果。

下述结合附图2以本申请提供的虚拟模型的摆放方法对崖壁模型摆放的应用为例,对所述虚拟模型的摆放方法进行进一步说明。其中,图2示出了本申请一实施例提供的一种应用于崖壁模型摆放的虚拟模型的摆放方法的处理流程示意图,具体包括以下步骤:

步骤202:获取崖壁模型集合、预设地形以及预设地形中的非崖壁摆放区域。

其中,崖壁模型集合中包含第一层崖壁模型、第二层崖壁模型以及第三层崖壁模型。

步骤204:基于预设地形以及非崖壁摆放区域,确定崖壁摆放区域。

其中,崖壁摆放区域包括崖壁摆放的地形坡度与地形区域。

步骤206:将崖壁摆放区域转换为mesh,并通过面法线将mesh进行分块,获得mesh集合。

步骤208:判断mesh集合中的mesh是否符合第一层崖壁面积阈值;若是,则执行步骤210,若否,则执行步骤212。

步骤210:将筛选得到的第一mesh根据模型属性信息进行切分,并删除无法摆放崖壁模型的第一mesh。

步骤212:将不符合判断条件的mesh作为第二层崖壁、第三层崖壁的mesh。

步骤214:在每个第一mesh中添加第一层崖壁模型。

步骤216:判断第一崖壁模型是否可以在第一mesh中摆放,若是,则执行步骤218;若否,则执行步骤212。

步骤218:将悬空的第一层崖壁模型摆放在第一mesh,并排除非崖壁摆放区域与第一层崖壁模型的重叠。

步骤220:创建第一层崖壁点云。

步骤222:将第二层崖壁、第三层崖壁的mesh进行切分,并分别摆放第二层崖壁模型和第三层崖壁模型。

步骤224:创建第二层崖壁点云和第三层崖壁点云。

步骤226:合并所述第一崖壁点云、第二崖壁点云以及第三崖壁点云,并对崖壁模型间的重叠进行检测,删除重叠崖壁模型。

本申请提供的虚拟模型的摆放方法,响应于虚拟模型摆放请求确定目标虚拟模型和预设地形;基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息;根据所述模型摆放位置信息对所述目标虚拟模型进行摆放。通过在确定预设地形以及目标虚拟模型后,基于预设地形的地形属性信息和目标虚拟模型的模型属性信息自动化的确定目标虚拟模型在预设地形中的摆放位置,避免了人工调整模型摆放位置的情况,提升了虚拟模型的摆放效率,以及虚拟模型的摆放效果。

与上述方法实施例相对应,本申请还提供了虚拟模型的摆放装置实施例,图3示出了本申请一实施例提供的一种虚拟模型的摆放装置的结构示意图。如图3所示,该装置包括:

第一确定模块302,被配置为响应于虚拟模型摆放请求确定目标虚拟模型和预设地形;

第二确定模块304,被配置为基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息;

摆放模块306,被配置为根据所述模型摆放位置信息对所述目标虚拟模型进行摆放。

可选地,所述装置还包括,转换模块,被配置为:

确定预设转换规则,并基于所述预设转换规则将所述预设地形转换为至少一个目标地形;

获取每个目标地形的地形属性信息。

可选地,所述第二确定模块306,进一步被配置为:

获取每个目标地形的地形长度信息和地形宽度信息,以及所述目标虚拟模型的模型长度信息和模型宽度信息;

根据所述地形长度信息、所述地形宽度信息、所述模型长度信息和所述模型宽度信息确定所述目标虚拟模型的模型位置信息;

基于所述模型位置信息确定模型摆放位置信息。

可选地,所述第二确定模块306,进一步被配置为:

基于所述模型位置信息创建所述目标地形的目标包围盒,并获取所述目标包围盒的包围盒位置信息;

将所述包围盒位置信息作为所述目标虚拟模型的模型摆放位置信息。

可选地,所述第二确定模块306,进一步被配置为:

在所述地形长度信息与所述模型长度信息之差小于或等于长度差阈值,并且所述地形宽度信息与所述模型宽度之差小于或等于宽度差阈值的情况下,将所述目标地形的地形位置信息作为所述目标虚拟模型的模型位置信息;

在所述地形长度信息与所述模型长度信息之差大于所述长度差阈值的情况下,基于所述模型长度信息对所述目标地形进行切分,获得第一长度地形以及第二长度地形,并将所述第一长度地形的地形位置信息作为所述目标虚拟模型的模型位置信息,其中,所述第一长度地形的地形长度信息与所述模型长度信息一致;

在所述地形宽度信息与所述模型宽度信息之差大于所述宽度差阈值的情况下,基于所述模型宽度信息对所述目标地形进行切分,获得第一宽度地形以及第二宽度地形,并将所述第一宽度地形的地形位置信息作为所述目标虚拟模型的模型位置信息,其中,所述第一宽度地形的地形宽度信息与所述模型宽度信息一致。

可选地,所述装置还包括确定子模块,被配置为:

在虚拟模型数据集中基于所述第二长度地形的地形长度信息确定待处理虚拟模型,将所述第二长度地形的地形位置信息作为所述待处理虚拟模型的模型位置信息;

在虚拟模型数据集中基于所述第二宽度地形的地形长度信息确定待处理虚拟模型,将所述第二宽度地形的地形位置信息作为所述待处理虚拟模型的模型位置信息。

可选地,所述摆放模块306,进一步被配置为:

获取所述目标虚拟模型的模型属性信息以及所述模型摆放位置信息创建虚拟模型点集合;

根据所述虚拟模型点集合在所述预设地形中摆放目标虚拟模型。

可选地,所述装置还包括移动模块,被配置为:

获取目标虚拟模型的模型底面,并创建所述模型底面与所述预设地形之间的目标射线;

基于所述目标射线的长度信息将所述目标虚拟模型向所述预设地形移动。

可选地,所述装置还包括占比确定模块,被配置为:

将所述目标虚拟模型向上位移,将所述目标虚拟模型的模型底面映射至预设地形,获得映射底面;

确定所述映射底面中的非模型区域占比,并基于所述非模型区域占比确定对所述目标虚拟模型调整策略。

可选地,所述装置还包括重叠度确定模块,被配置为:

确定目标虚拟模型与待处理虚拟模型的重叠度;

在所述重叠度超过预设重叠度阈值的情况下,移动或删除所述目标虚拟模型。

本申请虚拟模型的摆放装置,第一确定模块,被配置为响应于虚拟模型摆放请求确定目标虚拟模型和预设地形;第二确定模块,被配置为基于所述预设地形的地形属性信息和所述目标虚拟模型的模型属性信息确定模型摆放位置信息;摆放模块,被配置为根据所述模型摆放位置信息对所述目标虚拟模型进行摆放。通过在确定预设地形以及目标虚拟模型后,基于预设地形的地形属性信息和目标虚拟模型的模型属性信息自动化的确定目标虚拟模型在预设地形中的摆放位置,避免了人工调整模型摆放位置的情况,提升了虚拟模型的摆放效率,以及虚拟模型的摆放效果。

上述为本实施例的一种虚拟模型的摆放装置的示意性方案。需要说明的是,该虚拟模型的摆放装置的技术方案与上述的虚拟模型的摆放方法的技术方案属于同一构思,虚拟模型的摆放装置的技术方案未详细描述的细节内容,均可以参见上述虚拟模型的摆放方法的技术方案的描述。此外,装置实施例中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。

图4示出了根据本申请一实施例提供的一种计算设备400的结构框图。该计算设备400的部件包括但不限于存储器410和处理器420。处理器420与存储器410通过总线430相连接,数据库450用于保存数据。

计算设备400还包括接入设备440,接入设备440使得计算设备400能够经由一个或多个网络460通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本申请的一个实施例中,计算设备400的上述部件以及图4中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图4所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备400还可以是移动式或静止式的服务器。

其中,处理器420用于执行所述虚拟模型的摆放方法的计算机可执行指令。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的虚拟模型的摆放方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述虚拟模型的摆放方法的技术方案的描述。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于虚拟模型的摆放方法。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的虚拟模型的摆放方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述虚拟模型的摆放方法的技术方案的描述。

本申请一实施例还提供一种芯片,其存储有计算机程序,该计算机程序被芯片执行时实现所述虚拟模型的摆放方法的步骤。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

技术分类

06120114694762