首页 理论教育 常用体绘制技术

常用体绘制技术

时间:2022-02-14 理论教育 版权反馈
【摘要】:LOD技术即Levelsof Detail的简称,意为多细节层次。运用体绘制的多级LOD技术能够实现以上目标,即在1级LOD的基础上,通过判断视点与数据体之间的距离,在体绘制过程中进行2级LOD抽稀计算,也就是保持数据载入量相对不变,依据视点到观察对象的距离设定2级LOD系数,对三维网格进行间隔采样,随着距离的拉近,系数也相应地变小。

(一)基于八叉树的数据组织

在任何一个处理海量规则数据体的算法中,减少I/O操作尤为重要,首先需要优化数据的组织方式。一个有效的解决办法是将整块体数据划分为较小的数据块,以数据块为单位进行磁盘读取操作,即一次读取整个数据块。可见,数据块的大小直接影响了算法的效率,分块过小,会导致I/O操作中断的次数增加,降低系统效率;分块过大,会使单次读取的时间增加,导致一些无用数据的读入。八叉树结构是由Hunter于1978年在其博士论文中首次提出的一种数据结构,它是由四叉树结构推广到三维空间而形成的一种三维数据结构,其树形的结构在空间剖分上具有很强的优势,因而得到了广泛的应用。在八叉树形结构中(图7-5),根结点表示整个三维空间区域,将该区域分成8个大小相同的小区域,用其8个“子女”表示,继续将每个小区域分成8个更小的区域,以此类推,直到不再需要分割或达到规定的层次为止。一般来说,数据块的大小应该保持在0.5~4.0MB,同时为了使数据块能够载入显存,应该确保数据块的边长为2的整数次幂(32×32×32个或64 ×64×64个体素等)。

图7-5 八叉树划分及结构示意图

(二)LOD及ROI

1.LOD技术

LOD技术即Levelsof Detail的简称,意为多细节层次。1976年,Clark提出了细节层次模型的概念,认为当物体覆盖屏幕较小区域时,可以使用该物体描述较粗的模型,并给出了一个用于可见面判定算法的几何层次模型,以便对复杂场景进行快速绘制。主要依据视觉上的特性,在同一场景中,离视点距离较远的物体需要较粗、模糊的图像,反之则需要细致、精确的图像。

LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。LOD模型主要有两种实现方式。①静态LOD:在预处理过程中产生一个物体的几个离散的不同细节层次模型。实时绘制时根据特定的标准选择合适的细节层次模型来表示物体。②动态LOD:在实时绘制时可以从动态生成的数据结构中抽取出所需的细节层次模型。从这个数据结构中可以得到大量不同分辨率的细节层次模型,分辨率甚至可以是连续变化的。

在保持场景渲染效果不变的情况下,通过LOD技术一步一步简化对象显示的层次细节以减少计算场景的几何复杂度,从而提高渲染算法的效率。它的原理是为每一个多面体模型创建几个不同逼近精度的几何模型。每个模型与原模型相比,均保留了一定程度的细节,在绘制时,根据不同的要求和准则选择适当级别的层次模型来表示对象。

通过LOD处理每一层次的模型对象,对粒度进行“粗化”,即是对数据体进行分割和抽稀的过程,每一层的分割系数(每一层等分的子体数)为8,抽稀系数为2(N-n)。其中,N为数据体的总层数,n为该子体所处的细节层次,即1级LOD。

式中,v为地震数据体所占的字节总数;v0为适量地读取一次数据所需的字节数。

构造完八叉树后,以自底向上、自左向右的顺序为每个结点建立一个v0大小的抽稀子体文件。在体绘制时,为了减少海量体数据的数据载入量,同时降低体绘制的运算复杂度,就需要计算不同层次所对应的抽稀子体,从而实现更高效率的图形绘制,达到视觉要求。运用体绘制的多级LOD技术能够实现以上目标,即在1级LOD的基础上,通过判断视点与数据体之间的距离,在体绘制过程中进行2级LOD抽稀计算,也就是保持数据载入量相对不变,依据视点到观察对象的距离设定2级LOD系数,对三维网格进行间隔采样,随着距离的拉近,系数也相应地变小。

