一种大规模数据的快速渲染方法与流程

文档序号:12604431阅读:354来源:国知局
一种大规模数据的快速渲染方法与流程

本发明涉及地质勘探技术领域,具体地说,涉及一种大规模数据的快速渲染方法。



背景技术:

地质数据体的三维可视化是目前地质建模领域的重要部分,三维数据体的快速显示也是评价相关软件易用性的关键点。而三维可视化的关键点集中在数据的预处理与可视化渲染方法,良好的数据调度和高效的图形渲染是大规模油膜数据渲染速度和精度的根本保证。

地质建模的数据体中,几何结构数据体积最为庞大,占据整个模型三维数据体数据的三分之二以上,对于千万网格,其占用空间约为2G(二进制存储)。如果是美国标准信息交换代码(American Standard Code for Information Interchange,简称ASCII),占用空间则约为3.2G。此数据量几乎达到了当前通行的32位系统的极限,因此,如何快速组织调度并高速渲染这类大规模数据是一个非常重要的问题。



技术实现要素:

本发明的目的在于提供一种大规模数据的快速渲染方法,以解决如何快速组织调度并高速渲染大规模数据的技术问题。

本发明提供了一种大规模数据的快速渲染方法,该方法包括:

获取用户的渲染要求,所述渲染要求包括所述大规模数据中所需渲染的部分;

根据所述大规模数据中所需渲染的部分,获取预存储的对应所述渲染的部分的表面的多个六面体,六面体为根据所述大规模数据渲染的整体结构的部分;

基于所获取的多个六面体,根据各六面体的位置、各面的颜色值,组合所获取的多个六面体,形成所述渲染要求对应的所需渲染的部分。

其中,在所述获取用户的渲染要求之前,还包括:

获取所述大规模数据进行首次渲染;

获取所述大规模数据所渲染的整体结构,将所述整体结构划分为多个六面体;

获取并存储各六面体的端点坐标值和各面的颜色值。

其中,获取并存储各六面体的端点坐标值和各面的颜色值包括:

获取部分六面体作为基础块,非基础块紧挨基础块;

存储各基础块的端点坐标值,记录非基础块与基础块的相对位置;

获取并存储各基础块的各面的颜色值。

其中,基础块的各边长相等。

其中,基于所获取的多个六面体,根据各六面体的位置、各面的颜色值,组合各六面体形成所述渲染要求对应的所需渲染的部分包括:

根据所获取的多个六面体中的基础块的端点坐标值、非基础块与基础块的相对位置,确定基础块以及与其紧挨的非基础块的位置;

根据所确定的基础块以及与其紧挨的非基础块的位置,组合各六面体形成所需渲染的部分;

根据各基础块的各面的颜色值,渲染所需渲染的部分的表面。

其中,各面的颜色值包括各面的红色值、蓝色值和绿色值。

其中,各面的颜色值包括各面的灰度值。

本发明带来了以下有益效果:本发明实施例提供了一种大规模数据的快速渲染方法,该方法预先将大规模数据的整体结构细化、分解为多个六面体,记录并存储各六面体的位置和各面的颜色值,当用户需要渲染时,调用六面体、根据各六面体的位置进行组合,得到快速且准确的渲染效果。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要的附图做简单的介绍:

图1是本发明实施例中的大规模数据的预处理方法的流程图一;

图2是本发明实施例中的大规模数据的预处理方法的流程图二;

图3是本发明实施例中的大规模数据的快速渲染方法的流程图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

本发明实施例提供了一种大规模数据的快速渲染方法,该方法可提高大规模数据的渲染速度,减少渲染时的系统资源占用率。

在执行该快速渲染方法之前,需要根据大规模数据进行精密渲染,之后对精密渲染得到的整体结构进行微分、细化,之后可以利用微分、细化得到的各个部分来渲染大规模数据。如图1所示,在执行该快速渲染方法之前需要执行如下步骤:

步骤S101、获取大规模数据进行首次渲染。

合理高效的数据保存和调度方式是提高处理效率的关键,庞大的大规模数据存在存储装置(例如磁盘)中,处理大规模数据将会占用处理装置(例如计算机)大量的存储空间以及渲染带宽。首次渲染时,处理装置会根据工程人员实际测得的大规模数据逐个进行描点、渲染,此时处理装置需要调用、访问该庞大的大规模数据,可能需要持续较长的渲染时间。

步骤S102、获取大规模数据所渲染的整体结构,将整体结构划分为多个六面体。

首次渲染大规模数据之后,可得到这一大规模数据的整体结构。一般的,所渲染得到的整体结构近似于一立方体的形状。本发明实施例中,可对该整体结构进行微分、细化,把一个大的整体结构细化为多个比较小的六面体。对整体结构进行细化的程度,决定了本发明实施例中,对大规模数据进行快速渲染时的渲染精度。

因此,根据存储各六面体所占用的存储空间,可对整体结构进行尽可能的细化,以提高快速渲染的精细程度。

具体的,可基于渲染大规模数据时,采用的网格大小来划分各六面体,这样的处理可以保证基于六面体来渲染大规模数据时,得到的所需渲染的部分的精细程度基本符合用户的要求。

步骤S103、获取并存储各六面体的端点坐标值和各面的颜色值。

由于本发明实施例中需要基于细化的六面体,来对大规模数据进行快速渲染,因此,需要记录下并存储各六面体的端点坐标值和各面的颜色值,以便在快速渲染时,就好像拼拼图一样,直接根据各六面体的端点坐标值确定各六面体的位置,将每一六面体放置在其应当对应的位置上并对六面体进行渲染,实现对大规模数据的快速渲染。

