一种基于WebGL的大批量倾斜摄影测量三维模型加载方法

文档序号:9667437阅读:1920来源:国知局
一种基于WebGL的大批量倾斜摄影测量三维模型加载方法
【技术领域】
[0001]本发明涉及数字地球模型渲染技术,尤其涉及一种基于WebGL的大批量倾斜摄影测量三维模型加载方法。
【背景技术】
[0002]随着HTML5规范逐渐深入人心,基于HTML5的应用开始火热起来,利用HTML5技术来渲染三维数字城市模型也成为数字地球、数字城市开发者的一个热点。然而,由于HTML5种所使用的WebGL技术使用JavaScript绑定OpenGL ES 2.0进行三维模型渲染,因此在渲染效率上很难与桌面系统特别是原生态的OpenGL程序相提并论。而另一方面,随着倾斜摄影测量技术的发展,现在的数字城市中已开始大量采用这种清晰、逼真且建模自动化程度较高的三维模型。但与传统主要通过手动建模的数字城市相比,基于倾斜摄影测量模型构建的数字城市模型数量更多、渲染任务量更大。无论是WebGL的渲染效率还是Internet上的数据下载速度暂时都受到制约的情况下,如何对大批量倾斜摄影测量模型的渲染/加载策略/方法进行改进,使之能满足通过浏览器进行数字城市的顺利加载、满足互联网上的三维模型浏览需要就成为一个亟待解决的重要问题。

【发明内容】

