杨 博
(北京大学地球与空间科学学院 北京 100871)
目前地学领域对三维地学信息系统的需求越来越多,系统实现效果的要求也越来越高[1~2]。尽管近年来计算机硬件发展迅猛,但是面对海量的地质建模属性数据时,提高地质模型可视化的效率,优化地质模型可视化的效果,依然是地质建模过程中的迫切需求。
地质模型可视化技术面临的数据量极大,数据种类繁多,涵盖了地震数据,测井数据,构造属性数据,岩性属性数据等。快速、高效地生成准确的几何数据模型,流畅、逼真地进行三维场景的渲染,方便、快捷地帮助地质专家和地质工作者对三维场景中的数据进行分析,是实现地质工程三维可视化系统的重要研究内容,也是可视化在地质工程领域中重要作用的体现。
在实际应用中,地质剖面是地质模型的重要组成部分,可以相对容易的通过地质剖面反应复杂地质模型的内部现象,展示地质模型的实际问题,加之地学专家的工作经验,地质剖面成为了地质建模过程中的重要数据[3~4]。地质剖面的获取手段较多,如通过测井、地震数据等;且数据类型简单,更是成为地质建模领域中的基础数据。运用快捷高效的可视化技术进行剖面描述,能够对地质研究工作效率和工作水平的提高起到关键作用。
在三维建模发展过程中,地质剖面数据也从原来的二维平面数据发展到了近年提出的三维建模方法中的基于交叉折剖面数据[11~12],该剖面在建模中相比简单剖面和平行剖面[5~10]有了很大优势。特别是含有大量复杂地质情况时,比如地质模型中岩性、断层较多的时候。将折剖面展开,获取剖面线段多边形等关键数据集合,组成岩性剖面模型,并将岩性符号映射到模型上,在地质建模时有着重要的研究价值[13~14]。
为了解决岩性剖面识别和映射的问题,在展开折剖面的数据基础上,提出了岩性剖面自识别可视化算法,同时对岩性符号映射进行质量控制,将各种岩性符号准确无变形地映射岩性剖面上。该方法不仅能够对简单和复杂剖面进行自动识别并可视化,还能够对岩性剖面中的不同岩性符号映射过程进行质量控制,以达到更好的可视化效果,减少纹理变形和扭曲的问题,能有效地展示岩性剖面的三维地质特点,展示地质模型岩性的分布,并在实际地质建模领域中取得应用。
三维折剖面一般垂直于三维空间中的XY平面(图1),由点、线作为基本数据单元,组成了多边形,再由一个多边形或多个多边形组成地质剖面。
图1 折剖面
其中线段由点按照顺序相连,形成带有方向属性的线段,将线段再顺序相连,形成了封闭的多边形区域,该区域具有封闭性,且表示地质模型中的某一特定岩性。
基于交叉折剖面的三维地质建模方法中,折剖面提取自三维地质模型,但因为其在三维空间中不再是简单的直线,线段具有异向性。在折剖面图中,D、F为折点,CD、EF为折线,主要为表明该位置方向发生变化,在实际数据中并不存储。BD、DF、FH具有异向性,折剖面由两个多边形构成。
展开后的折剖面数据依然由点、线作为基本单元,将原来的地质剖面的多边形进行转换,将三维平面展开到二维的辅助平面上。过程如图2所示。
图2 展开折剖面过程
具体转化步骤:
1)在XY平面中获取原折剖面的投影线段L;
2)通过对折点进行水平等距离展开,使原来的折线段展开成为直线L′,各线段距离之和不变,只是折点的位置发生坐标转化,转换到水平位置上;
3)借助线段L′作为辅助线,对原折剖面多边形各点进行坐标转换,完成折剖面的展开。
通过展开折剖面,将三维的可视化问题转换到二维平面上进行,利用辅助平面来设计岩性剖面可视化控制算法,降低了可视化的难度。
地质模型中岩层变化较多,有时在一个剖面中具有不规则的多种岩性,同时在地质模型可视化的过程中,需要对多地质剖面进行统一管理和渲染,所以岩性剖面的数据组成主要分为岩性符号库和剖面数据库两部分(图3)。
图3 岩性剖面数据组成
其中,对岩性符号库的管理主要是对各种岩性符号图片的索引管理和存储,数据分为索引表和图片文件。将数据存储在文件或数据库中,以方便岩性剖面可视化过程中,对索引和岩性图片数据调度和渲染。对剖面元素数据的管理主要是将地质模型中选取的剖面的边界线段提取出来。
其中剖面数据分为两种,其一是简单剖面的一条剖面线段,通常用来描述同一种岩性的剖面。在数据组织时根据岩性的厚度来在获取该岩性剖面,通过在该剖面线段生通过指定方向和长度,求出岩性剖面多边形的边界。另一种是复杂剖面的多条多边形线段,每条线段可以连接成一个闭合的空间,空间中根据索引来获取岩性符号数据库中的纹理映射关系。算法可以自识别剖面数据线段,在剖面线段内映射岩性符号,生成岩性剖面图如图4所示。
图4 岩性剖面图
在地质模型数据的基础上,进行剖面边界的提取,结合岩性符号数据,来对岩性剖面进行自识别可视化。算法对不同的剖面边界类型及数量进行判断,选择对应的岩性符号来进行纹理映射,对映射结果的各岩性剖面进行映射质量控制,生成符合实际情况的岩性剖面。最后将岩性剖面转化为表面网格可视化。具体流程如图5所示。
图5 算法流程图
岩性剖面的主要数据为岩性符号和剖面的多边形数据。通过索引的方式,在建模时能够自识别剖面多边形和岩性符号之间的映射关系。通过控制多边形线段数组的数量来循环地读取岩性剖面多边形,通过给定索引参数,将岩性符号作为纹理映射到多边形内。具体流程如图6所示。
在岩性剖面自识别算法描述:
第一步:使用循环将所有基础的多边形数据读取到内存中。
图6 岩性剖面自识别流程图
第二步:构造继承自STL的vector动态数组来循环的加载多边形数据。
第三步:将动态数组的数据加入到渲染机制的Geometry中。
第四步:将纹理图片和多边形数据通过索引来对应起来。
第五步:数据节点和场景进行可视化,实现岩性剖面数据的自动识别。
图7给出岩性符号映射控制算法的流程。
图7 岩性剖面质量控制流程图
岩性符号质量控制算法步骤:
第一步:设定控制参数,将相对平面中的X步长和Y步长设定,避免因为映射造成的岩性符号变形与拉伸问题。
第二步:读取纹理索引列表,结合纹理控制参数来选定映射平面。
第三步:进行纹理坐标转换,将纹理坐标和岩性剖面多边形数据加载到结合节点树种。
第四步:可视化场景,观察质量控制的效果,如果不满意回到第一步进行步长参数的调整。如果可视化效果合适,质量控制算法完成。
由于地质模型中岩性变化多样,岩性剖面中剖面线段的形态也各不相同,如何将岩性符号完整、准确地映射到剖面空间上就显得尤为重要。采用纹理映射的方法,通过对映射进行质量控制,在不同映射图片的两个垂直分量上进行步长的控制,避免产生纹理拉伸和变形的情况,更接近地质工程中的实际情况,也符合地质专家和工程人员的经验认知。为了更好地满足地质专家和工程人员的需求,就需要借助纹理映射技术来实现用计算机模拟地质剖面的真实感官。将岩性符号映射到地质模型上,更好地展示岩性内容,解释地质含义。
图8为岩性符号在质量控制前后的对比,可以看到没有进行步长参数设置之前,由于岩性属性的不规则性,容易导致相对纹理映射时造成严重的拉伸和变形,如图8(a)所示。而经过步长参数的控制,使纹理映射过程中减少因为相对平面的坐标变换和建模过程中对岩性剖面的属性修改而导致发生的纹理变形和拉伸问题。同时可以通过地质专家或地质工作者的人为干预,将岩性符号更真实地映射到地质模型上。
图8 映射质量控制
通过基于展开折剖面的多组数据进行岩性剖面自识别控制算法有效性测试,如图9所示,成功将岩性符号以自识别的方式映射到剖面数据上,同时通过纹理映射的质量控制,保证了纹理满足不同地层状态下的需求,保证了在遇到极端底层形状时,可以通过步长参数设置来调整岩性符号映射比例,使岩性剖面的可视化更加符合实际,更加平滑准确,并且本算法的处理时间和识别准确度也符合实际应用的要求。
图9 自识别可视控制效果图
在参考国内外相关可视化文献的基础上,针对现有关于复杂剖面建模中的特殊问题:1)提出了剖面数据自识别算法,针对地质建模过程中的实际数据,自动识别剖面多边形,完成剖面模型读取的目的,满足地质模型建立和可视化话的需要。2)提出剖面模型映射质量控制算法,对岩性符号数据映射设置垂直方向步长控制,提高了岩性剖面可视化效率和效果,对纹理映射中的质量控制问题起到了优化作用。
此方法具有推广性,可适用于地质建模中其他地质属性的识别和纹理映射控制,但由于地质构造情况极为复杂,算法还需要进一步结合地质行业的实际需求进行修改,以更好地适用于各种地学领域工程应用。