基于Unity3D的楼层拆解方法及系统与流程

文档序号:24242259发布日期:2021-03-12 13:17阅读:609来源:国知局
基于Unity3D的楼层拆解方法及系统与流程

本发明涉及计算机技术领域,尤其涉及一种基于unity3d的楼层拆解方法及系统。



背景技术:

近年来,3d建模技术发展迅速,越来越多的领域涉及到了3d模型,比如人物,交通运输,家具电器,机械,动物、怪物、植物,服装,饰品,日常用品,乐器和艺术品等等,其中也包括建筑物。

精细的建筑模型不止要有精致的外观,里面的内部构造也是重要的一部分,而目前想要看见建筑模型的内部构造,只能通过移动摄像机的方式,把视角移入到建筑模型内部进行观察。

现有的通过移动摄像机的方式,把视角移入建筑模型内部观察建筑结构,这样的观察方式不能从整体上把握建筑的内部结构,也不能直观的看到建筑每一层的物体分布,导致实现过程复杂和缓慢。因此,现在亟需一种基于unity3d的楼层拆解方法及系统来解决上述问题。



技术实现要素:

针对现有技术存在的问题,本发明提供一种基于unity3d的楼层拆解方法及系统。

本发明提供一种基于unity3d的楼层拆解方法,包括:

基于unity3d技术,获取目标建筑的楼层三维空间;

根据预设楼层移动规则,将每个楼层在所述楼层三维空间进行移动拆解,得到所述目标建筑的楼层拆解结果。

根据本发明提供的一种基于unity3d的楼层拆解方法,在所述基于unity3d技术,获取目标建筑的楼层三维空间之后,所述方法还包括:

对所述楼层三维空间中每个楼层按照楼层顺序进行编号,获取每个楼层的楼层编号。

根据本发明提供的一种基于unity3d的楼层拆解方法,所述根据预设楼层移动规则,将每个楼层在所述楼层三维空间进行移动拆解,得到所述目标建筑的楼层拆解结果,包括:

根据每个楼层的楼层编号,计算每个楼层在所述楼层三维空间中对应的移动距离;

根据所述移动距离,将每个楼层移动至所述楼层三维空间中同一水平面上,得到所述目标建筑的楼层拆解结果。

根据本发明提供的一种基于unity3d的楼层拆解方法,所述根据每个楼层的楼层编号,计算每个楼层在所述楼层三维空间中对应的移动距离,包括:

获取每个楼层的空间坐标;

根据每个楼层的楼层编号和预设楼层参数,获取每个楼层的空间坐标的位移距离;

根据所述位移距离,得到每个楼层在所述楼层三维空间中对应的移动距离。

根据本发明提供的一种基于unity3d的楼层拆解方法,所述方法还包括:通过dotween脚本,将每个楼层在所述楼层三维空间进行移动拆解。

本发明还提供一种基于unity3d的楼层拆解系统,包括:

楼层三维信息获取模块,用于基于unity3d技术,获取目标建筑的楼层三维空间;

楼层拆解模块,用于根据预设楼层移动规则,将每个楼层在所述楼层三维空间进行移动拆解,得到所述目标建筑的楼层拆解结果。

根据本发明提供的一种基于unity3d的楼层拆解系统,所述系统还包括:

楼层编号模块,用于对所述楼层三维空间中每个楼层按照楼层顺序进行编号,获取每个楼层的楼层编号。

根据本发明提供的一种基于unity3d的楼层拆解系统,所述楼层拆解模块,包括:

楼层移动距离计算单元,用于根据每个楼层的楼层编号,计算每个楼层在所述楼层三维空间中对应的移动距离;

楼层移动单元,用于根据所述移动距离,将每个楼层移动至所述楼层三维空间中同一水平面上,得到所述目标建筑的楼层拆解结果。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于unity3d的楼层拆解方法的步骤。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于unity3d的楼层拆解方法的步骤。

