三维模型加载方法、装置及存储介质与流程

未命名 09-11 阅读:80 评论:0


1.本公开涉及三维纹理和图像处理技术领域,尤其涉及一种三维模型加载方法、装置及存储介质。


背景技术:

2.目前,全球广域网图形函数库(web graphics library,简称为webgl)为在浏览器中显示和开发场景模型(室内空间模型等)提供了技术支持。相关技术中,在浏览器中进行大模型加载时,可以将场景模型切割为一个八叉树或四叉树,以实现在场景模型规模较大时,通过判断相机和模型瓦片的距离来选择是否加载该三维瓦片,进而避免加载整个场景模型所导致的加载缓慢、加载卡顿等问题。但是在用户通过快速操作相机在不同的空间位置之间切换时,相关技术会在相机推进的过程中加载三维场景模型的大量模型瓦片,增加浏览器的内存占用。


技术实现要素:

3.本公开实施例所要解决的一个技术问题是:提供一种三维模型加载方法、装置及存储介质。
4.根据本公开实施例的一个方面,提供一种三维模型加载方法,应用于使用浏览器客户端浏览三维空间模型的场景,所述方法包括:
5.接收用户触发的快速导览操作,根据所述快速导览操作确定目标区域以及目标区域的包围盒信息;
6.控制相机从当前位置向目标区域所在位置移动,并在移动过程中执行预设操作,其中,所述预设操作包括采集图像、根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片、加载并渲染可见瓦片。
7.在本公开一实施例中,所述根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片,包括:
8.响应于所采集的图像包含所述目标区域的包围盒,计算所述目标区域的包围盒在对应图像中的像素占比;
9.响应于所述像素占比大于预设比例阈值,将相机视锥体所在范围内的各个深度等级的模型瓦片,确定为所述可见瓦片;
10.响应于所述像素占比不大于所述预设比例阈值,将所述相机视锥体所在范围内的深度值小于第一深度值的模型瓦片,确定为所述可见瓦片。
11.在本公开又一实施例中,所述根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片,还包括:
12.响应于所采集的图像不包含所述目标区域的包围盒,将所述相机视锥体所在范围内的深度值小于第二深度值的模型瓦片,确定为所述可见瓦片,其中,所述第一深度值不小于所述第二深度值。
13.在本公开又一实施例中,所述目标区域的包围盒信息包括所述包围盒的坐标信息;
14.响应于所采集的图像包含所述目标区域的包围盒且所述目标区域的包围盒在对应图像中的像素占比大于所述预设比例阈值,所述加载并渲染可见瓦片,包括:
15.根据所述可见瓦片中各可见瓦片的外边框信息,以及所述目标区域的包围盒的坐标信息,确定所述可见瓦片中的待加载瓦片;
16.对所述待加载瓦片执行加载、渲染操作;
17.放弃对所述可见瓦片中除所述待加载瓦片之外的瓦片执行加载、渲染操作。
18.在本公开又一实施例中,所述目标区域的包围盒信息包括包围盒的颜色信息;
19.所述计算所述目标区域的包围盒在对应图像中的像素占比,包括:
20.遍历所述对应图像的至少一个像素点,将所述至少一个像素点中像素值为预设值的像素点确定为目标像素点,所述目标像素点用于指示所述目标区域的包围盒上的像素点;
21.计算所述目标像素点的个数与所述对应图像的总像素点数的比值,得到所述像素占比。
22.在本公开又一实施例中,所述控制相机从当前位置向目标区域所在位置移动,包括:
23.获取三维空间模型的空间地图;
24.根据所述三维空间模型的空间地图,确定从当前位置移动到目标区域所在位置的移动路线;
25.控制所述相机按照所述移动路线从所述当前位置向目标区域所在位置移动。
26.在本公开又一实施例中,所述方法还包括:
27.构建所述三维空间模型中至少一个区域的包围盒,并为所述至少一个区域的包围盒分别设置区别于其他区域的颜色;
28.存储所述至少一个区域的区域标识信息及对应的包围盒信息。
29.根据本公开实施例的又一方面,提供一种三维模型加载装置,应用于使用浏览器客户端浏览三维空间模型的场景,所述装置包括:
30.接收模块,用于接收用户触发的快速导览操作,根据所述快速导览操作确定目标区域以及目标区域的包围盒信息;
31.处理模块,用于控制相机从当前位置向目标区域所在位置移动,并在移动过程中执行预设操作,其中,所述预设操作包括采集图像、根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片、加载并渲染可见瓦片。
32.在本公开一实施例中,所述处理模块包括:
33.第一计算子模块,用于响应于所采集的图像包含所述目标区域的包围盒,计算所述目标区域的包围盒在对应图像中的像素占比;
34.第一确定子模块,用于响应于所述像素占比大于预设比例阈值,将相机视锥体所在范围内的各个深度等级的模型瓦片,确定为所述可见瓦片;
35.第二确定子模块,用于响应于所述像素占比不大于所述预设比例阈值,将所述相机视锥体所在范围内的深度值小于第一深度值的模型瓦片,确定为所述可见瓦片。
36.在本公开又一实施例中,所述处理模块包括:
37.第三确定子模块,用于响应于所采集的图像不包含所述目标区域的包围盒,将所述相机视锥体所在范围内的深度值小于第二深度值的模型瓦片,确定为所述可见瓦片,其中,所述第一深度值不小于所述第二深度值。
38.在本公开又一实施例中,所述目标区域的包围盒信息包括所述包围盒的坐标信息;
39.响应于所采集的图像包含所述目标区域的包围盒且所述目标区域的包围盒在对应图像中的像素占比大于所述预设比例阈值,所述处理模块包括:
40.第四确定子模块,用于根据所述可见瓦片中各可见瓦片的外边框信息,以及所述目标区域的包围盒的坐标信息,确定所述可见瓦片中的待加载瓦片;
41.第一处理子模块,用于对所述待加载瓦片执行加载、渲染操作;
42.第二处理子模块,用于放弃对所述可见瓦片中除所述待加载瓦片之外的瓦片执行加载、渲染操作。
43.在本公开又一实施例中,所述目标区域的包围盒信息包括所述包围盒的颜色信息;
44.所述第一计算子模块包括:
45.第五确定子模块,用于遍历所述对应图像的至少一个像素点,将所述至少一个像素点中像素值为预设值的像素点确定为目标像素点,所述目标像素点用于指示所述目标区域的包围盒上的像素点;
46.第二计算子模块,用于计算所述目标像素点的个数与所述对应图像的总像素点数的比值,得到所述像素占比。
47.在本公开又一实施例中,所述处理模块包括:
48.获取子模块,用于获取三维空间模型的空间地图;
49.第六确定子模块,用于根据所述三维空间模型的空间地图,确定从当前位置移动到目标区域所在位置的移动路线;
50.移动子模块,用于控制所述相机按照所述移动路线从所述当前位置向目标区域所在位置移动。
51.在本公开又一实施例中,所述装置还包括:
52.构建模块,用于构建所述三维空间模型中至少一个区域的包围盒,并为所述至少一个区域的包围盒分别设置区别于其他区域的颜色;
53.存储模块,用于存储所述至少一个区域的区域标识信息及对应的包围盒信息。
54.根据本公开实施例的再一方面,提供一种电子设备,应用于使用浏览器客户端浏览三维空间模型的场景,该电子设备包括:
55.存储器,用于存储计算机程序;
56.处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述三维模型加载方法。
57.根据本公开实施例的再一方面,提供一种计算机可读存储介质,应用于使用浏览器客户端浏览三维空间模型的场景,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述三维模型加载方法。
58.基于本公开上述实施例提供的三维模型加载方法、装置以及存储介质,应用于使用浏览器客户端浏览三维空间模型的场景,接收到用户触发的快速导览操作,根据快速导览操作确定用户想要导览的目标区域以及目标区域的包围盒信息,控制相机从当前位置向目标区域所在位置移动,并在移动过程中执行预设操作,其中,所述预设操作包括采集图像、根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片、加载并渲染可见瓦片。本公开技术方案可以在用户触发快速导览到目标区域的操作时,在相机推进到目标区域的过程中,根据相机所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片,例如,在图像不包含目标区域的包围盒时,只确定小于第一深度值的模型瓦片,实现在相机推进过程中避免加载太多模型瓦片所导致的浪费浏览器内存资源的问题。
59.下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
60.构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
61.参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
62.图1为本公开的三维模型加载方法的一个实施例的流程图;
63.图2a为本公开的三维模型加载方法的相机推进过程中确定不同深度等级的可见瓦片的实施例的流程图;
64.图2b为本公开的图2a所示实施例中步骤202的具体实现流程图;
65.图3为本公开的三维模型加载方法的加载并渲染可见瓦片的实施例的流程图;
66.图4为本公开的三维模型加载方法的控制相机从当前位置向目标区域所在位置移动的实施例的流程图;
67.图5为本公开的三维模型加载装置的一个实施例的结构示意图;
68.图6为本公开的三维模型加载装置的又一个实施例的结构示意图;
69.图7为本公开一示意性实施例提供的电子设备的结构图。
具体实施方式
70.现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
71.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
72.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
73.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
74.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
75.本公开实施例可以应用于计算机系统/服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器等电子设备一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
76.计算机系统/服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
77.本公开概述
78.本公开实施例提供的技术方案应用于三维模型渲染、展示场景中,为了解决在用户快速导览到目标区域时在相机推进过程中会加载大量的模型瓦片的问题,本公开提供一种三维模型加载技术方案,实现在相机推进到目标区域的过程中,根据相机所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片,实现在相机推进过程中避免加载太多模型瓦片所导致的浪费浏览器内存资源的问题。
79.示例性实施例
80.图1为本公开的三维模型加载方法的一个实施例的流程图;该三维模型加载方法可以应用在电子设备(如移动终端等)上。如图1所示,该三维模型加载方法包括以下步骤:
81.在步骤101中,接收用户触发的快速导览操作,根据所述快速导览操作确定目标区域以及目标区域的包围盒信息。
82.在一实施例中,为了实现本公开实施例的技术方案,可以预先设置一个快速导览功能模块,由此用户通过虚拟现实技术(virtual reality,简称为vr)游览三维空间模型时,可通过界面按钮或者操作命令等触发快速导览操作。
83.例如,在一个酒店举办年会等活动时,参加活动的人通过浏览器客户端游览酒店三维空间模型时,可能想快速导览到活动室,此时可通过快速导览操作设置要导览的目标区域,浏览器接收到用户触发的快速导览操作时,即可根据快速导览操作确定目标区域以及目标区域的包围盒信息。
84.在一实施例中,目标区域为用户想要导览的空间模型中的一个区域,例如,会议室、卧室等。
85.在一实施例中,目标区域的包围盒信息可以包括目标区域的包围盒的颜色信息、坐标信息以及区域标识信息。
86.其中,可以预先在浏览器客户端中根据每个三维空间模型中的各个区域的大小和位置,为每个区域构建一个包围盒。可以构建三维空间模型中至少一个区域的包围盒,并为至少一个区域中各区域的包围盒分别设置区别于其他区域的颜色;存储至少一个区域的区域标识信息及对应的包围盒信息。具体实现时,可以在三维空间模型中通过人工选取的方式,为每个区域在长、宽、高三个方向上绘制一个立方体包围盒bounding,得到一个区域在
空间中的8个顶点的坐标信息;而通过预先设置包围盒的颜色信息,例如,设置会议室的包围盒的颜色为rgb(255,0,0),则包围盒的颜色为正红色,如果用户选定的目标区域为会议室,则相机在三维空间模型中推进时,可以根据会议室的包围盒的颜色信息,在采集到的图像信息快速识别出当前是否可以看到会议室。创建一个区域的包围盒之后,即可在存储数据结构中存储该包围盒的区域标识信息和包围盒信息。
87.在步骤102中,控制相机从当前位置向目标区域所在位置移动,并在移动过程中执行预设操作,其中,所述预设操作包括采集图像、根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片、加载并渲染可见瓦片。
88.在一实施例中,可以根据三维空间模型的空间地图确定从当前位置到目标区域所在位置的移动路线,进而控制相机按照移动路线逐步推进到目标区域所在位置。
89.在一实施例中,在相机按照移动路线逐步推进到目标区域所在位置的过程中,可以在每一帧采集图像,并识别所采集的图像中是否包含目标区域的包围盒,根据识别结果确定每一帧的不同深度等级的可见瓦片,例如,在相机采集的图像中不包含目标区域的包围时,可以判定当前距离目标区域还比较远,可以只确定、加载和渲染深度等级较低的可见瓦片,也即,不加载精细的瓦片,只加载和渲染最基础的瓦片,由此可以大量减少相机推进过程中的瓦片的加载量。
90.本公开实施例中,可在后台离线生产三维模型的瓦片数据,并将瓦片数据按照树形数据结构进行组织,该树形结构可称为lod树。
91.上述步骤101~102,在接收到用户触发的快速导览操作时,根据快速导览操作确定用户想要导览的目标区域以及目标区域的包围盒信息,控制相机从当前位置向目标区域所在位置移动,并在移动过程中执行预设操作,其中,所述预设操作包括采集图像、根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片、加载并渲染可见瓦片。本公开技术方案可以在用户触发快速导览到目标区域的操作时,在相机推进到目标区域的过程中,根据相机所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片,例如,在图像不包含目标区域的包围盒时,只确定小于第一深度值的模型瓦片,实现在相机推进过程中避免加载太多模型瓦片所导致的浪费浏览器内存资源的问题。
92.为了更好地说明本公开的三维模型加载的方案,下面用另一个实施例说明。
93.图2a为本公开的三维模型加载方法的相机推进过程中确定不同深度等级的可见瓦片的实施例的流程图,图2b为本公开的图2a所示实施例中步骤202的具体实现流程图;本实施例以通过盒子裁切工具实现三维模型加载为例进行示例性说明,如图2a所示,包括如下步骤:
94.在步骤201中,确定所采集的图像是否包含目标区域的包围盒。
95.在一实施例中,由于在构建各个区域的包围盒时,为包围盒设置了不同的颜色信息,例如,为卧室的包围盒设置了正红色,则在相机推进过程中,可以在每一帧采集到图像并分析图像采集的图像中是否包含正红色,也即像素值为(255,0,0)为像素点,如果包含,则可确定所采集的图像中包含目标区域的包围盒,如果不包含,则说明所采集的图像中不包含目标区域的包围盒。
96.在一实施例中,在确定所采集的图像中包含目标区域的包围盒时,可执行步骤202;在确定所采集的图像中不包含目标区域的包围盒时,可执行步骤205。
97.在步骤202中,响应于所采集的图像包含所述目标区域的包围盒,计算所述目标区域的包围盒在对应图像中的像素占比。
98.在一实施例中,计算目标区域的包围盒在对应图像中的像素占比时,可参见图2b所示实施例,包括以下步骤221和步骤222:
99.在步骤221中,遍历所述对应图像的至少一个像素点,将所述至少一个像素点中像素值为预设值的像素点确定为目标像素点,所述目标像素点用于指示所述目标区域的包围盒上的像素点。
100.在一实施例中,可以逐一获取图像中各个像素点的像素值,并将像素值为预设值的像素点确定为目标像素点。其中,预设值为目标区域的包围盒的颜色信息。
101.需要说明的是,虽然构建并为包围盒设置了区别于其他区域的颜色信息,但是在渲染时是采用离屏渲染的方式,不会在用户的浏览器客户端中显示纯色的包围盒,因此不影响用户游览三维空间模型。
102.在步骤222中,计算所述目标像素点的个数与所述对应图像的总像素点数的比值,得到所述像素占比。
103.在一实施例中,在像素占比大于预设比例阈值时,可执行步骤203;在像素占比不大于预设比例阈值时,可执行步骤204。
104.在步骤203中,响应于所述像素占比大于预设比例阈值,将相机视锥体所在范围内的各个深度等级的模型瓦片,确定为所述可见瓦片。
105.在一实施例中,预设比例阈值可以为一个预先设定的值,例如可以为50%。预设比例阈值可以用于衡量当前位置是否距离目标区域足够近,指示用户是否已经将进入一个适合观察目标区域的位置。在像素占比大于预设比例阈值时,可以认为此刻用户已经进入一个适合观察目标区域的位置,可以根据lod树的可见性判断算法,确定出相机视锥体所在范围内的各个深度等级的模型瓦片。其中,根据lod树的可见性判断算法确定可见瓦片的算法可以采用相关技术中的算法,本公开实施例对此不作限定。
106.在一实施例中,可以根据相机的相关参数,包括相机视角、相机与瓦片的距离等,确定出相机视锥体,将相机视锥体所在范围内的各个深度等级的模型瓦片确定为可见瓦片。
107.在一实施例中,可以相关技术的多细节层次树可见性判断算法,计算出当前相机的相机视锥体范围内的模型瓦片,得到可见瓦片,本公开技术方案并没有对此作限定。
108.在一实施例中,在像素占比大于预设比例阈值时,由于可以认为用户已经进入一个适合观察目标区域的位置,因此可将确定出的所有深度等级的瓦片都确定为可见瓦片。例如,按照lod树的可见性判断算法计算出可见瓦片包括11个,深度分别为1、2、2、2、3、3、3、3、4、4、4,则这些深度等级的瓦片都为当前帧的可见瓦片。瓦片的深度等级可以指示模型瓦片的细化程度。
109.在步骤204中,响应于所述像素占比不大于所述预设比例阈值,将所述相机视锥体所在范围内的深度值小于第一深度值的模型瓦片,确定为所述可见瓦片。
110.在一实施例中,在像素占比不大于预设比例阈值,例如像素占比为20%时,可以认为目标区域距离用户还有一定的距离,可以只将相机视锥体所在范围内的深度值小于第一深度值的模型瓦片,确定为可见瓦片。例如,第一深度值为3,则可深度值小于3(也即,深度
为1和2)的模型瓦片,确定为可见瓦片。则在按照lod树的可见性判断算法计算出模型瓦片包括11个,深度分别为1、2、2、2、3、3、3、3、4、4、4时,则只将其中的深度为1和2的4个模型瓦片确定为可见瓦片,而将模型瓦片细化程度较高的深度等级为3和4的瓦片不作为可见瓦片。由此,可以减少模型加载和渲染的数量。
111.在步骤205中,响应于所采集的图像不包含所述目标区域的包围盒,将所述相机视锥体所在范围内的深度值小于第二深度值的模型瓦片,确定为所述可见瓦片,其中,所述第一深度值不小于所述第二深度值。
112.在一实施例中,在所采集的图像不包含所述目标区域的包围盒时,可以认为目标区域距离用户还比较远,可以只将相机视锥体所在范围内的深度值小于第二深度值的模型瓦片,确定为可见瓦片。例如,第二深度值为2,则可深度值小于2(也即,深度为1)的模型瓦片,确定为可见瓦片。则在按照lod tree的可见性判断算法计算出模型瓦片包括11个,深度分别为1、2、2、2、3、3、3、3、4、4、4时,则只将其中的深度为1的1个模型瓦片确定为可见瓦片,而将模型瓦片细化程度较高的其他深度等级的瓦片不作为可见瓦片。由此,可以进一步减少模型加载和渲染的数量。
113.在一实施例中,通过设置第一深度值不小于第二深度值,可以实现距离目标区域越远,所确定的可见瓦片的细化程度越低一些,只显示最基础的瓦片信息,起到导览作用即可。
114.需要说明的是,本公开实施例中步骤201~步骤205提供的相机推进过程中确定可见瓦片的方式是一种示例性说明,也可以在所采集的图象不包含目标区域的包围盒以及虽然包含目标区域的包围盒但是像素占比不大于预设比例阈值时,均只将深度级别最低的模型瓦片作为可见瓦片,凡是在相机推进过程中通过限定不同等级深度的瓦片的方式来减少所要加载的模型瓦片的技术方案均在本公开技术方案的保护范围内。
115.通过上述步骤201~步骤205,可以在相机推进过程中,根据相机所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片,例如,在图像不包含目标区域的包围盒时,只确定小于第一深度值的模型瓦片,在图像包含目标区域的包围盒但是包围盒的像素占比不大于预设比例阈值时,只确定小于第二深度值的可见瓦片,由此实现在相机推进过程中距离所要导览的目标区域较远时只加载低深度的瓦片,避免加载太多模型瓦片所导致的浪费浏览器内存资源的问题。
116.图3为本公开的三维模型加载方法的加载并渲染可见瓦片的实施例的流程图;本实施例以所采集的图像包含目标区域的包围盒且所述目标区域的包围盒在对应图像中的像素占比大于预设比例阈值时如何加载并渲染可见瓦片为例进行示例性说明,如图3所示,包括如下步骤:
117.在步骤301中,根据所述可见瓦片中各可见瓦片的外边框信息,以及所述目标区域的包围盒的坐标信息,确定所述可见瓦片中的待加载瓦片。
118.在一实施例中,在离线生产三维模型的瓦片数据,并将瓦片数据按照lod树进行组织时,lod树中每个节点的节点信息中记录了瓦片的深度层级、瓦片的位姿信息以及网格mesh数据等,根据可见瓦片的位姿信息和网格mesh数据,可以确定可见瓦片的外边框信息,而根据可见瓦片的外边框信息和目标区域的包围盒的坐标信息,可以确定出与目标区域有交集的待加载瓦片。例如,所采集的图像包含目标区域的包围盒且所述目标区域的包围盒
在对应图像中的像素占比大于预设比例阈值时,确定出可见瓦片包括瓦片1、瓦片2、瓦片3、瓦片4、瓦片5、瓦片6、瓦片7、瓦片8、瓦片9、瓦片10,通过每个瓦片的外边框信息与目标区域的包围盒的坐标信息,可以计算出瓦片9和瓦片10与目标区域完全不存在交集,而其他瓦片则均与目标区域存在交集,则待加载瓦片为瓦片1、瓦片2、瓦片3、瓦片4、瓦片5、瓦片6、瓦片7、瓦片8。
119.在一实施例中,根据每个瓦片的位姿信息、mesh数据,以及包围盒的坐标信息,可以通过相关技术确定瓦片与包围盒是否相交,这里不详述。
120.在步骤302中,对所述待加载瓦片执行加载、渲染操作。
121.在步骤303中,放弃对所述可见瓦片中除所述待加载瓦片之外的瓦片执行加载、渲染操作。
122.通过上述步骤301~步骤303,实现了在所采集的图像包含目标区域的包围盒且所述目标区域的包围盒在对应图像中的像素占比大于预设比例阈值时,放弃对可见瓦片中与目标区域不存在交集的瓦片,可以进一步减少浏览器加载的瓦片的数量,避免加载目标区域之外的瓦片,进而避免浏览器内存资源浪费的问题。
123.图4为本公开的三维模型加载方法的控制相机从当前位置向目标区域所在位置移动的实施例的流程图,本实施例以如何控制相机从当前位置向目标区域所在位置移动为例进行示例性说明,如图3所示,包括如下步骤:
124.在步骤401中,获取三维空间模型的空间地图。
125.在一实施例中,三维空间模型的空间地图可以指示三维空间的结构数据,例如,可以为户型图、楼层结构图等。
126.在获取空间地图时,可直接查询本地存储的三维空间模型的空间地图;还可以访问第三方服务器,例如链家网对应的服务器获取家庭户型图;也即,本公开可通过多种方式,灵活地获取空间地图。
127.在步骤402中,根据所述三维空间模型的空间地图,确定从当前位置移动到目标区域所在位置的移动路线。
128.在一实施例中,根据三维空间模型的空间地图,可以通过最短路径搜索算法,计算出从当前位置移动到目标区域所在位置的移动路线。如果有多条移动路线,则可选择最优的、路径最短的移动路线。
129.在步骤403中,控制所述相机按照所述移动路线从所述当前位置向目标区域所在位置移动。
130.通过上述步骤401~步骤403,在确定目标区域所在位置之后,可根据三维空间模型的空间地图确定相机推进至目标区域所在位置的移动路线,然后控制相机从当前位置推进至目标区域所在位置,实现了快速导览的功能。
131.与前述三维模型加载方法的实施例相对应,本公开还提供了三维模型加载装置对应的实施例。
132.图5为本公开的三维模型加载装置的一个实施例的结构示意图,该装置应用在电子设备(如计算机系统、服务器)上,如图5所示,该装置包括:
133.接收模块51,用于接收用户触发的快速导览操作,根据所述快速导览操作确定目标区域以及目标区域的包围盒信息;
134.处理模块52,用于控制相机从当前位置向目标区域所在位置移动,并在移动过程中执行预设操作,其中,所述预设操作包括采集图像、根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片、加载并渲染可见瓦片。
135.图6为本公开的三维模型加载装置的又一个实施例的结构示意图,如图6所示,在图5所示实施例的基础上,在一实施例中,所述处理模块52包括:
136.第一计算子模块520,用于响应于所采集的图像包含所述目标区域的包围盒,计算所述目标区域的包围盒在对应图像中的像素占比;
137.第一确定子模块521,用于响应于所述像素占比大于预设比例阈值,将相机视锥体所在范围内的各个深度等级的模型瓦片,确定为所述可见瓦片;
138.第二确定子模块522,用于响应于所述像素占比不大于所述预设比例阈值,将所述相机视锥体所在范围内的深度值小于第一深度值的模型瓦片,确定为所述可见瓦片。
139.在一实施例中,所述处理模块52包括:
140.第三确定子模块523,用于响应于所采集的图像不包含所述目标区域的包围盒,将所述相机视锥体所在范围内的深度值小于第二深度值的模型瓦片,确定为所述可见瓦片,其中,所述第一深度值不小于所述第二深度值。
141.在一实施例中,所述目标区域的包围盒信息包括所述包围盒的坐标信息;
142.响应于所采集的图像包含所述目标区域的包围盒且所述目标区域的包围盒在对应图像中的像素占比大于所述预设比例阈值,所述处理模块52包括:
143.第四确定子模块524,用于根据所述可见瓦片中各可见瓦片的外边框信息,以及所述目标区域的包围盒的坐标信息,确定所述可见瓦片中的待加载瓦片;
144.第一处理子模块525,用于对所述待加载瓦片执行加载、渲染操作;
145.第二处理子模块526,用于放弃对所述可见瓦片中除所述待加载瓦片之外的瓦片执行加载、渲染操作。
146.在一实施例中,所述目标区域的包围盒信息包括所述包围盒的颜色信息;
147.所述第一计算子模块520包括:
148.第五确定子模块5201,用于遍历所述对应图像的至少一个像素点,将所述至少一个像素点中像素值为预设值的像素点确定为目标像素点,所述目标像素点用于指示所述目标区域的包围盒上的像素点;
149.第二计算子模块5202,用于计算所述目标像素点的个数与所述对应图像的总像素点数的比值,得到所述像素占比。
150.在一实施例中,所述处理模块52包括:
151.获取子模块527,用于获取三维空间模型的空间地图;
152.第六确定子模块528,用于根据所述三维空间模型的空间地图,确定从当前位置移动到目标区域所在位置的移动路线;
153.移动子模块529,用于控制所述相机按照所述移动路线从所述当前位置向目标区域所在位置移动。
154.在一实施例中,所述装置还包括:
155.构建模块53,用于构建所述三维空间模型中至少一个区域的包围盒,并为所述至少一个区域的包围盒分别设置区别于其他区域的颜色;
156.存储模块54,用于存储所述至少一个区域的区域标识信息及对应的包围盒信息。
157.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
158.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
159.下面,参考图7来描述根据本公开实施例的电子设备,其中可以集成本公开实施例实现方法的装置。图7为本公开一示意性实施例提供的电子设备的结构图,如图7所示,电子设备包括一个或多个处理器71、一个或多个计算机可读存储介质的存储器72,以及存储在存储器上并可在处理器上运行的计算机程序。在执行存储器72的程序时,可以实现上述三维模型加载方法。
160.具体的,在实际应用中,该电子设备还可以包括输入装置73、输出装置74等部件,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。本领域技术人员可以理解,图7中示出的电子设备的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的部件,或者某些部件,或者不同的部件布置。其中:
161.处理器71可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,通过运行或执行存储在存储器72内的软件程序和/或模块,以及调用存储在存储器72内的数据,执行各种功能和处理数据,从而对该电子设备进行整体监控。
162.存储器72可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器71可以运行程序指令,以实现上文的本公开的各个实施例的三维模型加载方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
163.输入装置73可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆,光学或轨迹球信号输入。
164.输出装置74可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置74可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
165.电子设备还可以包括给各个部件供电的电源,可以通过电源管理系统与处理器71逻辑相连,从而通过电源管理系统实现管理充电、放电,以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
166.当然,为了简化,图7中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等组件。除此之外,根据具体应用情况,电子设备还可以包括
任何其他适当的组件。
167.除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的三维模型加载方法中的步骤。
168.所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
169.此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的三维模型加载方法中的步骤。
170.所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
171.以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
172.本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
173.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
174.可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
175.本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描
述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。

