阴影体在地震数据可视化中的应用

2017-03-27 20:40朱永哲
电子技术与软件工程 2017年4期
关键词:掩膜缓冲区阴影

摘 要 在过去的一段时间中,虚拟现实技术得到了迅速的发展。特别是在最近几年,在复杂虚拟场景中可视化数据,为研究各种社会问题提供了重要参考。虚拟现实技术中有两个很重要的因素,即虚拟场景渲染的实时性和虚拟场景渲染結果的真实性。尽管现在的硬件设备可以满足渲染数以千万计的多边形数据,但是在特定的复杂场景环境下,若不采用合理高效的算法,将会无法满足现实要求。本文对虚拟现实技术在地震数据可视化中的应用进入深入的研究。针对其中的一些关键点,研究结合阴影体(shadow volume)方法,给出了具体的工程应用场合和应用方法,并展示结果。

【关键词】阴影体 数据可视化 贴地绘制 地震带

由于长期稳定的构造条件和应力场的作用,我国地震空间分布较为稳定。但地震活动会随着时间推移不停的发生变化,会存在一些地震问题,如震区抢险救灾,地震预警,震源分析等。如果通过已知地震空间分布区域内地震信息的数据,生成一个地震区域虚拟场景。将地震信息贴地绘制在虚拟场景中,这样就可以很直观的为地震问题的探索和研究提供有价值的参考。

1 问题分析

在虚拟现实技术的实际应用中,有两个重要的过程,建模和渲染。在实际的现实应用中,建模过程一般采用成熟的商业建模来完成。在本文我们可以把模型数据看作是固定的,也就是一个静态过程。那么在这里,虚拟现实技术的实时性和真实性的关键点就在于渲染。

阴影体方法是基于细节层次(LOD)几何技术中的一种延伸,它需要几何形体的轮廓产生一个封闭的容积充当遮挡物,然后根据光源(视点)和遮挡物的位置关系计算出场景中会产生阴影的区域,称之为掩膜。然后对所有物体进行匹配检测,以确定物体会不会受到掩膜的影响。阴影体以屏幕空间为工作空间,可以做到单像素精确,改善效果问题。同时,它独立于底层的地形几何,并利用渲染引擎提高性能,即使是对于高分辨率的数据集也有着广泛的实用性。在独立的地形细节层次几何部分,我们可以最大程度的保证细节层次几何轮廓的清晰,而不用关注其细节。对掩膜范围进行匹配计算后,再对范围内的部分进行渲染。这种处理策略可以很好的应用在我们的问题研究中。

2 阴影体过程步骤描述

阴影体的常见的方法是通过CPU进行遮挡物模型处理,使用纯粹的硬件加速模版阴影体技术,然后在GPU上进行交叉点检测和生成阴影掩膜,根据掩膜进行渲染着色。

常规的过程是在进行光源(视点)测试判断后,我们需要把地震空间数据,构建成模型,然后绘制到模版缓冲区,以生成适当遮挡物。而为了最大限度减少大多面体所引起的高光栅工作量,我们要尽量减小大多面体的尺寸。要达到这个目的,我们要移动所生成遮挡物几何的顶部和底部,使它们朝向地形表面,而两侧则尽可能的接近地形表面但是并不与它相交。在我们的实现中,我们要利用地形渲染引擎中所固有的四叉树包围盒。用包围盒来表示封闭遮挡物几何的上下边界,为遮挡物几何的顶部和底部提供合适的上下边界。

在多边形几何的情况下,我们要使用整个多边形几何封闭包围盒投影的最大和最小高度值,用来表示多边形几何顶部和底部顶点的高度值。所构造的遮挡物几何是被包含在包围盒中的,这是为了确保环绕一致,以便于所有面的法线指向外部。在地震条带面数据不被修改的前提下,所得的每个几何形状对象都是储存在有效的缓存对象中。