本发明提供的基于unity3d的楼层拆解方法及系统,通过unity3d技术,可以直接把建筑模型按楼层拆解开,并平铺在一个水平面上,在建筑外面以俯视视角就可以直观的看到每一层的内容,其拆解过程十分简单,可以更加效率的得到建筑模型的内部结构。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的基于unity3d的楼层拆解方法的流程示意图;

图2为本发明提供的基于unity3d的楼层拆解系统的结构示意图;

图3是本发明提供的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

unity3d是实时3d互动内容创作和运营平台,包括游戏开发、美术、建筑、汽车设计和影视在内的所有创作者,借助unity3d技术可将创意变成现实。unity3d平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2d和3d内容,支持平台包括手机、平板电脑、pc、游戏主机、增强现实和虚拟现实设备。现有在获取建筑模型的内部构造时,只能通过移动摄像机的方式,把视角移入建筑模型内部进行观察,这样的观察方式不能从整体上把握建筑的内部结构,也不能直观的看到建筑每一层的物体分布。基于该问题,本发明在unity3d中,对3d建筑模型中的每一楼层单独进行拆解,并平铺显示在同一平面上。

图1为本发明提供的基于unity3d的楼层拆解方法的流程示意图,如图1所示,本发明提供了一种基于unity3d的楼层拆解方法,包括:

步骤101,基于unity3d技术,获取目标建筑的楼层三维空间。

在本发明中,首先通过unity3d技术,获取目标建筑的模型三维信息,并根据模型三维信息构建该目标建筑的楼层三维空间。

步骤102,根据预设楼层移动规则,将每个楼层在所述楼层三维空间进行移动拆解,得到所述目标建筑的楼层拆解结果。

在本发明中,通过对楼层三维空间中每一个楼层进行编号,例如,从顶层往底层依次编号;然后根据每个楼层的编号,计算当前编号对应楼层在楼层三维空间中的移动距离;接着,根据每一个计算得到的移动距离,将该移动距离对应的楼层在楼层三维空间中进行移动,使得每个楼层移动至楼层三维空间中同一水平面上,从而得到目标建筑的楼层拆解结果。

本发明提供的基于unity3d的楼层拆解方法,通过unity3d技术,可以直接把建筑模型按楼层拆解开,并平铺在一个水平面上,在建筑外面以俯视视角就可以直观的看到每一层的内容,其拆解过程十分简单,可以更加效率的得到建筑模型的内部结构。

在上述实施例的基础上,在所述基于unity3d技术,获取目标建筑的楼层三维空间之后,所述方法还包括:

对所述楼层三维空间中每个楼层按照楼层顺序进行编号,获取每个楼层的楼层编号。

在上述实施例的基础上,所述根据预设楼层移动规则,将每个楼层在所述楼层三维空间进行移动拆解,得到所述目标建筑的楼层拆解结果,包括:

根据每个楼层的楼层编号,计算每个楼层在所述楼层三维空间中对应的移动距离;

根据所述移动距离,将每个楼层移动至所述楼层三维空间中同一水平面上,得到所述目标建筑的楼层拆解结果。

在上述实施例的基础上,所述根据每个楼层的楼层编号,计算每个楼层在所述楼层三维空间中对应的移动距离,包括:

获取每个楼层的空间坐标;

根据每个楼层的楼层编号和预设楼层参数,获取每个楼层的空间坐标的位移距离;

根据所述位移距离,得到每个楼层在所述楼层三维空间中对应的移动距离。

在本发明中,首先,通过unity3d脚本,获取目标建筑模型的三维信息,构建楼层三维空间,此时,整个楼层三维空间作为一个整体,待进行后续步骤的拆解。进一步地,通过unity3d脚本,遍历楼层三维空间中所有子物体,为楼层三维空间构建空间直角坐标系,其中,将x轴方向的总长度定义为xlength,将y轴方向的总长度定义为ylength,将z轴方向的总长度定义为zlength,从而根据该空间直角坐标系,获取每个楼层的空间坐标。