2级LOD系数为2(N-n),其中,N为2级总层数,n为当前2级LOD细节层次。以此类推,多级LOD技术能够使大规模地震数据体的体绘制的交互性变得流畅,解决了原来加载困难的问题。即使在某些时候以丢失一些细节为代价,使得生成的图像比原来要模糊一些,但也基本上满足了地震解释的需要,既缩短了数据的读取时间,又缩短渲染时间,大幅提高了绘制效率。

2.ROI技术

感兴趣区域(ROI,Region Of Interest)是指在实际的应用中,观察者出于某一特定的目的对数据集中的数据的关注程度不尽相同的原理,从数据集中抽取关注程度高的区域。如二维图像中某一对象的边界,三维数据集中的某一对象的外表面,油藏数值模拟中某一时间间隔内的储层模型。一个ROI可以是感兴趣的点集(POI),也可以是感兴趣的数据体(VOI)。可见, ROI有3个根本不同的含义:①作为一个数据集的组成部分,具有唯一属性使得与其他部分隔离;②作为一个独立部分,如矢量图形或者栅格图中的一个绘图元素;③作为一个独立的结构化的语义信息对象,具有一组空间或时间坐标特性。

在油藏的可视化应用过程中,以第一和第三种形式最为常见。在渗透率三维数据体中,希望抽取高渗带区域,用以查看地下油气水的运动效果,这时候的ROI即为第一种形式。在精细储层地质研究中,研究的目标区往往小于地震数据体的区域,这时候只需要抽取本次研究的目标区域中的部分数据体。这可以看作是ROI的第三种形式。第二种形式的ROI可能会在可视化的过程中,根据要求动态选择空间实体的一种方法,比如满足某一条件的空间实体显示,否则隐藏。

第一种和第二种形式的ROI只需要用户输入一定的条件,可视化系统就会自动抽取数据体,而第三种与前两种不同,需要用户直接参与交互定义ROI。这里的操纵器类响应并编辑用户事件。一个直接响应用户事件的拖拽器都属于一个操纵器并且该拖拽器能够反过来改变操纵器的区域。用户可以在一个数据体内调整或改变感兴趣区域的大小和位置,同时显示的数据体也会随着拖拽器一起改变(图7-6)。

(三)大数据管理方法

现在的许多地震数据体常常都超过几十千兆字节(GB),这些数据很容易超出可用的系统内存。在这样的情况下,这就需要大数据管理(LDM)模型。即在同一的空间参照下,根据用户需要以不同分辨率进行存储与显示,形成分辨率由粗到细、数据量由小到大的金字塔结构。是一种典型的分层数据结构形式,适合于规则体数据的多分辨率组织,也是一种体数据的有损压缩方式。

它是一个基于多层次、多分辨率的数据管理器。每个数据集只需构建一次金字塔,之后每次查看数据集时都会访问这些金字塔。体数据集越大,创建金字塔集所花费的时间就越长。但是,这也就意味着可以为将来节省更多的时间。每层更高一级的切片以更低的分辨率展示大部分的数据体。所以最顶层的切片涵盖了低分辨率的整个体的概括,最低一级的切片包含完整的高分辨率数据(图7-7)。

金字塔通过仅检索使用指定分辨率(取决于显示要求)的数据,可以加快栅格数据的显示速度。利用金字塔,可在绘制整个数据集时快速显示较低分辨率的数据副本。而随着放大操作的进行,各个更精细的分辨率等级将逐渐得到绘制;但性能将保持不变,因为在连续绘制更小的各个区域时,数据存取器会根据用户的显示比例自动选择最适合的金字塔等级。如果不使用金字塔,则必须从磁盘中读取整个数据集,然后将其重采样为更小的大小。这便称为“显示重采样”,在刷新显示内容时发生。

图7-6 ROI的交互定义

图7-7 LDM构建示意图

(四)体绘制技术

体绘制是一种直接由三维数据场在屏幕上产生二维图像的技术。地震数据体的体绘制技术是从医学中CT、MRI成像等技术而来的。1999年,Gerald DKidd提出了基于体素模型的算法,他将三维地震数据体中每一个数据采样点建立一个体素,根据采样点的振幅给予不同的颜色和透明度,应用直接体绘制算法成功得到了三维地震数据的可视化图像,开创了三维地震数据体可视化的新思路。Paradigm公司在此基础上开发了Voxel Geo软件,得到了国内外用户的广泛应用。

