CN104091362A - 海量三维地质结构模型数据绘制方法 - Google Patents
海量三维地质结构模型数据绘制方法 Download PDFInfo
- Publication number
- CN104091362A CN104091362A CN201410317832.6A CN201410317832A CN104091362A CN 104091362 A CN104091362 A CN 104091362A CN 201410317832 A CN201410317832 A CN 201410317832A CN 104091362 A CN104091362 A CN 104091362A
- Authority
- CN
- China
- Prior art keywords
- sequence
- data
- geology
- monomer
- simplification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种海量三维地质结构模型数据绘制方法。其中,该方法包括:步骤A、全场景模型数据组织,采用R—Octree两层索引定位三维地质结构模型中的任一地质单体网格骨架和对应的渐进网格简化序列;步骤B、模型数据调度,利用网格骨架调度器和简化网格序列调度器从外存调度网格骨架数据以及对应简化序列数据至内存;步骤C、数据绘制,当网格骨架数据以及简化序列数据发生改变,绘制任一地质单体的网格骨架数据以及简化序列数据,并在三维场景中显示绘制结果。依据本发明实施例的海量三维地质结构模型数据的绘制方法,能够对现有技术中数据量超过计算机内存导致无法处理的地质结构模型的数据进行绘制及显示。
Description
技术领域
本发明涉及三维地质建模与可视化领域,特别是涉及一种海量三维地质结构模型数据绘制方法。
背景技术
三维地质结构模型是由多个地质体无缝拼合在一起,每个地质体由不规则三角网封闭成一个完整的几何面。
在地质多元数据可视化过程中,往往需要将不同专题的结构模型,比如城市地质领域的三维基岩和新生界地质结构模型,在同一场景下的实时高效显示。对于一个研究区的结构模型,可能有成千上万个地质体构成,而每个地质体又有数以万记甚至十万记的三角形构成。并且,三维结构模型的数据量往往随着建模精度和模型光顺度的提高而成倍增加。例如地质体的三角形个数,随着模型光顺度的提高,每次进行模型光滑(比如经典Butterfly算法),其三角形个数增加4倍,数据量往往大于4G(一般PC机的内存容量),也超出了计算机一般绘制的能力,因此,这种数据量规模的三维地质结构模型称为海量三维地质结构模型数据。海量数据对结构模型的可视化与空间分析的实时高效处理造成巨大的负担。
对于大规模数据绘制的策略主要是分块、外存模型、多分辨率细节层次模型(Level Of Detail,以下简称LOD)和三维空间索引等。
研究表明进行绘制细节层次模型(Level Of Detail,简称LOD)时,当物体覆盖屏幕较小区域时,可以使用该物体较低分辨率的模型来表示,以便对复杂场景进行快速绘制。细节层次模型也称多分辨率模型(multi-resolutionmodeling)、层次模型(Hierarchical Model),它们的共同目的是在满足用户视觉误差的前提下减少图形绘制数量。
因此,现有绘制技术中还无法直接实现海量三维地质结构模型的可视化,往往从外存将部分数据读入,绘制完卸载,这往往导致绘制效率低下、显示速度过慢,无法实时查看浏览模型的整体结构,也无法实现对实现海量三维地质结构模型的三维交互,比如旋转,选择等常用三维可视化操作功能。
发明内容
鉴于上述问题,本发明提出了一种克服上述问题或者至少部分地解决上述问题的海量三维地质结构模型数据绘制方法。
依据本发明的一个方面,提供了一种海量三维地质结构模型数据绘制方法,其特征在于,所述方法包括:步骤A、全场景模型数据组织,采用R—Octree两层索引定位三维地质结构模型中的任一地质单体网格骨架和对应的渐进网格简化序列,其中,所述三维地质结构模型由至少一个所述地质单体构成;步骤B、模型数据调度,利用网格骨架调度器和简化网格序列调度器从外存调度所述网格骨架数据以及对应简化序列数据至内存,其中,所有网格骨架数据和简化序列数据使用对象池进行管理;步骤C、数据绘制,当所述网格骨架数据以及所述简化序列数据发生改变,绘制任一所述地质单体的网格骨架数据以及简化序列数据,并在三维场景中显示绘制结果。
可选地,所述地质单体的网格骨架由封闭的不规则三角网组成,所述简化序列为对所述地质单体网格骨架的细化表达。
可选地,采用R—Octree两层索引定位三维地质结构模型中的任一地质单体的网格骨架以及对应的渐进网格简化序列,包括:对于任一地质单体的网格骨架以及对应的简化序列,采用R树对所述网格骨架进行索引,其中,所述R树的叶子结点存储所述网格骨架的唯一标识信息;采用八叉树Octree对所述简化序列进行索引,其中,所述八叉树Octree的叶子结点存储所述简化序列的唯一标识信息。
可选地,利用网格骨架调度器和简化序列调度器从外存调度所述网格骨架数据以及对应简化序列数据至内存之前,还包括:根据视点位置计算所述地质单体的调度顺序以及需要调度的所述地质单体的简化序列的绘制。
可选地,根据视点位置计算所述地质单体的调度顺序,包括:若视点与所述R树的叶子结点相交,记录所述结点对应地质单体,以将所述地质单体调入内存;计算所述地质单体的每个简化序列距离所述视点的位置d,根据d的大小确定简化序列的导入顺序。
可选地,根据视点位置计算所述简化序列的绘制步骤为:视点张角为α,投影平面的边长为L,被投影简化序列线段长度为l,视点与该简化序列中心的距离为d,线段与投影平面的夹角为β,物体单位长度在投影平面上的像素数为λ,则简化序列线段l在投影平面上的投影长度τ为
当τ>n时,确定对所述简化序列进行绘制,其中,n为用户定义精度参数。
可选地,利用网格骨架调度器和简化序列调度器从外存调度所述网格骨架数据以及对应简化序列数据至内存,包括:当所述视点位置变化,启动所述网格骨架调度器和所述简化网格序列调度器,进行数据调度,并将所述调入内存的网格骨架数据和简化序列数据存储到对象池中,其中,所述对象池为预先设置的内存空间;所述网格骨架调度器调入根据所述视点确定的可绘制地质单体;所述简化网格序列调度器调入根据所述视点确定的所述可绘制地质单体中需要绘制的简化网格序列。
可选地,所述网格骨架调度器调入根据所述视点确定的可绘制地质单体,包括:调入前,判断所述对象池中是否存在所述可绘制地质单体;若存在,则保持所述对象池中已存在的地质单体,不将所述地质单体重新调入;若不存在,则继续判断所述对象池是否有容纳空间;若有,则直接将外存中存储的所述可绘制地质单体调入所述对象池;若无,利用所述网格骨架调度器删除所述对象池内已确定无需绘制的地质单体,直至所述对象池内有容纳空间。
可选地,所述简化网格序列调度器调入根据视点确定的某一地质单体需要绘制的简化网格序列,包括:调入前,判断所述对象池中是否存在所述可绘制地质单体;若不存在,则所述简化网格序列调度器处理下一个地质单体;若存在,判断所述简化网格序列是否已经调入至所述对象池;若调入,则保持所述对象池中已存在的简化网格序列,不重新导入;若未调入,则继续判断对象池是否有容纳空间;若有,则直接将外存中存储的所述简化网格序列调入所述对象池;若无,利用所述简化网格序列调度器删除所述对象池内已确定无需绘制的简化网格序列,直至所述对象池内有容纳空间。
依据本发明实施例的海量三维地质结构模型数据绘制方法,能够采用R—Octree两层索引定位需要绘制的三维地质结构模型中的单个地质体和相关的简化序列,并利用网格骨架调度器和简化序列调度器导入对象池中的数据绘制三维地质结构模型。现有技术中,在对三维地质结构模型进行绘制时,在保证建模的精度和显示效果的前提下,无法保证三维地质结构模型的绘制效率,建模精度的提高导致现有技术中对三维地质结构模型的显示速度过慢。并且,现有技术无法直接解决海量数据的绘制。另外,现有技术中对三维地质结构模型进行绘制的过程往往采用单线程,无法降低频繁数据更新导致的绘制跳跃问题。
而本发明实施例在对海量三维地质结构模型数据进行实时多分辨率绘制时,考虑根据三维结构模型既有多个地质单体构成,又有大量不规则三角网组成单体的特点,首先对三维结构模型数据进行全场景模型数据组织,实现多分辨率数据组织,可根据视点获取不同精度的数据;其次,采用多线程机制,由网格骨架调度器和简化序列调度器将基于视点确定的模型绘制数据导入到对象池中,由TIN对象绘制器(TIN Render)完成基于视点的海量数据绘制。因此,依据本发明实施例的海量三维地质结构模型数据绘制方法能够根据用户设置的视觉误差自动选择相应的模型数据,在降低模型显示分辨率的前提下不对视觉造成影响,进而能够解决海量数据绘制对计算机造成的巨大负担问题。并且,不同于现有技术中的单线程,本发明实施例中采用多线程机制,将网格骨架调度器,简化序列调度器和TIN对象绘制器通过对绘制过程以及数据调度过程分别进行管理,能够降低频繁数据更新造成的绘制跳跃问题,使得绘制转换过程比较平滑。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的海量三维地质结构模型数据绘制方法的处理流程图;
图2示出了根据本发明一个实施例的多体简化序列的Octree统一索引的示意图;
图3示出了根据本发明一个优选实施例的八叉树节点选择示意图;
图4示出了根据本发明一个优选实施例的调度获取的数据并对三维地质结构进行绘制的示意图;
图5示出了根据本发明一个优选实施例的投影面积与实际面积、距离视点的位置以及视线与图形单元夹角的关系的示意图;以及
图6a-6b示出了根据本发明一个优选实施例的结构模型多分辨率绘制效果的示意图。
具体实施方式
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
相关技术中提及,在对三维地质结构模型进行绘制时,在保证建模精度和显示效果的前提下,无法保证三维地质结构模型的绘制效率,建模精度和显示效果的成倍增加,导致现有技术中对三维地质结构模型的显示速度过慢。并且,现有技术无法直接解决对海量数据的绘制。另外,现有技术中对三维地质结构模型进行绘制的过程往往采用单线程,无法降低频繁数据更新导致的绘制跳跃问题。
为解决上述技术问题,本发明实施例提供了一种海量三维地质结构模型数据的绘制方法。图1示出了根据本发明一个实施例的海量三维地质结构模型数据绘制方法的处理流程图。参见图1,该流程至少包括步骤S102至步骤S108。
步骤S102、全场景模型数据组织,采用R—Octree两层索引定位三维地质结构模型中的任一地质单体网格骨架和对应的渐进网格简化序列,其中,三维地质结构模型由至少一个地质单体构成;
步骤S104、模型数据调度,利用网格骨架调度器(以下简称TIN调度器)和简化网格序列调度器(以下简称PM调度器)从外存调度网格骨架数据以及对应简化序列数据至内存,其中,所有网格骨架数据和简化序列数据使用对象池进行管理;
步骤S106、数据绘制,当网格骨架数据以及简化序列数据发生改变,绘制任一地质单体的网格骨架数据以及简化序列数据,并在三维场景中显示绘制结果。
依据本发明实施例的海量三维地质结构模型数据绘制方法,能够采用R—Octree两层索引定位需要绘制的三维地质结构模型中的单个地质体和相关的简化序列,并利用网格骨架调度器和简化序列调度器导入对象池中的数据绘制三维地质结构模型。现有技术中,在对三维地质结构模型进行绘制时,在保证建模精度和显示效果的前提下,无法保证三维地质结构模型的绘制效率,建模精度的提高导致现有技术中对三维地质结构模型的显示速度过慢。并且,现有技术无法直接解决海量数据的绘制。另外,现有技术中对三维地质结构模型进行绘制的过程往往采用单线程,无法降低频繁数据更新导致的绘制跳跃问题。
而本发明实施例在对海量三维地质结构模型数据进行实时多分辨率绘制时,考虑根据三维结构模型既有多个地质单体构成,又有大量不规则三角网组成单体的特点,首先对三维结构模型数据进行全场景模型数据组织,实现多分辨率数据组织,可根据视点获取不同精度的数据;其次,采用多线程机制,由网格骨架调度器和简化序列调度器将基于视点确定的模型绘制数据导入到对象池中,由TIN对象绘制器(TIN Render)完成基于视点的海量数据绘制。因此,依据本发明实施例的海量三维地质结构模型数据绘制方法能够根据用户设置的视觉误差自动选择相应的模型数据,在降低模型显示分辨率的前提下不对视觉造成影响,进而能够解决海量数据绘制对计算机造成的巨大负担问题。并且,不同于现有技术中的单线程,本发明实施例中采用多线程机制,通过网格骨架调度器、简化序列调度器和TIN对象绘制器对绘制过程以及数据调度过程分别进行管理,能够降低频繁数据更新造成的绘制跳跃问题,使得绘制转换过程比较平滑。
综上,本发明实施例中对海量三维地质结构模型数据进行绘制的过程可以分为以下三个步骤:
步骤A、构建三维地质结构模型多分辨率的层次细节模型;
步骤B、全场景多分辨率数据组织;
步骤C、数据调度与绘制。
现分别对上述三个步骤进行介绍。步骤A中,本发明实施例构建三维地质结构模型多分辨率的层次细节模型。具体地,由于实际操作中,三维地质结构模型通常由多个地质体构成,因此,本发明实施例中,构建三维地质结构模型多分辨率的层次细节模型的过程包括步骤S1至步骤S2:
步骤A1、对多个地质体建立R树索引,用于获取三维地质机构模型中某一位置或查询区域的地质体;
步骤A2、为多个地质体中至少一个单个地质体构建多分辨率模型,并且对至少一个单个地质体进行简化,简化后的单个地质体由网格骨架和简化序列构成。
对于步骤A1,本发明实施例中,三维地质结构模型由多个地质体组成,在对三维地质结构模型进行绘制之前,需要构建多体索引以便能够快速高效地获取三维地质结构模型中的某一个位置和/或查询区域。本发明实施例中,为保证能够更加高效地对三维地质结构模型中的位置和/或区域进行查询或者检索,优选构建R树索引作为多体索引。并且,实际操作中,通过采用横向切分R树索引与传统R树索引分别检测三维地质结构中地质体不同的分布对查询性能的影响,能够获知横向切分R树索引的整体性能优于传统R树索引。因此,本发明实施例中优选横向切分R树索引作为多体索引以便能够快速高效地获取三维地质结构模型中的某一个位置和/或查询区域。
对于步骤A2,对于构成三维地质结构模型的单个地质体(本发明实施例中也可以称之为单体),由于每个地质体由大量的不规则三角形面元(以下简称TIN)构成,因此,为提高单体的显示效率,在构建三维地质结构模型时,为单体构建多分辨率的层次细节模型,即LOD模型。另外,为保证单体在不同分辨率的三角网之间接缝处一致,并且,考虑到三维地质结构模型中地质体之间存在空间相邻关系,即地质体之间存在公共面和地质体表面顶点一部分是地质采样点(主要是钻孔信息点)的问题,优选地,本发明实施例采用渐进格网(Progressive Mesh,以下简称PM)的边折叠简化方法,经过PM的边折叠简化方法得到的简化结果称为网格骨架。本发明实施例中,采用PM的边折叠简化方法对相邻边界线内外的网格和/或包括采样点在内的特殊点分别进行处理,能够保证单体在经过该处理之后,在空间关系保持一致,以及多元数据一体化的情况下,显示的采样点信息与结构模型空间位置能够正确匹配。
步骤A执行完毕之后,根据为单个地质体构建的多分辨率模型,进行全场景多分辨率数据组织(即步骤B)。在步骤B中,本发明实施例采用R—Octree两层索引,即R树索引以及八叉树索引,定位所要绘制的地质体以及具体的渐进格网简化序列。
本发明实施例中,采用R树索引能够更加快速地定位需要进行绘制的地质体。并且,当R树叶子结点记录的地质体数据与当前视景体相交或者距离视点较近,则该地质体被重新绘制。另外,在对单个地质体进行具体的绘制时,本发明实施例能够根据视点控制关系,导入该单体不同细节的简化序列。由于确定三维地质结构为全场景的地质体之后,导入的对单体不同细节的简化序列与确定三维地质结构为多体之后导入的简化序列类似,在此不作赘述。
本发明实施例中,优选所有单体的简化序列由全场景的一棵Octree统一索引(即八叉树索引)。当针对每一单体维护八叉树索引时,一方面多个八叉树将大大增加计算机的负担,不利于对计算机计算过程的有效管理;另一方面,由于不同八叉树层次不一样,并且结点大小不一致,因此所表达的分辨率并不一致,导致无法实现多体的统一绘制,甚至出现相邻边界的交叉。因此,本发明实施例中,针对三维地质结构模型整体,采用一棵Octree统一索引所有单体的简化序列。
图2示出了根据本发明一个实施例的多体简化序列的Octree统一索引的示意图。如图2所示,该索引以四叉树进行表述。在采用一棵Octree统一索引三维地质结构模型的所有单体时,创建单体LOD模型,使得多层PM构建算法能够设置同一个Octree信息。并且,控制误差δi由所有单体的顶点重要度Q(v)、最大值Qmax和最小值Qmin决定。另外,如图3示出了根据本发明一个优选实施例的八叉树节点选择示意图。参见图3,本发明实施例可以将Qmax以及Qmin划分为n等份作为每层的控制误差δi,并设置n为八叉树最大层数,使得八叉树结点存储每一个单体TIN落入该结点范围内的简化序列。
上文对海量三维地质结构模型数据进行绘制的过程中的步骤A以及步骤B进行了介绍,现对步骤C,数据调度与绘制进行介绍。具体地,本发明实施例中,数据调度与绘制的过程包括步骤C1至步骤C3:
步骤C1、通过R树索引和八叉树索引,将三维地质结构模型整合到多元数据一体化显示框架内,并在多元数据一体化显示框架内构架数据获取层;
步骤C2、在数据获取层引入TIN调度器和PM序列调度器,其中,TIN调度器和PM序列调度器用于在绘制过程中网格骨架数据和简化序列数据的调度,并且网格骨架数据和简化序列数据使用对象池进行管理;
步骤C3、利用TIN调度器和PM序列调度器导入对象池中的数据绘制三维地质结构模型。
对于步骤C1,如图4示出了根据本发明一个优选实施例的调度获取的数据并对三维地质结构进行绘制的示意图。参见图4,通过构建三维地质结构模型的R树以及简化序列的Octree索引,本发明实施例将需要绘制的三维地质结构模型整合到多元数据一体化显示框架内,并在显示框架构建如图4所示的数据获取层。之后,由于数据的载入载出与视点相关,本发明实施例将TIN调度器以及PM序列调度器引入数据获取层。另外,为避免大量的数据频繁更新产生计算机内存碎片,使用对象池对网格骨架数据和简化序列数据进行管理。
对于步骤C2,本发明实施例中,当场景的视景体变化时,启动数据获取层的TIN调度器和PM序列调度器进行数据调度,并将调入内存的网格骨架数据和简化序列数据存储到对象池中。其中,视景体为视点的具体表现,对象池为预先设置的内存空间。在进行数据调度时,TIN调度器调入根据视景体确定的可绘制地质单体,PM序列调度器调入根据视景体确定的可绘制地质单体中需要绘制的简化网格序列。本发明实施例中,每一个调度器采用一个线程进行实现。
本发明实施例中,TIN调度器调入根据视景体确定的可绘制地质单体之前,判断对象池中是否存储可绘制地质单体。若存在,则保持对象池中已存在的地质单体,不将地质单体重新调入,若不存在,则继续判断对象池是否有容纳空间。若对象池中有容纳空间,则直接将外存中存储的可绘制地质单体调入对象池,若对象池中无容纳空间(即对象池中可存储地质单体的空间不够接收可绘制地质单体),则利用TIN调度器删除对象池内已确定不需要绘制的地质单体,直至对象池内有容纳空间能够将外存中存储的可绘制地质单体调入。
同理,PM序列调度器调入根据视景体确定的可绘制地质单体中需要绘制的简化网格序列之前,判断对象池中是否存在可绘制地质单体。若不存在,则PM序列调度器处理下一个地质单体,若存在,判断简化网格序列是否已经调入至对象池。若简化网格序列已调入,则保持对象池中已存在的简化网格序列,不重新导入,若未调入,则继续判断对象池中是否有容纳空间。若对象池中有容纳空间,则直接将外存中存储的简化网格序列调入对象池,若无容纳空间,则利用PM序列调度器删除对象池内已确定不需要绘制的简化网格序列,直至对象池内存在容纳空间能够将外存中存储的可绘制地质单体调入。
具体地,当场景的视景体变化以及视点变化时,判断当前绘制的数据(包括地质单体以及简化网格序列)是否为最优绘制数据。在对绘制数据进行判断时,场景层将视点信息发生变化的消息告知数据获取层的TIN调度器和PM序列调度器。之后,TIN调度器能够根据R树结点与视景体相交关系判断视点的更改是否需要新的数据TIN的被可见(即需要被绘制),而PM序列调度器则根据视点计算出允许绘制的最大分辨率结点所在的层级,并等待TIN调度器的通知。
上文提及,本发明实施例中,TIN调度器能够根据R树结点与视景体相交关系判断视点的更改是否需要新的数据TIN的被可见。即,本发明实施例中,TIN调度器根据视景体和结点相交关系,判断哪些TIN是可见或者不可见的。另外,对于包含大量地质单体(以下简称TIN对象)的情况下,有些地质体TIN甚至还在外存,则TIN调度器还需要将内存池内一些不可见的TIN卸载,以便将新的TIN导入对象池。
当TIN调度器能够根据R树结点与视景体相交关系判断视点的更改是否需要新的数据TIN的被可见时,PM序列调度器则根据视点计算出允许绘制的最大分辨率结点所在的层级,并等待TIN调度器的通知。TIN调度器完成视景体内TIN对象可见性处理之后,通知PM序列调度器进行可见TIN对象的简化序列的导入和卸载。并且,PM序列调度器已经计算需要绘制最大分辨率结点所在位置,则载入从该结点向上父结点内所有相关简化序列,当内存中不存在存储的新的TIN对象时,则将外存中存储的新的TIN对象导入如图4所示的对象池。本发明实施例中,将TIN对象导入对象池时,仅需要处理TIN对象池内可见对象的序列,并保证在插入到TIN对象简化序列时,序列记录之间是按边折叠逆序排列。
对于步骤C3,当绘制过程由渲染层完成,由上文可知,本发明实施例中的绘制与数据调度以及视点变化无关,直接根据对象池的数据进行绘制即可。
如图5所示,本发明实施例中,在对视点相关LOD模型进行多层次绘制时,根据物体距离视点的位置d选择相应的细节层次进行数据导入与绘制。当视点位置变化时,重新选择相应的简化模型进行绘制。
选择层次细节模型的方式由视点张角为α,投影平面的边长为L,被投影简化序列线段长度为l,视点与该线段中心的距离为d,线段与投影平面的夹角为β,物体单位长度在投影平面上的像素数为λ,则线段l在投影平面上的投影长度τ(也可称为像素数):
在上文介绍的公式中,当τ>n时,本发明实施例能够确定对简化序列进行绘制,其中,n为用户定义精度参数,实际操作中,n通常取值为常数10。
在经过上文介绍的处理之后,三维地质结构模型的实际面积越小、距离视点越远、与投影平面的夹角越大,图形单元在屏幕上的投影面积就越小。因此,实际操作中,本发明实施例能够根据用户的视觉特征,降低显示时使用的模型分辨率,并且保证不会对视觉造成太大的影响。另外,本发明实施例中,LOD模型通过降低图形模型的复杂度减少了图形单元的绘制量,进而提高了物体的绘制速度,并采用多线程技术,将绘制、数据调度过程等任务分别管理,降低频繁数据更新造成的绘制跳跃问题。如图6a-6b示出了大剧院结构模型多分辨率绘制结果。当进行整个模型的浏览时,只需要将视景体内的模型进行高分辨率显示,则能够大大降低绘制的效率,提高显示的速度,进而实现海量的三维地质模型的绘制以及浏览。
根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
依据本发明实施例的海量三维地质结构模型数据绘制方法,能够采用R—Octree两层索引定位需要绘制的三维地质结构模型中的单个地质体和相关的简化序列,并利用网格骨架调度器和简化序列调度器导入对象池中的数据绘制三维地质结构模型。现有技术中,在对三维地质结构模型进行绘制时,在保证建模精度和显示效果的前提下,无法保证三维地质结构模型的绘制效率,建模精度的提高导致现有技术中对三维地质结构模型的显示速度过慢。并且,现有技术无法直接解决海量数据的绘制。另外,现有技术中对三维地质结构模型进行绘制的过程往往采用单线程,无法降低频繁数据更新导致的绘制跳跃问题。
而本发明实施例在对海量三维地质结构模型数据进行实时多分辨率绘制时,考虑根据三维结构模型既有多个地质单体构成,又有大量不规则三角网组成单体的特点,首先对三维结构模型数据进行全场景模型数据组织,实现多分辨率数据组织,可根据视点获取不同精度的数据;其次,采用多线程机制,由网格骨架调度器和简化序列调度器将基于视点确定的模型绘制数据导入到对象池中,由TIN对象绘制器(TIN Render)完成基于视点的海量数据绘制。因此,依据本发明实施例的海量三维地质结构模型数据绘制方法能够根据用户设置的视觉参数自动选择相应的模型数据,在降低模型显示分辨率的前提下不对视觉造成影响,进而能够解决海量数据绘制对计算机造成的巨大负担问题。并且,不同于现有技术中的单线程,本发明实施例中采用多线程机制,将网格骨架调度器,简化序列调度器和TIN对象绘制器通过对绘制过程以及数据调度过程分别进行管理,能够降低频繁数据更新造成的绘制跳跃问题,使得绘制转换过程比较平滑。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
Claims (9)
1.一种海量三维地质结构模型数据绘制方法,其特征在于,所述方法包括:
步骤A、全场景模型数据组织,采用R—Octree两层索引定位三维地质结构模型中的任一地质单体网格骨架和对应的渐进网格简化序列,其中,所述三维地质结构模型由至少一个所述地质单体构成;
步骤B、模型数据调度,利用网格骨架调度器和简化网格序列调度器从外存调度所述网格骨架数据以及对应简化序列数据至内存,其中,所有网格骨架数据和简化序列数据使用对象池进行管理;
步骤C、数据绘制,当所述网格骨架数据以及所述简化序列数据发生改变,绘制任一所述地质单体的网格骨架数据以及简化序列数据,并在三维场景中显示绘制结果。
2.根据权利要求1所述的方法,其特征在于,所述地质单体的网格骨架由封闭的不规则三角网组成,所述简化序列为对所述地质单体网格骨架的细化表达。
3.根据权利要求1所述的方法,其特征在于,采用R—Octree两层索引定位三维地质结构模型中的任一地质单体的网格骨架以及对应的渐进网格简化序列,包括:
对于任一地质单体的网格骨架以及对应的简化序列,采用R树对所述网格骨架进行索引,其中,所述R树的叶子结点存储所述网格骨架的唯一标识信息;采用八叉树Octree对所述简化序列进行索引,其中,所述八叉树Octree的叶子结点存储所述简化序列的唯一标识信息。
4.根据权利要求1所述的方法,其特征在于,利用网格骨架调度器和简化序列调度器从外存调度所述网格骨架数据以及对应简化序列数据至内存之前,还包括:
根据视点位置计算所述地质单体的调度顺序以及需要调度的所述地质单体的简化序列的绘制。
5.根据权利要求4所述的方法,其特征在于,根据视点位置计算所述地质单体的调度顺序,包括:
若视点与所述R树的叶子结点相交,记录所述结点对应地质单体,以将所述地质单体调入内存;
计算所述地质单体的每个简化序列距离所述视点的位置d,根据d的大小确定简化序列的导入顺序。
6.根据权利要求4所述的方法,其特征在于,根据视点位置计算所述简化序列的绘制步骤为:
视点张角为α,投影平面的边长为L,被投影简化序列线段长度为l,视点与该简化序列中心的距离为d,线段与投影平面的夹角为β,物体单位长度在投影平面上的像素数为λ,则简化序列线段l在投影平面上的投影长度τ为
当τ>n时,确定对所述简化序列进行绘制,其中,n为用户定义精度参数。
7.根据权利要求1所述的方法,其特征在于,利用网格骨架调度器和简化序列调度器从外存调度所述网格骨架数据以及对应简化序列数据至内存,包括:
当所述视点位置变化,启动所述网格骨架调度器和所述简化网格序列调度器,进行数据调度,并将所述调入内存的网格骨架数据和简化序列数据存储到对象池中,其中,所述对象池为预先设置的内存空间;
所述网格骨架调度器调入根据所述视点确定的可绘制地质单体;
所述简化网格序列调度器调入根据所述视点确定的所述可绘制地质单体中需要绘制的简化网格序列。
8.根据权利要求7所述的方法,其特征在于,所述网格骨架调度器调入根据所述视点确定的可绘制地质单体,包括:
调入前,判断所述对象池中是否存在所述可绘制地质单体;
若存在,则保持所述对象池中已存在的地质单体,不将所述地质单体重新调入;
若不存在,则继续判断所述对象池是否有容纳空间;
若有,则直接将外存中存储的所述可绘制地质单体调入所述对象池;
若无,利用所述网格骨架调度器删除所述对象池内已确定无需绘制的地质单体,直至所述对象池内有容纳空间。
9.根据权利要求7所述的方法,其特征在于,所述简化网格序列调度器调入根据视点确定的某一地质单体需要绘制的简化网格序列,包括:
调入前,判断所述对象池中是否存在所述可绘制地质单体;
若不存在,则所述简化网格序列调度器处理下一个地质单体;
若存在,判断所述简化网格序列是否已经调入至所述对象池;
若调入,则保持所述对象池中已存在的简化网格序列,不重新导入;
若未调入,则继续判断对象池是否有容纳空间;
若有,则直接将外存中存储的所述简化网格序列调入所述对象池;
若无,利用所述简化网格序列调度器删除所述对象池内已确定无需绘制的简化网格序列,直至所述对象池内有容纳空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410317832.6A CN104091362B (zh) | 2014-07-04 | 2014-07-04 | 海量三维地质结构模型数据绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410317832.6A CN104091362B (zh) | 2014-07-04 | 2014-07-04 | 海量三维地质结构模型数据绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104091362A true CN104091362A (zh) | 2014-10-08 |
CN104091362B CN104091362B (zh) | 2017-12-01 |
Family
ID=51639077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410317832.6A Active CN104091362B (zh) | 2014-07-04 | 2014-07-04 | 海量三维地质结构模型数据绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104091362B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108986205A (zh) * | 2018-06-08 | 2018-12-11 | 广州虎牙信息科技有限公司 | 一种绘制体素模型的方法、装置、设备和存储介质 |
CN114255188A (zh) * | 2021-12-23 | 2022-03-29 | 中国矿业大学(北京) | 三维地质岩性网格模型体绘制的边界线性平滑方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140039468A (ko) * | 2012-09-24 | 2014-04-02 | 플랜트에셋 주식회사 | 레이저 스캐너를 이용한 플랜트 구조물의 품질 및 시공성 검사방법 |
-
2014
- 2014-07-04 CN CN201410317832.6A patent/CN104091362B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140039468A (ko) * | 2012-09-24 | 2014-04-02 | 플랜트에셋 주식회사 | 레이저 스캐너를 이용한 플랜트 구조물의 품질 및 시공성 검사방법 |
Non-Patent Citations (8)
Title |
---|
刘贤梅等: ""基于几何和属性误差的边折叠网格简化算法"", 《大庆石油学院学报》 * |
吕希奎: ""基于遥感数据的选线三维地理环境建模方法"", 《探测技术》 * |
吕晟珉等: ""基于离散曲率的边折叠网格简化算法"", 《浙江大学学报(理学版)》 * |
张利强等: ""一种地质体三维建模与可视化的方法研究"", 《中国科学》 * |
杨利容: ""复杂矿体结构三维建模与储量计算方法研究"", 《中国博士学位论文全文数据库 基础科学辑》 * |
翁正平: ""复杂地质体三维模型快速构建及更新技术研究"", 《中国博士学位论文全文数据库 基础科学辑》 * |
邹志文等: ""结合网格分割和边折叠的网格简化算法"", 《计算机工程》 * |
魏嘉等: ""三维地质模型海量数据组织和可视化技术研究"", 《石油物探》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108986205A (zh) * | 2018-06-08 | 2018-12-11 | 广州虎牙信息科技有限公司 | 一种绘制体素模型的方法、装置、设备和存储介质 |
CN108986205B (zh) * | 2018-06-08 | 2023-05-26 | 广州虎牙信息科技有限公司 | 一种绘制体素模型的方法、装置、设备和存储介质 |
CN114255188A (zh) * | 2021-12-23 | 2022-03-29 | 中国矿业大学(北京) | 三维地质岩性网格模型体绘制的边界线性平滑方法及装置 |
CN114255188B (zh) * | 2021-12-23 | 2022-06-24 | 中国矿业大学(北京) | 三维地质岩性网格模型体绘制的边界线性平滑方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104091362B (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4120199A1 (en) | Image rendering method and apparatus, and electronic device and storage medium | |
US20140192159A1 (en) | Camera registration and video integration in 3d geometry model | |
US20170186206A1 (en) | Representation of overlapping visual entities | |
CN102323996B (zh) | 基于三维gis技术的输电线路可视化状态监测系统 | |
CN101908202B (zh) | 一种电子海图的快速显示方法 | |
CN111506939A (zh) | 一种车库设计方法、装置、终端和介质 | |
CN101414383B (zh) | 图像处理设备和图像处理方法 | |
US9529696B2 (en) | Screen bounds for view debugging | |
CN110992469A (zh) | 海量三维模型数据的可视化方法及系统 | |
CN102759353A (zh) | 导航装置、确定高度坐标的方法和生成数据库的方法 | |
US10783687B2 (en) | Efficient duplicate label handling | |
US11561637B2 (en) | Method and device of drawing handwriting track, electronic apparatus, medium, and program product | |
CN106649817A (zh) | 地理信息系统三维管模型构建放样方法及装置 | |
CN110990919A (zh) | 城市轨道交通三维gis选线设计分析方法 | |
CN106355640A (zh) | 一种地上地下三维一体化空间的处理方法和系统 | |
CN113590706B (zh) | 一种基于cim的可视化平台 | |
CN108346174B (zh) | 一种支持单模型交互的三维模型合并方法 | |
US20200013210A1 (en) | Efficient Label Insertion and Collision Handling | |
CN104091362A (zh) | 海量三维地质结构模型数据绘制方法 | |
CA2919051C (en) | Global grid building in reverse faulted areas by an optimized unfaulting method | |
Wu et al. | GPU ray casting method for visualizing 3D pipelines in a virtual globe | |
CN101702169B (zh) | 用于数字岸线演变分析的正交断面方法 | |
CN103167032A (zh) | 地图辅助的室内定位后台服务系统 | |
CN102117288A (zh) | 一种三维建模中搜索建模数据的方法及装置 | |
CN115062564B (zh) | 基于云平台的地表二维水动力模拟实现方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |