一种在OSGB数据处理中提升渲染场景效率的方法与流程

文档序号:12271399阅读:3971来源:国知局
一种在OSGB数据处理中提升渲染场景效率的方法与流程

本发明涉及计算机技术领域,特别是涉及一种在OSGB数据处理中提升渲染场景效率的方法。



背景技术:

数据库作为一种成熟的信息管理技术,在对数据,包括空间数据的管理上,由于其具有高效、可靠、完整、自同步等特性,已经得到用户的广泛认可。对于倾斜实景三维模型,由于其海量性、空间性、时效性的特点,如果不经过处理,直接采用文件管理方式,将存在如下缺陷:

OSGB是一种公开格式,针对普通的OSGB数据,存在金字塔层级过多的现象。造成这种现象的原因主要是由于数据的叶子节点数据过多,而在构建金字塔时以4叉树的方式向上构建层级,这种方式在大场景或者大范围数据的情况下,会造成层级过多,在调度时会有大量的I/O占用,同时瓦片数量过多,不做进一步处理对内存的消耗也会增大。这些因素都对渲染场景的效率提升十分不利。



技术实现要素:

本发明针对现有技术中大范围场景内存占用高、过度I/O操作的缺点,提供了一种在OSGB数据处理中提升渲染场景效率的方法。

为了解决上述技术问题,本发明通过下述技术方案得以解决。

一种在OSGB数据处理中提升渲染场景效率的方法,包括如下步骤:

(1)对于N个独立OSGB节点数据,提取各自节点下都挂有初始的金字塔层级节点数据,用于对该顶层节点范围内数据调度渲染;

(2)以单个OSGB节点为单位,对其所构成的金字塔层级进行简化处理,对于层级大于5的瓦片,去除次精细层的数据;

(3)读取所有上述N个OSGB顶层节点数据,读取分析所有节点包围盒数据并计算得出能够容纳所有顶层节点数据的最大包围盒,以及所有顶点节点包围盒在X/Y平面上的投影中心点坐标;

(4)根据步骤(3)中获取到的最大包围盒,获取其中心点坐标,从上述所有OSGB顶层节点包围盒在X/Y平面上的投影中心点坐标中查找除该最大包围盒对应的中心点以外并距离其坐标最近的顶层节点,利用算法分析该数据的位置特征,从而获取该数据的包围盒在X/Y平面上投影矩形的4个顶点中的一个作为划分点,利用该划分点对N个数据进行网格划分,并以划分后的结果向下构建新的一级金字塔层级;

(5)循环向下继续利用网格划分节点数据,直至单个节点包含的原始的OSGB节点个数不多于4个,视为该节点构建金字塔构建完成。

本发明由于采用了以上技术方案,在渲染大场景数据时,由于对原始数据向上加建了金字塔层级,能够在调度时大大减少内存占用。同时因为向上加建的层级数据都是在很远的距离观看,在不影响视觉效果的前提下,对其做了很多的简化处理,数据量减少的前提下数据对象也减少了,因此只增加了极少的I/O操作。同时,由于对原始金字塔底部层级进行了简化,去除了次精细层的数据,保留了最精细数据,最大程度保留了数据的视觉效果,减少了次精细层带来的I/O负担。

附图说明

图1是本发明一种在OSGB数据处理中提升渲染场景效率的方法的示意图;

图2是本发明一种在OSGB数据处理中提升渲染场景效率的方法中分割过程示意图。

具体实施方式

下面结合附图与实施例对本发明作进一步详细描述。

一种在OSGB数据处理中提升渲染场景效率的方法,包括如下步骤:

(1)对于N个单个OSGB节点数据,各自节点下都挂有初始的金字塔层级节点数据,用于对该顶层节点范围内数据调度渲染;

(2)以单个OSGB节点为单位,对其所构成的金字塔层级进行简化处理,对于层级大于5的瓦片,去除次精细层的数据;

(3)读取所有N个OSGB顶层节点数据,读取分析所有节点包围盒并得出能够容纳所有顶层节点数据的最大包围盒,以及所有顶点节点包围盒在X/Y平面上的投影中心点坐标;

(4)根据步骤(3)中获取到的最大包围盒,获取其中心点坐标,从N个数据中找到距离该中心点坐标最近的数据,利用算法分析该数据的位置特征,从而获取该数据的包围盒在X/Y平面上投影矩形的4个顶点中的一个作为划分点,利用该划分点对N个数据进行网格划分,并以划分后的结果向下构建新的一级金字塔层级;

(5)循环向下继续利用网格划分节点数据,直至单个节点包含的原始的OSGB节点个数不多于4个,视为该节点构建金字塔构建完成。

实施例1

(1)初始的未处理的671张osgb瓦片数据,顶层层级为16,底层层级大于20;

(2)循环处理每张顶层瓦片的层级深度,打破现有的层级调度关系,实现跨层级指向,对于Geode类型的OSGB数据,根据保留最精细层数据的原则保留原有调度关系;

(3)精简后去除了奇数层级,如果奇数层级中含有最精细层的网格数据则保留。获取精简后的瓦片顶层节点的包围盒数据信息;

(4)将所有节点包围盒信息集中到新创建的顶层节点中,计算出合并出的大包围盒信息;

(5)对创建的顶层节点的包围盒以四分法进行网格划分,将数据节点分别归类到相应的包围盒区域中,以每个区域为单位创建一个子节点保存相应划分后的数据节点,挂接到父节点并从父节点中删除数据节点的信息;

(6)循环步骤(5),直到子节点中的数据节点的个数不大于4即可构建出预期的金字塔层级。

实施例2

如图1所示,节点2含有次精细数据,拉长了调度跨度,将该节点进行精简化,重新建立节点1与节点3的链接,如果将节点5和节点6所在的层级进行精简化处理,由于节点5属于精细层数据,按原则应该保留。节点6是次精细层数据,则建立节点4到节点7和节点8的链接关系。

如图2所示,获取到所有顶层节点合并的包围盒,得到其中心点c1;分析得到点n1距离c1最近,得到分割点s1。同理,得到分割点s2,直到子节点中的数据节点的个数不大于4即可构建出预期的金字塔层级。

总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

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