体绘制的目的就在于提供一种基于体素的绘制技术,它有别于传统的基于面的绘制技术,能显示出对象体丰富的内部细节。为了加快体绘制速度,人们提出了许多优化方法。通用的体绘制加速的主要原理包括提前终止光线计算、空间数据结构相关性和并行方法等。提前终止光线计算的目的是消去数据体中对光线贡献很小的体元,其主要有两种表现形式:一种是算法按从前到后的顺序沿光线积分,一旦光线上的积累不透明度大于事先设定的阈值,就停止此光线的计算;另一种形式是随着光线离视点距离的增加而增大采样步长或减少采样频率。利用空间数据结构的目的是探求数据集中的相关性,对数据的相关性进行编码,从而剔除无关体元。常用的数据结构包括八叉树、金字塔、K-D树和行程编码等。绘制算法利用这些数据结构快速跳过那些透明体元。

体绘制方法提供二维结果图像的生成方法。根据不同的绘制次序,体绘制方法主要分为两类。①以图像空间为序的体绘制方法和以物体空间为序的体绘制方法。以图像空间为序的体绘制方法是从屏幕上每一像素点出发,根据视点方向,发射出一条射线,这条射线穿过三维数据场,沿射线进行等距采样,求出采样点处物体的不透明度和颜色值。可按由前到后或由后到前的两种顺序,将一条光线上的采样点的颜色和不透明度进行合成,从而计算出屏幕上该像素点的颜色值。这种方法是从反方向模拟光线穿过物体的过程。②以物体空间为序的体绘制方法首先根据每个数据点的函数值计算该点的颜色及不透明度,然后根据给定的视平面和观察方向,将每个数据点投影到图像平面上,并按数据点在空间中的先后遮挡顺序,合成计算不透明度和颜色,最后得到图像。

1.光线投射法

光线投射方法是基于图像序列的直接体绘制算法。从图像的每一个像素,沿固定方向(通常是视线方向)发射一条光线,光线穿越整个图像序列,并在这个过程中,对图像序列进行采样获取颜色信息,同时依据光线吸收模型将颜色值进行累加,直至光线穿越整个图像序列,最后得到的颜色值就是渲染图像的颜色(图7-8)。体绘制的光线投影法步骤如下。

图7-8 光线投射方法基本流程

(1)对最终图像的每个像素,都有一条光线穿过体素。在这一阶段,考虑体素被接触并且在一个原始边界内封闭是很有用的,一个简单的几何对象——通常是一个长方体,表示光线和体的相交。

(2)沿着光线的射线部分位于体的内部,等距离的点采样被选择。通常体和表示光线的射线对齐,样本点通常被放于体素中间。因为如此,有必要对从它周围的体素的样本点的值进行插值。

(3)计算出每个样本点的梯度。这些梯度代表在体内部的局部表面的方向。然后,这些样本根据它们的表面方向和实际的光源被加阴影,着色加光照。

(4)在所有的样本点加阴影后,他们沿着光线复合,得到最终的每个被处理过的像素的颜色值。组成是直接派生于渲染方程并且是像在一个投影机上的混合图层,这个过程被不断重复。计算开始于视图中最远的样本点,并且结束于最近的一个。这个工作流水线确认被遮挡的体部分不影响得到的像素。

2.抛雪球法

抛雪球法的最初工作是由Westover提出的,它是一种以物体空间为序的直接体绘制算法。这种方法又称之为溅射方法,把能量由中心向四周逐渐扩散的状态形象地看作溅射的雪球,就好像把一个雪球(体素)扔到一个玻璃盘子上,雪球散开以后,在撞击中心的雪量(对图像的贡献)最大,而随着离撞击中心距离的增加,雪量(贡献)减少。该方法把数据场中每个体素看作一个能量源,当每个体素投向图像平面时,用以体素的投影点为中心的重建核将体素的能量扩散到图像像素上。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