一种基于非均匀空间划分的场景可见性裁剪方法技术

技术编号:2945801 阅读:292 留言:0更新日期:2012-04-11 18:40
一种基于非均匀空间划分的场景可见性裁剪方法,步骤为:(1)进行场景组织:先进行非均匀化松散八叉树场景的构造,形成松散八叉树的场景组织方式,然后进行松散八叉树的更新;(2)视点排序:松散八叉树建立完成更新后,依据视点对松散八叉树节点进行排序,以最大化遮挡查询的效率;(3)进行可见性裁剪:首先进行视锥体裁剪,然后进行遮挡裁剪,最后进行细节裁剪,以将在最终图像的投影区域过小的可见物体忽略,经过上述的裁剪处理,可以裁剪场景中对最终图像没有贡献的物体,从而减少绘制的开销,提高复杂场景的绘制效率。本发明专利技术在保留空间分割优点的基础上,避免了传统八叉树场景组织方式的局限性,减少了场景结构更新的开销,同时克服了松散节点不易被裁剪的缺点。

【技术实现步骤摘要】

本专利技术属于计算机虚拟现实和计算机图形学
,特别是涉及计算机图形学加速 绘制技术中的可见性裁剪方法。技术背景随着计算机硬件与虚拟现实技术的不断发展,数据获取能力越来越强,所处理模型的 数据量越来越大,场景也更加复杂。虽然图形绘制己经得到硬件的很大支持,但仍不能很 好地满足复杂场景实时绘制的要求,因此,还需要对各种加速算法进行研究。其中,可见 性裁剪作为一种非常重要的加速技术,可选取并绘制场景中可见的物体,从而很好地降低 场景绘制的复杂度。这种裁剪技术的核心问题就是物体的可见性计算。当场景规模很大时, 可见性计算的开销会严重影响实时绘制的效率。而将越来越多的计算转移到硬件上是图形 领域的发展趋势。近年来,图形硬件生成厂商提供了遮挡査询的功能。因此,在克服传统 场景组织方式局限性的基础上,如何更好地利用硬件提供的辅助功能,以提高可见性裁剪 与复杂场景实时绘制的效率,就成为本人们研究的最基本的出发点。场景组织是可见性裁剪的基础,场景越复杂,场景的组织方式就越重要。 一种好的场 景组织方式可以有效地提高可见性裁剪的效率。比较有效的方法是对场景进行空间分割, 并用树形结构组织,这样可以把空间无序的场景模型,变成一棵空间有序的层次树,对层 次树的遍历也就等价为对整个场景的操作。较常用的空间层次组织结构包括包围体层次结 构,二元空间分割树,八叉树。包围体层次结构既适合于静态也适合于动态场景,但它并不 是严格的空间分割结构,空间利用率不充分,尤其是当场景中存在移动的物体时,需要对 包围体层次进行更新,频繁地更新会导致树结构的极不平衡(参见Tomas Akenine-Moller. Realtime Rendering. Peking University Publish House. 2004)。另外,更新子节点包围体的同 时也需要更新其父节点的包围体,这需要较大的计算开销。二元空间分割树是用一个平面 (轴对齐或者是多边形对齐方式)将空间一分为二,然后将几何体划分到这两个空间中, 递归进行下去,从而生成层次树型结构。这种方式比较适合静态场景,当场景中存在移动 物体时很难进行实时更新,且需要较大的预处理开销。八叉树是另一种较常用的空间数据 组织结构,它能够极大地提高可见性裁剪的效率,广泛应用于虚拟现实系统中。但是传统 的八叉树空间分割方式有很多缺点对动态物体的管理比较困难且不存在对象的概念,它 将场景中所有的三角面片视为一个整体,不能很好地满足场景交互的要求。当小的物体跨 在一个节点的划分平面之上时,小的物体被保持在树的较高层,降低了划分的效率,增加 了可见性裁剪的计算开销(参见DeLoura, M. Game Programming Gems. CHARLES RIVER MEDIA INC. 2000)
技术实现思路
本专利技术的技术解决问题克服现有技术的不足,提供一种基于非均匀空间划分的场景 可见性裁剪方法,在保留空间分割优点的基础上,避免了传统八叉树场景组织方式的局限 性,减少了场景结构更新的开销,同时克服了松散节点不易被裁剪的缺点,并与硬件提供 的遮挡查询功能相结合,形成了一种有效的可见性裁剪方法。本专利技术的技术解决方案 ,其特点在 于步骤如下-(1) 进行场景组织首先进行非均匀化松散八叉树场景的构造,形成松散八叉树的场景组织方式,然后进 行松散八叉树的更新;(2) 视点排序当松散八叉树建立完成更新后,依据视点对松散八叉树节点进行排序,以最大化遮挡 查询的效率;(3) 进行可见性裁剪首先进行视锥体裁剪,将视锥体外部的数据裁剪掉,然后进行遮挡裁剪,将视锥体内 部被其它物体遮挡的物体裁剪掉,最后进行细节裁剪,如果可见物体在最终图像的投影区 域过小,可以将其忽略。经过上述的裁剪处理,可以裁剪场景中对最终图像没有贡献的物 体,从而减少绘制的开销,提高复杂场景的绘制效率。所述步骤(1)中非均匀化松散八叉树场景构造的步骤如下-(1) 根据公式丄=^^/2^调整节点包围体的大小;(2) 建立约束体系,规定树的最大深度。 所述步骤(1)中松散八叉树的更新步骤如下(1) 确定物体所处的相应深度层次;(2) 求得在相应深度层次的节点。 所述步骤(3)中的视点排序的步骤如下(1) 通过对节点进行编码,来区分不同的节点;(2) 根据距离从近到远选择相应的节点 (3)对节点进行递归的遍历。 所述步骤(3)中的视锥体裁剪的步骤如下补充(要与后面的具体实施方式相对应)(1) 节点与视锥进行相交测试;(2) 可见节点内的物体插入查询队列;(3) 对孩子节点进行相交测试。所述步骤(3)中遮挡裁剪的步骤如下补充(要与后面的具体实施方式相对应,但要 比具体实施方式更简洁)(1) 对下层节点提出遮挡査询;(2) 可见叶子节点中的物体依据视点到包围盒中心的距离进行排序;(3) 对物体依据其包围体进行精确遮挡査询。 所述步骤(3)中细节裁剪的步骤如下-(1) 取得物体可见像素的数量;(2) 将小于预定义阈值的物体裁剪掉。 本专利技术与现有技术相比的有益效果在于非均匀化的松散场景组织方式可以使物体尽量保持在树型结构的更深层次,减少了剖分边界物体的开销;将场景以对象的方式而不是 面片的方式进行组织,从而克服了传统八叉树场景组织的很多缺点;将松散八叉树的节点 进行编码并依据视点的位置进行从近到远的排序,这对绘制效率的提高是必不可少的。进 一步提出了一种针对复杂场景的"双层"裁剪方法,根据不同的层次执行不同的裁剪策略, 从而克服了 "松散"的缺点,并将视锥体裁剪、遮挡裁剪、细节裁剪相结合,充分裁剪不 可见的图元,达到了对复杂场景实时漫游的效果。 附图说明图1为本专利技术的整体过程示意图;图2为本专利技术将八叉树节点进行松散处理示意图;图3为本专利技术的八叉树节点及子节点进行编码示意图;图4为本专利技术的稠密场景中视锥内的很多物体均为被遮挡的情况示意图;图5为本专利技术的粗査询与精査询相结合示意图。具体实施方式下面结合附图与实施例对本专利技术作进一步详细描述本专利技术实施过程包括三个主要步骤场景组织,视点排序,可见性裁剪。如图1所示。 步骤一即场景组织,主要分成二个阶段 第一个阶段非均匀化松散八叉树场景的构造 本专利技术为了克服传统八叉树存在的问题,将场景进行松散化处理,形成松散八叉树的 场景组织方式。松散八叉树采用自上而下的方式进行构造,并调整节点包围体的大小,如 图2所示,将原八叉树节点进行松散化处理即将其包围体的尺寸扩大,使节点与节点之间 的包围体重叠,这样就可以将处于分割平面上的物体划分到其中的一个节点中,如物体A 属于节点O。一个松散八叉树节点的包围体仍然是一个立方体,传统八叉树中立方体边长为/,设系 数因子为"则松散八叉树节点的包围体边长为W (1<A:<2)。对于不同深度层次d的节点 的包围体计算公式为/ = A*W2rf (1) 因此, 一个节点的包围体与其相邻的节点的包围体相重叠了。这样,以前穿过一个划 分平面的物体将被存储在平面的节点中,因为它有着更松散的包围立方体。接着建立约束体系,即在对场景进行空间划分之前,用户先定义一个阈值作为构造树 的最大深度值,在每次递归构造时检测当前深度值是否大于用户自定义的阈值,如果大于 则停止构造过程。这是因为松散八本文档来自技高网
...

【技术保护点】
一种基于非均匀空间划分的场景可见性裁剪方法,其特征在于步骤如下:(1)进行场景组织首先进行非均匀化松散八叉树场景的构造,形成松散八叉树的场景组织方式,然后进行松散八叉树的更新;(2)视点排序当松散八叉树建立完 成更新后,依据视点对松散八叉树节点进行排序,以最大化遮挡查询的效率;(3)进行可见性裁剪首先进行视锥体裁剪,将视锥体外部的数据裁剪掉,然后进行遮挡裁剪,将视锥体内部被其它物体遮挡的物体裁剪掉,最后进行细节裁剪,以将在最终图像 的投影区域过小的可见物体忽略,经过上述的裁剪处理,可以裁剪场景中对最终图像没有贡献的物体,从而减少绘制的开销,提高复杂场景的绘制效率。

【技术特征摘要】

【专利技术属性】
技术研发人员:梁晓辉梁爱民于卓
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1