接着,从最顶层开始,从上往下(也可以从最底层开始,从下往上进行编号)把每个楼层编号为i(i=0,1,2……);然后,根据预设的拆解需求,设置相应的预设楼层参数,从而获取每个楼层对应空间坐标的位移距离,其中,该参数的选取,会影响最终的拆解形式,例如,本发明设置预设楼层参数=3进行说明,当楼层拆解完成之后,目标建筑内所有楼层都会按照3行n列的形式,平铺到楼层三维空间的最顶层所在的水平面上。

具体地,以对楼层编号i进行除3取余,其中,余数为0的楼层,该楼层在x轴方向上移动的距离为i/3*xlength+i/3*0.3,在y轴方向上移动至最高层的y坐标,z坐标保持不变;余数为1的楼层,该楼层在x轴方向上移动的距离为i/3*xlength+i/3*0.3的距离,在y轴方向上移动至最高层的y坐标,在z轴方向上移动zlength+0.3的距离;余数为2的楼层,该楼层在x轴方向上移动的距离为i/3*xlength+i/3*0.3,在y轴方向上移动至最高层的y坐标,在z轴方向上移动zlength*2+0.6的距离。需要说明的是,在本发明中,对于i/3的余数不为0的楼层,i/3取商舍弃余数。最后,通过上述每一楼层空间坐标中的位移距离,获取每个楼层在楼层三维空间中的整体移动距离,从而对每个楼层进行拆解,使得目标建筑内的所有楼层都会按照3行n列的形式平铺在最顶层所在的水平面上。

在上述实施例的基础上,所述方法还包括:通过dotween脚本,将每个楼层在所述楼层三维空间进行移动拆解。

在本发明中,所有楼层的移动过程用dotween脚本进行编写,保证楼层在楼层三维空间中移动时为动画形式,可以精确控制移动的距离和移动需要的时间,从而直观的看到每层楼的移动过程,以及楼层移动后的位置。

图2为本发明提供的基于unity3d的楼层拆解系统的结构示意图,如图2所示,本发明提供了一种基于unity3d的楼层拆解系统,包括楼层三维信息获取模块201和楼层拆解模块202,其中,楼层三维信息获取模块201用于基于unity3d技术,获取目标建筑的楼层三维空间;楼层拆解模块202用于根据预设楼层移动规则,将每个楼层在所述楼层三维空间进行移动拆解,得到所述目标建筑的楼层拆解结果。

本发明提供的基于unity3d的楼层拆解系统,通过unity3d技术,可以直接把建筑模型按楼层拆解开,并平铺在一个水平面上,在建筑外面以俯视视角就可以直观的看到每一层的内容,其拆解过程十分简单,可以更加效率的得到建筑模型的内部结构。

在上述实施例的基础上,所述系统还包括:

楼层编号模块,用于对所述楼层三维空间中每个楼层按照楼层顺序进行编号,获取每个楼层的楼层编号。

在上述实施例的基础上,所述楼层拆解模块,包括:

楼层移动距离计算单元,用于根据每个楼层的楼层编号,计算每个楼层在所述楼层三维空间中对应的移动距离;

楼层移动单元,用于根据所述移动距离,将每个楼层移动至所述楼层三维空间中同一水平面上,得到所述目标建筑的楼层拆解结果。

本发明实施例提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。

图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)301、通信接口(communicationsinterface)302、存储器(memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行基于unity3d的楼层拆解方法,该方法包括:基于unity3d技术,获取目标建筑的楼层三维空间;根据预设楼层移动规则,将每个楼层在所述楼层三维空间进行移动拆解,得到所述目标建筑的楼层拆解结果。

此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于unity3d的楼层拆解方法,该方法包括:基于unity3d技术,获取目标建筑的楼层三维空间;根据预设楼层移动规则,将每个楼层在所述楼层三维空间进行移动拆解,得到所述目标建筑的楼层拆解结果。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的基于unity3d的楼层拆解方法,该方法包括:基于unity3d技术,获取目标建筑的楼层三维空间;根据预设楼层移动规则,将每个楼层在所述楼层三维空间进行移动拆解,得到所述目标建筑的楼层拆解结果。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1