技术特征:
1.一种三维模型加载方法,其特征在于,应用于使用浏览器客户端浏览三维空间模型的场景,所述方法包括:接收用户触发的快速导览操作,根据所述快速导览操作确定目标区域以及目标区域的包围盒信息;控制相机从当前位置向目标区域所在位置移动,并在移动过程中执行预设操作,其中,所述预设操作包括采集图像、根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片、加载并渲染可见瓦片。2.根据权利要求1所述的方法,其特征在于,所述根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片,包括:响应于所采集的图像包含所述目标区域的包围盒,计算所述目标区域的包围盒在对应图像中的像素占比;响应于所述像素占比大于预设比例阈值,将相机视锥体所在范围内的各个深度等级的模型瓦片,确定为所述可见瓦片;响应于所述像素占比不大于所述预设比例阈值,将所述相机视锥体所在范围内的深度值小于第一深度值的模型瓦片,确定为所述可见瓦片。3.根据权利要求2所述的方法,其特征在于,所述根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片,还包括:响应于所采集的图像不包含所述目标区域的包围盒,将所述相机视锥体所在范围内的深度值小于第二深度值的模型瓦片,确定为所述可见瓦片,其中,所述第一深度值不小于所述第二深度值。4.根据权利要求2所述的方法,其特征在于,所述目标区域的包围盒信息包括所述包围盒的坐标信息;响应于所采集的图像包含所述目标区域的包围盒且所述目标区域的包围盒在对应图像中的像素占比大于所述预设比例阈值,所述加载并渲染可见瓦片,包括:根据所述可见瓦片中各可见瓦片的外边框信息,以及所述目标区域的包围盒的坐标信息,确定所述可见瓦片中的待加载瓦片;对所述待加载瓦片执行加载、渲染操作;放弃对所述可见瓦片中除所述待加载瓦片之外的瓦片执行加载、渲染操作。5.根据权利要求2所述的方法,其特征在于,所述目标区域的包围盒信息包括所述包围盒的颜色信息;所述计算所述目标区域的包围盒在对应图像中的像素占比,包括:遍历所述对应图像的至少一个像素点,将所述至少一个像素点中像素值为预设值的像素点确定为目标像素点,所述目标像素点用于指示所述目标区域的包围盒上的像素点;计算所述目标像素点的个数与所述对应图像的总像素点数的比值,得到所述像素占比。6.根据权利要求1所述的方法,其特征在于,所述控制相机从当前位置向目标区域所在位置移动,包括:获取三维空间模型的空间地图;根据所述三维空间模型的空间地图,确定从当前位置移动到目标区域所在位置的移动
路线;控制所述相机按照所述移动路线从所述当前位置向目标区域所在位置移动。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:构建所述三维空间模型中至少一个区域的包围盒,并为所述至少一个区域的包围盒分别设置区别于其他区域的颜色;存储所述至少一个区域的区域标识信息及对应的包围盒信息。8.一种三维模型加载装置,其特征在于,应用于使用浏览器客户端浏览三维空间模型的场景,所述装置包括:接收模块,用于接收用户触发的快速导览操作,根据所述快速导览操作确定目标区域以及目标区域的包围盒信息;处理模块,用于控制相机从当前位置向目标区域所在位置移动,并在移动过程中执行预设操作,其中,所述预设操作包括采集图像、根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片、加载并渲染可见瓦片。9.一种电子设备,其特征在于,应用于使用浏览器客户端浏览三维空间模型的场景,包括:存储器,用于存储计算机产品;处理器,用于执行所述存储器中存储的计算机产品,且所述计算机产品被执行时,实现上述权利要求1-7任一所述的方法。10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,应用于使用浏览器客户端浏览三维空间模型的场景,所述计算机指令被处理器执行时,实现上述权利要求1-7任一所述的方法。

技术总结
本公开实施例公开了一种三维模型加载方法、装置及存储介质,其中,方法包括:接收用户触发的快速导览操作,根据所述快速导览操作确定目标区域以及目标区域的包围盒信息;控制相机从当前位置向目标区域所在位置移动,并在移动过程中执行预设操作,其中,所述预设操作包括采集图像、根据所采集的图像是否包含目标区域的包围盒确定不同深度等级的可见瓦片、加载并渲染可见瓦片。本公开实施例可以在快速导览操作中,推进相机到目标区域的过程中只加载基础的瓦片,避免加载太多模型瓦片所导致的浪费浏览器内存资源的问题。浏览器内存资源的问题。浏览器内存资源的问题。


技术研发人员:李沛伦
受保护的技术使用者:如你所视(北京)科技有限公司
技术研发日:2023.06.19
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