[0003]本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于WebGL的大批量倾斜摄影测量三维模型加载方法。
[0004]本发明解决其技术问题所采用的技术方案是:一种基于WebGL的大批量倾斜摄影测量三维模型加载方法,包括以下步骤:
[0005]1)将所有倾斜摄影测量三维模型按照缩放级别进行划分;
[0006]2)对分组后的倾斜摄影测量三维模型按照缩放级别和经玮度范围进行数据分片,每一个分片保存为一个分片模型;并保存以下分片信息:分片等级;每一等级的模型分片数;每一个模型分片所对应的坐标范围;
[0007]3)对分片模型文件进行加载分组,分组步骤如下:
[0008]3.1)确定整个数字城市将要被加载的缩放等级;
[0009]3.2)确定该等级下的分组数;所述每个缩放等级下的分组数为事先设定;
[0010]3.3)确定该等级下的每个分组的区域范围,根据分组的区域范围确定每个分组中包括的分片模型;
[0011]4)批量三维模型动态加载;
[0012]4.1)由当前数字城市场景浏览的摄像机参数,计算摄像机的范围以确定需要加载的模型分组等级;
[0013]4.2)由当前摄像机的中心点位置,与当前加载等级的分组范围比较,判断其落入的分组,加载相应分组所对应的全部三维模型;
[0014]4.3)当摄像机发生缩放操作时,计算将要加载的模型分组等级,如果与原等级不同,判断当前已加载的是否为最大模型分组等级且模型加载量超过60%,若是则摄像机的后续缩放过程中将不再删除已经加载的三维模型;否则删除已加载的三维模型,转而加载新的等级下的分组模型;
[0015]4.4)当摄像机发生移动操作时,则依据步骤4.2)判断需要加载的模型分组是否已经被加载了,如果没有则进行加载。
[0016]按上述方案,所述步骤2)中分片工具为三维处理软件。
[00?7] 按上述方案,所述步骤2)中分片信息记录在LODTree.xml中。
[0018]按上述方案,所述步骤3)中由读入的模型分片信息制定分组策略,主要遵循的原则有:每一分组的切片模型数量为7至15个;每一分组中的切片模型相邻;不同等级的模型分组所对应的切片模型数有明显的差别;最低等级的所有模型切片只对应一个分组。
[0019]本发明产生的有益效果是:本发明通过使用一种模型的分组动态加载策略使得大批量的倾斜摄影测量三维模型可以无插件的呈现/渲染在Web浏览器上,在本发明基础上可实现数字城市的跨平台展示。
【附图说明】
[0020]下面将结合附图及实施例对本发明作进一步说明,附图中:
[0021]图1是本发明中实施例的模型分组方法流程图;
[0022]图2是本发明实施数字城市批量模型动态加载方法流程图。
【具体实施方式】
[0023]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0024]如图1所示,一种基于WebGL的大批量倾斜摄影测量三维模型加载方法,包括以下步骤:
[0025]1)将所有倾斜摄影测量三维模型按照缩放级别进行划分;
[0026]2)对分组后的倾斜摄影测量三维模型按照缩放级别和经玮度范围进行数据分片,每一个分片保存为一个分片模型;并保存以下分片信息:分片等级;每一等级的模型分片数;每一个模型分片所对应的坐标范围;
[0027]3)读入模型分片信息(LODTree.xml);
[0028]由模型分片所产生的LODTree.xml文件中读入模型分片信息来决定如何进行模型分组;
[0029]这些分片信息主要包括,(1)分片等级;(2)每一等级的模型分片数;(3)每一个模型分片所对应的坐标范围及其模型数据路径。
[0030]4)分组策略制定;
[0031]由读入的模型分片信息制定分组策略,主要遵循的原则有:
[0032]a)每一分组的切片模型数量不宜太多,但也不宜太少。最好在10个左右。
[0033]b)每一分组中的切片模型尽量相邻,以便于从切片模型坐标范围(XY方向)中计算到分组范围(XY方向坐标范围)。
[0034]C)模型分组的等级之间所对应的切片模型数尽量有比较明显的差别。
[0035]D)最低等级的模型分组数设置为1。
[0036]5)模型拷贝
[0037]按照4)所确定的分组等级数建立文件夹如(0,1,2…分别代表等级0,1,2等),分别将各个等级所对应的分片模型拷贝到这些文件夹中。为了达到Webgl对模型渲染的需要,这些模型需要统一转换成bgltf格式。
[0038]6)分组等级范围及最大等级模型数记录
[0039]为了确定摄像机进行缩放时进入到的是哪一个分组等级。需要记录下每个分组等级中的视野范围。该范围计算就是取该等级下的所有切片分组的XY坐标范围,计算其平均值并记录下来。对于最大等级的模型分组,需要记录下该等级下的所有模型的个数。
[0040]7)模型分组信息记录
[0041 ]以CZML文件格式记录下所有模型分组信息。
[0042]其中
[0043]CZML文件名为该模型分组对应的经玮度范围。如122.955_39.675_122.984_39.682.czml代表该分组的经玮度范围为经度(122.955-122.984),玮度(39.675-39.682)。
[0044]CZML中记录了组成该分组的所有模型分片坐标信息和对应的模型路径。文件采用j son 格式记录这些信息,形如:[{post1n: ,model: },{post 1n: ,model:} , {post1n:,model:}…]。posit1n代表模型显示位置坐标,model代表模型路径。本发明中对批量倾斜摄影测量模型分组方法见图1。
[0045]8)批量模型动态加载步骤,本发明中基于Webgl的批量倾斜摄影测量模型动态加载方法见图2;
[0046]8.1)初始加载时加载最低等级的模型分组中的模型,由于最低等级中的模型分组数为1,也就是所有该等级下的模型都被加载出来;
[0047]8.2)当用户进行缩放操作时,对用户当前的摄像机参数进行计算并与步骤6)中记录的等级范围对比,判断其是否进入了另一个等级;
[0048]8.3)如果在8.2中得到的加载等级与之前的等级不等则移除当前所加载的所有模型,转而加载新的加载等级下的模型;
[0049]8.4)在步骤8.3)中如果进行缩放操作前,已经加载到最大等级的模型了。则需要判断该等级模型数加载量是否已经超过了 60%。如果已经超过了则不再移除这些已经加载了的模型。
[0050]8.5)在用户的移动操作时,计算摄像机中心落在当前等级的哪一个模型分组范围内。如果该范围所对应的模型分组没有被加载,则将其进行加载,并将该范围信息存储到已加载模型分组范围集合中。由于每个模型分组的范围被记录在其文件名上,所以可以将这些分组模型名进行索引,就可以快速判断出摄像机中心落在哪个矩形范围内。
[0051]应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【主权项】
1.一种基于WebGL的大批量倾斜摄影测量三维模型加载方法,其特征在于,包括以下步骤: 1)将所有倾斜摄影测量三维模型按照缩放级别进行划分; 2)对分组后的倾斜摄影测量三维模型按照缩放级别和经玮度范围进行数据分片,每一个分片保存为一个分片模型;并保存以下分片信息:分片等级;每一等级的模型分片数;每一个模型分片所对应的坐标范围; 3 )对分片模型文件进行加载分组,分组步骤如下: 3.1)确定整个数字城市将要被加载的缩放等级; 3.2)确定该等级下的分组数;所述每个缩放等级下的分组数为事先设定; 3.3)确定该等级下的每个分组的区域范围,根据分组的区域范围确定每个分组中包括的分片模型; 4)批量三维模型动态加载; 4.1)由当前数字城市场景浏览的摄像机参数,计算摄像机的范围以确定需要加载的模型分组等级; 4.2)由当前摄像机的中心点位置,与当前加载等级的分组范围比较,判断其落入的分组,加载相应分组所对应的全部三维模型; 4.3)当摄像机发生缩放操作时,计算将要加载的模型分组等级,如果与原等级不同,判断当前已加载的是否为最大模型分组等级且模型加载量超过60%,若是则摄像机的后续缩放过程中将不再删除已经加载的三维模型;否则删除已加载的三维模型,转而加载新的等级下的分组模型; 4.4)当摄像机发生移动操作时,则依据步骤4.2)判断需要加载的模型分组是否已经被加载了,如果没有则进行加载。2.根据权利要求1所述的方法,其特征在于,所述步骤2)中分片工具为三维处理软件。3.根据权利要求1所述的方法,其特征在于,所述步骤2)中分片信息记录在LODTree.xml中。4.根据权利要求1所述的方法,其特征在于,所述步骤3)中由读入的模型分片信息制定分组策略,主要遵循的原则有:每一分组的切片模型数量为7至15个;每一分组中的切片模型相邻;模型分组的等级之间所对应的切片模型数有明显的差别;最低等级的模型分组数设置为1。
【专利摘要】本发明公开了一种基于WebGL的大批量倾斜摄影测量三维模型加载方法,该方法包括以下步骤:1)倾斜摄影测量模型的分片与分组;2)基于WebGL的三维模型动态加载。本发明通过以上这些方法与策略来实现基于HTML5的数字三维城市展现,在本发明方法的基础上可实现浏览器上的倾斜摄影测量三维数字城市。
【IPC分类】G06F17/30
【公开号】CN105426488
【申请号】CN201510814628
【发明人】余翔宇
【申请人】中国地质大学(武汉)
【公开日】2016年3月23日
【申请日】2015年11月20日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1