其中,若大规模数据的渲染得到的整体结构是彩色的,每一六面体的颜色也是彩色的。因而存储六面体各面的颜色值时,需要存储各面的红色值、蓝色值和绿色值,在重新根据各六面体的位置和颜色值快速渲染大规模数据时,处理设备会根据各面的红色值、蓝色值和绿色值,渲染六面体各面的颜色。

另外,若大规模数据的渲染得到的整体结构是灰色的(大多数情况下),存储各面的颜色值时,则需存储各面的灰度值。一般来说,若存储的颜色值是灰度值,六面体的颜色值所占的存储空间较小。

将大规模数据划分为多个六面体进行存储,每一六面体对应大规模数据渲染得到的整体结构的一部分,且每一六面体仅需存储端点坐标值和各面的颜色值,可大大减小渲染时需调用、访问的数据的存储空间,提高渲染、调取大规模数据的速度。

其中,为了进一步减小存储各六面体所需的存储空间,对于各六面体而言,可以将其中一些比较规整的六面体作为基础块,以基础块的位置为参考系,记录与该基础块距离较近的非基础块与该基础块的相对位置,根据基础块的位置推算得到非基础块的位置,以此减少存储各六面体的位置所需的存储空间。

具体的,如图2所示,步骤S103包括:

子步骤S1031、获取部分六面体作为基础块,非基础块紧挨基础块。

一般的,每一大规模数据的整体结构都会被细化为成千上万个六面体,其中,部分六面体的各边长基本相等、近似为立方体,其他部分六面体的形状可能会比较不规则,且由于近似为立方体的六面体的个数较多,基本每一个不规则的六面体的旁边都有一个近似为立方体的六面体。因此,本发明实施例中,可以将近似 为立方体的六面体作为基础块,其余六面体作为非基础块,非基础块紧挨基础块。很容易基于基础块的位置得到非基础块的位置。

子步骤S1032、存储各基础块的端点坐标值,记录非基础块与基础块的相对位置。

在确定基础块后,记录并存储各基础块的端点坐标值,并且记录非基础块与基础块的相对位置。例如,对应某一基础块而言,可记录下某一与其紧挨的非基础块位于该基础块的上方,则该基础块的顶面与非基础块的底面重合,大小相等、颜色相同,则该基础块的顶面的各端点坐标值即为该非基础块的底面的各端点坐标值。由于非基础块通常紧挨基础块设置,因此只要得知非基础块位于基础块的哪一侧,即可得到非基础块的位置等信息。

子步骤S1033、获取并存储各基础块的各面的颜色值。

类似的,由于非基础块通常紧挨基础块设置,因此只要得知非基础块位于基础块的哪一侧,同样可以根据基础块的各面的颜色得到非基础块的各面的颜色,因此本发明实施例中,仅需要存储各基础块的各面的颜色值,即可得到非基础块的各面的颜色值。

因此,本发明实施例中,对于众多六面体,从中提取出近似为立方体的六面体作为基础块,将基础块的各端点坐标值和各面的颜色值存储下来。对于非基础块,仅需要存储其与紧挨的基础块的相对位置,即可减少各六面体所占的存储空间,提高渲染时调取数据的速度。

在本发明实施例中,基于大规模数据的首次渲染进行了预处理之后,在后来用户需要对大规模数据进行渲染时,可直接获取经过预处理得到的各六面体,进行快速渲染。

具体的,如图3所示,对大规模数据进行快速渲染的过程如下:

步骤S201、获取用户的渲染要求,渲染要求包括大规模数据中所需渲染的部分。

其中,用户的渲染要求不仅包括大规模数据中所需渲染的部分,还具体包括用户的观察角度等涉及具体渲染过程的信息。

步骤S202、根据大规模数据中所需渲染的部分,获取预存储的对应渲染的部分的表面的多个六面体,六面体为根据大规模数据渲染的整体结构的部分。

了解到用户所需渲染的部分后,基于这部分,调取对应的多个六面体。六面 体如前文所述,是经过预处理过程后获得的。

步骤S203、基于所获取的多个六面体,根据各六面体的位置、各面的颜色值,组合所获取的多个六面体,形成所述渲染要求对应的所需渲染的部分。

具体的,由于仅预先存储了各基础块的端点坐标值,同时存储各非基础块与基础块的相对位置。首先可根据基础块的端点坐标值、非基础块与基础块的相对位置,确定基础块以及与其紧挨的非基础块的位置。之后,根据所确定的基础块以及与其紧挨的非基础块的位置,组合各六面体形成所需渲染的部分。最后,根据各基础块的各面的颜色值,渲染所需渲染的部分的表面。

其中,对于所需渲染的部分,仅需将该部分的表面对应的六面体获取并组合起来即可,该部分的内部结构不需要进行处理,否则会增大渲染的数据调取量,降低渲染的速度。

当用户基于所展示的渲染的部分通过操作鼠标、键盘等移动、转动时,相当于重新提供了渲染要求,处理装置根据用户新的渲染要求,重新进行渲染。本发明实施例提供的快速渲染方法的渲染速度很快,不会给用户带来卡顿、临时的撕裂效果等不良体验。

综上,本发明实施例提供了一种大规模数据的快速渲染方法,该方法预先将大规模数据的整体结构细化、分解为多个六面体,记录并存储各六面体的位置和各面的颜色值,当用户需要渲染时,调用六面体、根据各六面体的位置进行组合,得到快速且准确的渲染效果。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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