[发明专利]一种基于非均匀空间划分的场景可见性裁剪方法无效
申请号: | 200710176016.8 | 申请日: | 2007-10-17 |
公开(公告)号: | CN101145245A | 公开(公告)日: | 2008-03-19 |
发明(设计)人: | 梁晓辉;梁爱民;于卓 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06T15/30 | 分类号: | G06T15/30 |
代理公司: | 北京科迪生专利代理有限责任公司 | 代理人: | 贾玉忠;卢纪 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 均匀 空间 划分 场景 可见 裁剪 方法 | ||
技术领域
本发明属于计算机虚拟现实和计算机图形学技术领域,特别是涉及计算机图形学加速绘制技术中的可见性裁剪方法。
背景技术
随着计算机硬件与虚拟现实技术的不断发展,数据获取能力越来越强,所处理模型的数据量越来越大,场景也更加复杂。虽然图形绘制已经得到硬件的很大支持,但仍不能很好地满足复杂场景实时绘制的要求,因此,还需要对各种加速算法进行研究。其中,可见性裁剪作为一种非常重要的加速技术,可选取并绘制场景中可见的物体,从而很好地降低场景绘制的复杂度。这种裁剪技术的核心问题就是物体的可见性计算。当场景规模很大时,可见性计算的开销会严重影响实时绘制的效率。而将越来越多的计算转移到硬件上是图形领域的发展趋势。近年来,图形硬件生成厂商提供了遮挡查询的功能。因此,在克服传统场景组织方式局限性的基础上,如何更好地利用硬件提供的辅助功能,以提高可见性裁剪与复杂场景实时绘制的效率,就成为本人们研究的最基本的出发点。
场景组织是可见性裁剪的基础,场景越复杂,场景的组织方式就越重要。一种好的场景组织方式可以有效地提高可见性裁剪的效率。比较有效的方法是对场景进行空间分割,并用树形结构组织,这样可以把空间无序的场景模型,变成一棵空间有序的层次树,对层次树的遍历也就等价为对整个场景的操作。较常用的空间层次组织结构包括包围体层次结构,二元空间分割树,八叉树。包围体层次结构既适合于静态也适合于动态场景,但它并不是严格的空间分割结构,空间利用率不充分,尤其是当场景中存在移动的物体时,需要对包围体层次进行更新,频繁地更新会导致树结构的极不平衡(参见Tomas Akenine-Moller.Realtime Rendering.Peking University Publish House.2004)。另外,更新子节点包围体的同时也需要更新其父节点的包围体,这需要较大的计算开销。二元空间分割树是用一个平面(轴对齐或者是多边形对齐方式)将空间一分为二,然后将几何体划分到这两个空间中,递归进行下去,从而生成层次树型结构。这种方式比较适合静态场景,当场景中存在移动物体时很难进行实时更新,且需要较大的预处理开销。八叉树是另一种较常用的空间数据组织结构,它能够极大地提高可见性裁剪的效率,广泛应用于虚拟现实系统中。但是传统的八叉树空间分割方式有很多缺点:对动态物体的管理比较困难且不存在对象的概念,它将场景中所有的三角面片视为一个整体,不能很好地满足场景交互的要求。当小的物体跨在一个节点的划分平面之上时,小的物体被保持在树的较高层,降低了划分的效率,增加了可见性裁剪的计算开销(参见DeLoura,M.Game Programming Gems.CHARLES RIVERMEDIA INC.2000)
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种基于非均匀空间划分的场景可见性裁剪方法,在保留空间分割优点的基础上,避免了传统八叉树场景组织方式的局限性,减少了场景结构更新的开销,同时克服了松散节点不易被裁剪的缺点,并与硬件提供的遮挡查询功能相结合,形成了一种有效的可见性裁剪方法。
本发明的技术解决方案:一种基于非均匀空间划分的场景可见性裁剪方法,其特点在于步骤如下:
(1)进行场景组织
首先进行非均匀化松散八叉树场景的构造,形成松散八叉树的场景组织方式,然后进行松散八叉树的更新;
(2)视点排序
当松散八叉树建立完成更新后,依据视点对松散八叉树节点进行排序,以最大化遮挡查询的效率;
(3)进行可见性裁剪
首先进行视锥体裁剪,将视锥体外部的数据裁剪掉,然后进行遮挡裁剪,将视锥体内部被其它物体遮挡的物体裁剪掉,最后进行细节裁剪,如果可见物体在最终图像的投影区域过小,可以将其忽略。经过上述的裁剪处理,可以裁剪场景中对最终图像没有贡献的物体,从而减少绘制的开销,提高复杂场景的绘制效率。
所述步骤(1)中非均匀化松散八叉树场景构造的步骤如下:
(1)根据公式L=k×w/2d调整节点包围体的大小;
(2)建立约束体系,规定树的最大深度。
所述步骤(1)中松散八叉树的更新步骤如下:
(1)确定物体所处的相应深度层次;
(2)求得在相应深度层次的节点。
所述步骤(3)中的视点排序的步骤如下:
(1)通过对节点进行编码,来区分不同的节点;
(2)根据距离从近到远选择相应的节点;
(3)对节点进行递归的遍历。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710176016.8/2.html,转载请声明来源钻瓜专利网。