在了解阴影体的基本原理和遮挡物之后,我们要计算出以屏幕空间为光源同以地震空间数据模型作为遮挡物的相对位置关系,然后对地形层次几何进行匹配检测,以确定其是否受到影响,对于受影响的部分,生成缓冲区掩膜。

掩膜应用场景必须针对每个对象分别进行,因为每个对象都是允许有不同颜色的。因此,如果直接在模板缓冲区中渲染所有对象,应用生成后会同时渲染屏幕区域,我们无法区分不同对象的颜色。如果只有少数不同的对象颜色在场景中,可以按颜色分类,渲染每个色组。这样可以帮助我们减少需要填充颜色的比率和应对对象状态的改变。根据上文,我们用地震数据模型,参照光源,计算生成了掩膜,下一步把掩膜被渲染到模板缓冲区中。这样就可以得到我们要的效果。

然而在实际情况中,我们其实并不需要进行交叉点检测,因为我们是以地震空间数据为遮挡物,它的数据地理信息是我们详细掌握的,我们可以不用CPU进行交点检测,直接根据数据地理信息生成掩膜,这样最大的优点就是只用一个GPU就可以实现,释放了CPU。因此,在掌握有详细数据的情况下,使用这种策略,可以极大优化性能。

之后使用OpenGL中EXT_stencil_wrap和EXT_stencil_side扩展,目的是为了简化在模版缓冲区中生成掩膜。EXT_stencil_wrap扩展了两个特别的额外模版操作,这两个新的操作类似于现有的递增和递减操作,但是新操作的结果更加的完善,这样可以减少出现因模版缓冲区分辨率不足而导致的阴影结果不正确的情况。EXT_stencil_side扩展提供了双面模版测试,其中模版关系状态可以对应不同的前端面和后端面多边形。使用双面模版测试前后端面可以在单通道渲染,这样可以提高性能。

但这中间也存在一个问题,在出现陡峭斜坡时会略有失真,这是一个普遍问题,当渲染对象应保留斜坡的宽度不变时,对于道路或轮廓线之类而言,它们投影会产生失真。

3 结论

本文阐述了一个阴影体特殊应用策略,能够针对地震条带的矢量数据进行高质量和高效率的实时可视化。该算法不需要特殊的硬件扩展。事实上,它是独立于底层的地形绘制引擎的。并且因为这个算法不受地形几何形状变化的影响,特别适合与视图相关的LOD 相关工作。

(通讯作者:姜保庆)

参考文献

[1]毛华庆.基于GPU优化的三维实时渲染技术的研究[D].武汉:武汉大学,2010.

[2]吴忠.四叉树LOD算法优化及在地形仿真中的应用[D].武汉:华中科技大学,2006.

[3]张勇,王莉.视景仿真系统中实时阴影绘制技术的研究[J].系统仿真学报,2006:180-182+186.

[4]邹志昴.实时阴影绘制算法研究及在城市仿真中的应用[D].武汉:华中科技大学,2007.

作者简介

朱永哲(1992-),男,河南省许昌市人。硕士研究生学位。主要研究方向为计算机图形学。

通讯作者简介

姜保庆(1964-),男,河南省滑县人。博士学位。现为郑州电力高等专科学校教授。主要研究方向为数据挖掘,计算机图形学。

郭朝令(1964-),男,河南省滑县人。高级实验师。主要研究方向为热力发电及可视化技术。

作者单位

1.河南大学计算机与信息工程学院数据与知识工程研究所 河南省开封市 475001

2.郑州电力高等专科学校 河南省郑州市 450000

猜你喜欢
掩膜缓冲区阴影
利用掩膜和单应矩阵提高LK光流追踪效果
一种结合图像分割掩膜边缘优化的B-PointRend网络方法
嫩江重要省界缓冲区水质单因子评价法研究
光纤激光掩膜微细电解复合加工装置研发
多层阴影掩膜结构及其制造和使用方法
关键链技术缓冲区的确定方法研究
地理信息系统绘图缓冲区技术设计与实现
AVS标准中的视频码流缓冲区校验模型分析