本发明专利技术提供了一种三维场景管理方法及三维场景管理系统,三维场景管理方法包括:预先基于树结构对目标三维场景中的主场景进行划分,以获取与所述树结构的每个叶子节点对应的子场景,其中,所述主场景中存储有所述树结构,每个所述叶子节点对应的子场景中存储有渲染对象,每个所述叶子节点中存储有与其对应的子场景的索引标识;在加载所述目标三维场景的过程中,基于每个所述叶子节点存储的索引标识查找对应的子场景,并对其进行加载显示。通过本发明专利技术的技术方案,基于树结构实现对三维场景的轻量化描述,满足了移动端和互联网应用对三维场景的轻量化显示需求,同时无需一次性全部加载,可边加载边解析显示,提高了整体的处理速度。
【技术实现步骤摘要】
本专利技术涉及计算机
,具体而言,涉及一种三维场景管理方法和一种三维场景管理系统。
技术介绍
传统的三维图形文件一般采用单个文件或少数几个文件描述三维显示,如广联达算量GCL文件,AutodeskRevit文件,其特点是用一个文件保存所有的业务数据和三维图形数据,这样非常方便文件的复制和点对点传输,但随着移动互联网和云计算的发展,人们对三维图形的需求越来越多,越来越多的应用都需要在Web端和移动端显示三维数据,如此传统的单个的大文件满足不了在Web端和移动端的轻量化显示:通常文件只有在全部传输完成后才能够被解析,但由于移动设备和浏览器的内存和计算能力的限制,无法解析较大的模型,用户需要等待较长的时间才能下载和显示三维场景。相关技术中,比较流行的三维场景的轻量化描述技术有GLTF(GLTransmissionFormat,GL的描述格式)和AutodeskA360的显示格式,其均是采用单一JSON文件保存场景文件,因此需要下载完整的文件才能解析,当遇到构件数目较多的情况下,生成的JSON文件很大,会影响传输和解析效率,甚至有因为太大而导致浏览器无法加载的情况。
技术实现思路
本专利技术正是基于上述技术问题至少之一,提出了一种新的三维场景管理方案,基于树结构实现对三维场景的轻量化描述,满足了移动端和互联网应用对三维场景的轻量化显示需求。有鉴于此,本专利技术提出了一种三维场景管理方法,包括:预先基于树结构对目标三维场景中的主场景进行划分,以获取与所述树结构的每个叶子节点对应的子场景,其中,所述主场景中存储有所述树结构,每个所述叶子节点对应的子场景中存储有渲染对象,每个所述叶子节点中存储有与其对应的子场景的索引标识;在加载所述目标三维场景的过程中,基于每个所述叶子节点存储的索引标识查找对应的子场景,并对其进行加载显示。在该技术方案中,通过预先基于树结构对目标三维场景中的主场景进行划分,以获取与树结构的每个叶子节点对应的子场景,其中,主场景中存储有树结构,每个叶子节点中存储有与其对应的子场景的索引标识,在后续加载过程中,基于每个叶子节点存储的索引标识查找对应的子场景以对其进行加载显示,将主场景划分为多个子场景,减小主场景本身的大小,以支持更大的三维场景,满足了移动端和互联网应用对三维场景的轻量化显示需求,同时由于主场景被划分为多个子场景,无需一次性全部进行加载,可边加载边解析显示,提高了整体的处理速度。在上述技术方案中,优选地,还包括:基于所述主场景中的渲染对象的总个数和所述主场景的总尺寸,确定每个所述叶子节点的容量。在该技术方案中,通过基于主场景中的渲染对象的总个数和主场景的总尺寸来确定每个叶子节点的容量,使得从体上控制叶子节点的个数和树结构的深度,其中,树结构的深度一般不超过8,对于建筑场景,叶子节点的尺寸可以划分为5m×5m×5m。在上述任一项技术方案中,优选地,在任一所述叶子节点对应有多个子场景的情况下,所述三维场景管理方法还包括:获取所述多个子场景中每个子场景的渲染对象的包围盒参考值和任一所述叶子节点的包围盒参考值;计算所述每个子场景的渲染对象的包围盒参考值和任一所述叶子节点的包围盒参考值的比例值;将所述多个子场景中比例值处于第一预设范围内的子场景作为大组子场景;将所述多个子场景中比例值处于第二预设范围内的子场景作为中组子场景;将所述多个子场景中比例值处于第三预设范围内的子场景作为小组子场景;其中,所述每个子场景的渲染对象的包围盒参考值和任一所述叶子节点的包围盒参考值均包括:包围盒的体积或包围盒的最长边。在该技术方案中,通过计算每个子场景的渲染对象的包围盒参考值和任一叶子节点的包围盒参考值的比例值,对多个子场景进行分组,为后续选择性加载或释放子场景提供必要前提保障。其中,第一预设范围可为[0.5,1],包括端点值0.5和1,第二预设范围可为[0.2,0.5),包括端点值0.2,第三预设范围为(0,0.2)。在上述任一项技术方案中,优选地,还包括:在加载任一所述叶子节点对应的所述多个子场景的过程中,当任一所述叶子节点处于视锥裁剪范围外时,释放所述多个子场景;当任一所述叶子节点处于视锥裁剪范围内时,根据相机与任一所述叶子节点之间的距离,选择性对所述多个子场景进行加载。在该技术方案中,在任一叶子节点处于视锥裁剪范围外时,即便加载显示该叶子节点对应的子场景,用户也无法观察到,所以此时释放该叶子节点对应的子场景,降低系统的运行负荷,在当任一叶子节点处于视锥裁剪范围内时,再根据相机与任一所述叶子节点之间的距离,选择性对多个子场景进行加载,以提高子场景的载入速度。在上述任一项技术方案中,优选地,所述根据相机与任一所述叶子节点之间的距离,选择性对所述多个子场景进行加载的步骤,具体包括:在所述距离处于第一距离区间内时,加载所述大组子场景;在所述距离处于第二距离区间内时,加载所述中组子场景;在所述距离处于第三距离区间内时,加载所述小组子场景;其中,所述第一距离区间、所述第一距离区间和所述距离区间为依次减小的距离区间。在该技术方案中,通过相机与任一叶子节点之间的距离远近来选择性加载子场景,具体地,相机与任一叶子节点之间的距离较远时,若加载小组子场景和中组子场景,用户也不易观察,此时加载大组子场景,便于用户观察,当相机与任一叶子节点之间的距离较小时,再加载中组子场景和小组子场景,确保用户看到的位于子场景中的大渲染对象先显示,小渲染对象后显示,在提高子场景的载入速度的同时,更贴合实际的使用需求。在上述任一项技术方案中,优选地,还包括:将每个所述叶子节点对应的子场景中的渲染对象的模型数据以文件形式单独存储,并在存储有所述渲染对象的子场景中保留所述渲染对象的模型数据的索引标识。在该技术方案中,通过以文件形式单独存储渲染对象的模型数据,子场景中仅保留模型数据的索引标识,在需要模型数据时再根据索引标识进行查找,减小了子场景的大小,进一步加快了子场景的载入速度,其中,渲染对象的模型数据包括顶点位置、三角形顶点索引、顶点法向量数据,文件形式可以是二进制形式的文件。在上述任一项技术方案中,优选地,所述树结构包括八叉树结构。在该技术方案中,八叉树结构是一种用于描述三维空间的树状数据结构,八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。在上述任一项技术方案中,优选地,所述目标三维场景包括建筑场景。根据本专利技术的第二方面,提出了一种三维场景管理系统,包括:处理单元,用于预先基于树结构对目标三维场景中的主场景进行划分,以获取与所述树结构的每个叶子节点对应的子场景,其中,所述主场景中存储有所述树结构,每个所述叶子节点对应的子场景中存储有渲染对象,每个所述叶子节点中存储有与其对应的子场景的索引标识;加载单元,用于在加载所述目标三维场景的过程中,基于每个所述叶子节点存储的索引标识查找对应的子场景,并对其进行加载显示。在该技术方案中,通过预先基于树结构对目标三维场景中的主场景进行划分,以获取与树结构的每个叶子节点对应的子场景,其中,主场景中存储有树结构,每个叶子节点中存储有与其对应的子场景的索引标识,在后续加载过程中,基于每个叶子节点存储的索引标识查找对应的子场景以对其进行加载显示本文档来自技高网...
【技术保护点】
一种三维场景管理方法,其特征在于,包括:预先基于树结构对目标三维场景中的主场景进行划分,以获取与所述树结构的每个叶子节点对应的子场景,其中,所述主场景中存储有所述树结构,每个所述叶子节点对应的子场景中存储有渲染对象,每个所述叶子节点中存储有与其对应的子场景的索引标识;在加载所述目标三维场景的过程中,基于每个所述叶子节点存储的索引标识查找对应的子场景,并对其进行加载显示。
【技术特征摘要】
1.一种三维场景管理方法,其特征在于,包括:预先基于树结构对目标三维场景中的主场景进行划分,以获取与所述树结构的每个叶子节点对应的子场景,其中,所述主场景中存储有所述树结构,每个所述叶子节点对应的子场景中存储有渲染对象,每个所述叶子节点中存储有与其对应的子场景的索引标识;在加载所述目标三维场景的过程中,基于每个所述叶子节点存储的索引标识查找对应的子场景,并对其进行加载显示。2.根据权利要求1所述的三维场景管理方法,其特征在于,还包括:基于所述主场景中的渲染对象的总个数和所述主场景的总尺寸,确定每个所述叶子节点的容量。3.根据权利要求1所述的三维场景管理方法,其特征在于,在任一所述叶子节点对应有多个子场景的情况下,所述三维场景管理方法还包括:获取所述多个子场景中每个子场景的渲染对象的包围盒参考值和任一所述叶子节点的包围盒参考值;计算所述每个子场景的渲染对象的包围盒参考值和任一所述叶子节点的包围盒参考值的比例值;将所述多个子场景中比例值处于第一预设范围内的子场景作为大组子场景;将所述多个子场景中比例值处于第二预设范围内的子场景作为中组子场景;将所述多个子场景中比例值处于第三预设范围内的子场景作为小组子场景;其中,所述每个子场景的渲染对象的包围盒参考值和任一所述叶子节点的包围盒参考值均包括:包围盒的体积或包围盒的最长边。4.根据权利要求3所述的三维场景管理方法,其特征在于,还包括:在加载任一所述叶子节点对应的所述多个子场景的过程中,当任一所述叶子节点处于视锥裁剪范围外时,释放所述多个子场景;当任一所述叶子节点处于视锥裁剪范围内时,根据相机与任一所述叶子节点之间的距离,选择性对所述多个子场景进行加载。5.根据权利要求4所述的三维场景管理方法,其特征在于,所述根据相机与任一所述叶子节点之间的距离,选择性对所述多个子场景进行加载的步骤,具体包括:在所述距离处于第一距离区间内时,加载所述大组子场景;在所述距离处于第二距离区间内时,加载所述中组子场景;在所述距离处于第三距离区间内时,加载所述小组子场景;其中,所述第一距离区间、所述第一距离区间和所述距离区间为依次减小的距离区间。6.根据权利要求1至5中任一项所述的三维场景管理方法,其特征在于,还包括:将每个所述叶子节点对应的子场景中的渲染对象的模型数据以文件形式单独存储,并在存储有所述渲染对象的子场景中保留所述渲染对象的模型数据的索引标识。7.根据权利要求1至5中任一项所述的三维场景管理方法,其特征在于,所述树结构包括八叉树结构。8.根据权利要求1至5中任一项所述的三维场景管理方法,其特征在于,所述目标三维场景包括建筑场景。9.一种三维场景管理系统,其特征在于,包括:处理单元...
【专利技术属性】
技术研发人员:马礼伟,
申请(专利权)人:广联达科技股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。