专利名称:一种三维建模中的数据分层分块方法及装置的制作方法
技术领域:
本发明涉及三维建模技术领域,特别是涉及一种三维建模中的数据分层分块方法 及装置。
背景技术:
三维建模常用于地理信息数据的处理,在油田开发、地质研究等多个领域具有应 用价值。三维建模从过程上来讲,是在空间建立立体模型的一种方法;从结果上来讲,简单 的说就是建立的模型具有空间感并能看到上下前后左右。其中,“维”是几何学及空间理论 的基本概念。构成空间的每一个因素就叫做一维,如直线就是一维的,平面就是二维的,普 通的空间就是三维的。三维空间也就是所说的立体空间,是由x、Y、z三个轴即横坐标、纵坐 标和垂直坐标组成的空间,也指我们所处的空间。利用三维模型进行大规模的地形显示过程中,特别是对全球地形显示的过程中, 往往会需要大量的地形数据。例如,100X100平方公里区域,1米分辨率的数字正射影像的 大小为10万X 10万个像素,如果每个像素值占3个字节(Μ彩色),则大约需要^GB的磁 盘空间;4米分辨率的数字高程模型的大小为2. 5万Χ2. 5万个高程点,如果每个高程值占 4个字节,则大约需要2. 4GB的磁盘空间。如果从磁盘中提取所有的数据绘制整个地形,则 将产生6. 25亿个正方形或12. 5亿个三角形,需要进行25亿次或37. 5亿次纹理映射。因 此,如此庞大的运算对于系统的图形工作站来说是不堪承受的。
发明内容
本发明所要解决的技术问题是提供一种三维建模中的数据分层分块方法及装置, 以解决三维建模中数据运算量巨大的问题。为了解决上述问题,本发明公开了一种三维建模中的数据分层分块方法,包括确定数据分层的最低层和最高层,并确定出数据分层的层数;其中,最低层的分辨 率最低,最高层的分辨率最高;确定每层数据分块的块数及每个数据块的大小;针对每层的每个数据块,利用经纬度信息计算形成数据块的信息。其中,所述针对每层的每个数据块,利用经纬度信息计算形成数据块的信息包 括针对每层的每个数据块,计算相对应的经纬度范围,并计算需要读取的原始经纬 度数据;对所读取的原始经纬度数据进行插值计算,得到形成数据块的信息。优选的,所述插值计算包括采用就近插值法,通过计算某个数据点与周围四个角点的距离,获得距离该数据 点最近的角点,并将该角点的值作为新值更新该数据点的值;其中,所述角点是指原始经纬 度数据。
其中,所述确定数据分层的最低层和最高层包括根据原始经纬度数据的分辨率要求确定最高层,使最高层的分辨率小于等于原始 经纬度数据的分辨率;根据屏幕输出分辨率确定最低层,使最低层的分辨率满足屏幕输出分辨率。优选的,所有数据块的大小都相等,并且数据块的大小为2的整数幂。优选的,利用经纬度信息计算形成数据块的信息之后,还包括将数据块信息进行文件存储,并对所述文件使用分层分块的方式建立四叉树索 引。本发明还提供了一种三维建模中的数据分层分块装置,包括数据分层模块,用于确定数据分层的最低层和最高层,并确定出数据分层的层数; 其中,最低层的分辨率最低,最高层的分辨率最高;数据分块模块,用于确定每层数据分块的块数及每个数据块的大小;块数据生成模块,用于针对每层的每个数据块,利用经纬度信息计算形成数据块 的信息。其中,所述块数据生成模块包括数据范围确定单元,用于针对每层的每个数据块,计算相对应的经纬度范围,并计 算需要读取的原始经纬度数据;插值计算单元,用于对所读取的原始经纬度数据进行插值计算,得到形成数据块 的信息。其中,所述数据分层模块包括最高层确定单元,用于根据原始经纬度数据的分辨率要求确定最高层,使最高层 的分辨率小于等于原始经纬度数据的分辨率;最低层确定单元,用于根据屏幕输出分辨率确定最低层,使最低层的分辨率满足 屏幕输出分辨率。优选的,所述装置还包括索引存储模块,用于将数据块信息进行文件存储,并对所述文件使用分层分块的 方式建立四叉树索引。与现有技术相比,本发明具有以下优点首先,本发明对建模数据采用分层分块的方法,通过建立多分辨率金字塔和进行 分块的处理,可以合理减少参与地形绘制的数据量,从而降低和简化算法的时间复杂度。其次,在数据分块的时候会遵循下列原则等大小规则分块(等大小指的是所有 的块与块之间的宽高都相等,而规则是指有规律的,不是乱序的),数据块大小为2的整数 幂。采用这样原则的原因是,如果采用不规则分块,或不等大小分块,将增加接边算法的复 杂度;同时等大小分块可以使加载时间保持一致,简化内存管理,阻止产生内存碎片。数据 块大小为2的整数幂的原因是,简化建立分层金字塔的复杂度,而且现在纹理映射的图像 大小一般都要求宽高为2的整数幂。再次,对于存储数据块信息的文件,同样使用分块的方式先进行处理存储,这样获 取数据的时候可以一次性将所需要的数据完全读入,而不需要再对数据进行范围运算、插 值获取等工作,从而方便了数据读取,加速了建模过程。
图1是本发明实施例中数据显示的示意图;图2是本发明实施例中分层分块的金字塔结构示意图;图3是本发明实施例中数据索引的示意图;图4是本发明实施例所述一种三维建模中的数据分层分块方法流程图;图5是本发明实施例中插值计算的示意图;图6是本发明实施例所述一种三维建模中的数据分层分块装置结构图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。针对三维建模中数据运算量巨大的问题,本发明采用分层分块的方法,通过建立 多分辨率金字塔和进行分块处理来解决这个问题。采用这种策略的目的是为了合理减少参 与地形绘制的数据量,从而降低和简化算法的时间复杂度。本发明采用分层分块金字塔结构的原因是参照图1,是本发明实施例中数据显示的示意图。在用户视角由远移到近处的时候,用户所看到的范围会减小,但是看到的细节更 清晰,与前一个视角相比需要更精细的数据来支撑。另外,根据透视原则,一般看物体近的 更精细更清晰,远的就粗糙模糊。在这种情况下使用一套数据很难达到这种效果,因此本发 明使用了分层金字塔的方式,将原始数据分为多个层次,每个层次代表不同精细程度的数 据模型。对于每层数据,又划分为数据块,好处是只需要建立可见部分的模型,对于不可见 的区域则不进行建模,从而减少建立模型的数据量。参照图2,是本发明实施例中分层分块的金字塔结构示意图。本实施例采用的是2倍率金字塔分层结构,从金字塔的底层(即图中的第0层) 到高层(即图中的第2层)其分辨率越来越高,而分的块数也越来越多。假设底层分辨率 为A,则任意i层的分辨率为ri = i^f1。这样,对于特别是电视输出这种恒定显示精度的 要求来说,使用金字塔模型可以使数据的访问量保持在一个比较小和恒定的范围。优选的,为了方便数据的读取,对于存储数据块信息的文件,同样使用分块的方式 先进行处理存储,这样获取数据的时候可以一次性将所需要的数据完全读入,而不需要再 对数据进行范围运算、插值获取等工作,从而方便了数据读取,加速了建模过程。参照图3所示,本实施例对数据文件采取了四叉树瓦片索引的方法。即文件的存 储对应分层分块结构,在存储的时候记录其层次及行列号,每个数据块就被唯一记录。这 样,通过文件名能够快速的计算出这个块代表的经纬度范围,也能够通过经纬度范围快速 找到所需要的数据块。在数据分块的时候需要遵循下列原则1、等大小规则分块,其中等大小指的是所有的块与块之间的宽高都相等,而规则 是指有规律的,不是乱序的。采用这种原则的原因是如果采用不规则分块,或不等大小分块,将增加接边算法的复杂度;同时等大小分块可以使加载时间保持一致,简化内存管理, 阻止产生内存碎片。2、数据块大小为2的整数幂。原因是简化建立分层金字塔的复杂度,而且现在纹 理映射的图像大小一般都要求宽高为2的整数幂。因此,图3采用的是四叉树索引结构,每 一层之间符合2的整数幂。此外,在数据建模的过程中会使用到两种数据块一种是高程数据块来进行建模, 另一种是纹理数据块来进行纹理贴图,从而美化其显示效果。二者分块的范围和方案都是 完全对应的,只是由于显示效果主要是由纹理来表示,而高度建模只是为了将地貌的高度 起伏变化呈现出来。因此,为了减少建模数据而减少建模时间,但同时又不影响显示效果, 在分块的时候高程数据块的数据大小比相应的纹理块要小。下面通过实施例说明如何进行分层分块建模。参照图4,是本发明实施例所述一种三维建模中的数据分层分块方法流程图。以高 程数据的分层分块为例,步骤如下步骤401,根据电视播出要求确定分层分块方案;分层分块方案要确定出共分多少层,每层的分辨率是多少,每层共分多少数据块, 每个数据块的大小是多少。这些信息需要根据电视播出要求来确定。所述电视播出要求主要包括屏幕输出分辨率和显示范围两方面。步骤402,确定最低层和最高层,以及每层的分块;确定出最低层和最高层后,通过最高层和最低层就可以确定出分层的总层数。最高层的分辨率最高,因此确定最高层的方法是根据原始经纬度数据的分辨率 确定最高层,简单的说,就是当原始经纬度数据的分辨率不足以支持分割时,这个层次就为 最高层。由于原始经纬度数据的分辨率是最高的,所以最高层的分辨率无法高于原始经纬 度数据的分辨率。对于最低层,可以根据实际需要来确定。本实施例是根据屏幕输出分辨率的大小 来确定最低层。假设最低层数据能够满足视频输出大小,同时考虑硬盘文件读取速度就可 以确定块的大小和块的多少,从而确定最低层分块的实际情况。而为了便于重新读取,会将 建模数据进行缓存,而缓存如果太大不仅浪费内存空间而且命中率会降低,而缓存太小又 不足以描述已建模型的缓冲,因此我们将缓存大小设定为最低层的大小。在确定分层之后,对于每一层的分块,可以根据显示范围确定。所有层的显示范围 是相同的,只是由于不同层的分辨率不同,导致每一层分割的数据块数不同。例如,显示经 度-180°到180°,纬度0° -45°的范围,最高层的分辨率最高,因此显示这个范围区域的 数据块也最多;最低层的分辨率最低,因此显示这个范围区域的数据块也最少。参照图2, 第0层用1个数据块显示的区域范围,与第2层用16个数据块显示的区域范围相同。因此, 在分辨率一定的情况下,显示范围越大,分块块数越多。需要注意的是,基于上述分块原则, 不同层所有数据块的大小是相同的。步骤403,计算当前层的分决信息;即计算每一层的每个数据块都需要存储哪些信息,具体包括步骤404-407 ;步骤404,对每个数据块计算相对应的经纬度范围,并计算需要读取的原始经纬度 数据;
7
步骤405,对所读取的原始经纬度数据进行插值计算,得到形成数据块的信息;插值时根据当前层的分辨率进行,数据插值的算法有很多种。本实施例中,由于在 模型显示的方法中遵循的是数据分辨率小于显示分辨率,也就是说这里的插值影响是像素 级的,对于正常的显示来说误差是可以忽略不计的。因此,为了进行快速的新值计算,本实 施例采用了最便捷和迅速的方案就近插值法。就近插值法,就是通过计算某个数据点与周围四个角点的距离,获得距离该数据 点最近的角点,并将该角点的值作为新值更新该数据点的值。其中,所述角点是指原始经纬 度数据,所述数据点是指形成数据块的信息。参照图5,是本发明实施例中插值计算的示意图。假设某建模数据坐标位置为B,这样可以找到其相邻4个数据坐标位置(A1--A4, 即原始经纬度数据)。通过这个四个坐标位置进行插值可以算出坐标位置B的新值。插值计算过程是通过计算四个角点(Al—A4)与B的距离(LiL4),获得距离 B点最近的角点,然后将这个点的值作为新值去更新B点的值。步骤406,将数据块信息按文件名索引的方式进行存储;即将数据块信息进行文件存储,并对所述文件使用分层分块的方式建立四叉树索 引,可参照图3所示的索引结构图。步骤407,判断是否完成当前层所有数据块的计算存储,如果是,则返回步骤403, 继续下一层处理;如果否,则返回步骤404,继续对当前层的下一个数据块进行处理。通过上述方法,就可以对地形数据进行分层分块建模。针对上述方法实施例,本发明还提供了相应的装置实施例。参照图6,是本发明实施例所述一种三维建模中的数据分层分块装置结构图。所述装置主要包括数据分层模块61,用于确定数据分层的最低层和最高层,并确定出数据分层的层 数;其中,最低层的分辨率最低,最高层的分辨率最高;数据分块模块62,用于确定每层数据分块的块数及每个数据块的大小;块数据生成模块63,用于针对每层的每个数据块,利用经纬度信息计算形成数据 块的信息。其中,所有数据块的大小都相等,并且数据块的大小为2的整数幂。进一步,所述块数据生成模块63可以包括数据范围确定单元,用于针对每层的每个数据块,计算相对应的经纬度范围,并计 算需要读取的原始经纬度数据;插值计算单元,用于对所读取的原始经纬度数据进行插值计算,得到形成数据块 的信息。可以采用就近插值法。所述数据分层模块61可以包括最高层确定单元,用于根据原始经纬度数据的分辨率要求确定最高层,使最高层 的分辨率小于等于原始经纬度数据的分辨率;最低层确定单元,用于根据屏幕输出分辨率确定最低层,使最低层的分辨率满足 屏幕输出分辨率。优选的,所述装置还可以包括
索引存储模块64,用于将数据块信息进行文件存储,并对所述文件使用分层分块 的方式建立四叉树索引。上述装置具有以下优点第一,对建模数据采用分层分块的方法,通过建立多分辨率金字塔和进行分块的 处理,可以合理减少参与地形绘制的数据量,从而降低和简化算法的时间复杂度。第二,在数据分块的时候遵循下列原则等大小规则分块(等大小指的是所有的 块与块之间的宽高都相等,而规则是指有规律的,不是乱序的),数据块大小为2的整数幂。 采用这样原则的原因是,如果采用不规则分块,或不等大小分块,将增加接边算法的复杂 度;同时等大小分块可以使加载时间保持一致,简化内存管理,阻止产生内存碎片。数据块 大小为2的整数幂的原因是,简化建立分层金字塔的复杂度,而且现在纹理映射的图像大 小一般都要求宽高为2的整数幂。第三,对于存储数据块信息的文件,同样使用分块的方式先进行处理存储,这样获 取数据的时候可以一次性将所需要的数据完全读入,而不需要再对数据进行范围运算、插 值获取等工作,从而方便了数据读取,加速了建模过程。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与 其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例 而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部 分说明即可。以上对本发明所提供的一种三维建模中的数据分层分块方法及装置,进行了详细 介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明 只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本 发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应 理解为对本发明的限制。
权利要求
1.一种三维建模中的数据分层分块方法,其特征在于,包括确定数据分层的最低层和最高层,并确定出数据分层的层数;其中,最低层的分辨率最 低,最高层的分辨率最高;确定每层数据分块的块数及每个数据块的大小;针对每层的每个数据块,利用经纬度信息计算形成数据块的信息。
2.根据权利要求1所述的方法,其特征在于,所述针对每层的每个数据块,利用经纬度 信息计算形成数据块的信息包括针对每层的每个数据块,计算相对应的经纬度范围,并计算需要读取的原始经纬度数据;对所读取的原始经纬度数据进行插值计算,得到形成数据块的信息。
3.根据权利要求2所述的方法,其特征在于,所述插值计算包括采用就近插值法,通过计算某个数据点与周围四个角点的距离,获得距离该数据点最 近的角点,并将该角点的值作为新值更新该数据点的值;其中,所述角点是指原始经纬度数 据。
4.根据权利要求1所述的方法,其特征在于,所述确定数据分层的最低层和最高层包括根据原始经纬度数据的分辨率要求确定最高层,使最高层的分辨率小于等于原始经纬 度数据的分辨率;根据屏幕输出分辨率确定最低层,使最低层的分辨率满足屏幕输出分辨率。
5.根据权利要求1所述的方法,其特征在于所有数据块的大小都相等,并且数据块的大小为2的整数幂。
6.根据权利要求1或5所述的方法,其特征在于,利用经纬度信息计算形成数据块的信 息之后,还包括将数据块信息进行文件存储,并对所述文件使用分层分块的方式建立四叉树索引。
7.—种三维建模中的数据分层分块装置,其特征在于,包括数据分层模块,用于确定数据分层的最低层和最高层,并确定出数据分层的层数;其 中,最低层的分辨率最低,最高层的分辨率最高;数据分块模块,用于确定每层数据分块的块数及每个数据块的大小; 块数据生成模块,用于针对每层的每个数据块,利用经纬度信息计算形成数据块的信息ο
8.根据权利要求7所述的装置,其特征在于,所述块数据生成模块包括数据范围确定单元,用于针对每层的每个数据块,计算相对应的经纬度范围,并计算需 要读取的原始经纬度数据;插值计算单元,用于对所读取的原始经纬度数据进行插值计算,得到形成数据块的信息ο
9.根据权利要求7所述的装置,其特征在于,所述数据分层模块包括最高层确定单元,用于根据原始经纬度数据的分辨率要求确定最高层,使最高层的分 辨率小于等于原始经纬度数据的分辨率;最低层确定单元,用于根据屏幕输出分辨率确定最低层,使最低层的分辨率满足屏幕输出分辨率。
10.根据权利要求7所述的装置,其特征在于,还包括索引存储模块,用于将数据块信息进行文件存储,并对所述文件使用分层分块的方式 建立四叉树索引。
全文摘要
本发明提供了一种三维建模中的数据分层分块方法及装置,以解决三维建模中数据运算量巨大的问题。所述方法包括确定数据分层的最低层和最高层,并确定出数据分层的层数;其中,最低层的分辨率最低,最高层的分辨率最高;确定每层数据分块的块数及每个数据块的大小;针对每层的每个数据块,利用经纬度信息计算形成数据块的信息。本发明通过建立多分辨率金字塔和进行分块的处理,可以合理减少参与地形绘制的数据量,从而降低和简化算法的时间复杂度。
文档编号G06T17/05GK102117494SQ20091024429
公开日2011年7月6日 申请日期2009年12月30日 优先权日2009年12月30日
发明者龚浩 申请人:新奥特(北京)视频技术有限公司