一种视点依赖的阴影贴图创建方法

文档序号:9235998阅读:220来源:国知局
一种视点依赖的阴影贴图创建方法
【技术领域】
[0001] 本发明属于计算机图形学技术领域,特别设及一种视点依赖的阴影贴图创建方 法。
【背景技术】
[0002] 阴影是非常重要的视觉特征,阴影给出了场景中有关光源位置的信息,突出了物 体之间的空间关系。因此,阴影擅染是计算机图形学中的一个热口话题,尤其是在=维游戏 和动画中增强虚拟场景的真实感显得尤为重要。该些年,很多研究者已经提出了很多方法 来解决实时阴影擅染的问题。阴影贴图算法(shadowmapping)作为一种有效的阴影擅染 算法已被广泛应用。标准阴影贴图是基于图像的算法,所W当阴影贴图的分辨率不足时,传 统的阴影贴图算法生成阴影会导致银齿现象。传统的阴影贴图算法通过阔值分割法分裂视 图截椎创建阴影贴图,非阴影空间会在阴影贴图中占据很大一部分比例,该是导致阴影贴 图的分辨率降低的一个原因。另外一个导致阴影贴图的分辨率降低的原因是阴影贴图之间 的空间重叠。
[0003] 阴影贴图算法具有简单性和高效率,Stamminger于2002年在"Perspective shadowmaps.",Martin在于2004年在"Anti-aliasingandcontinuitywith trapezoidalshadowmaps."中,通过指定截锥在光源空间中转化来创建阴影贴图,该些 方法存在的问题是;只有一个阴影贴图无法匹配一个大场景的分辨率。Fan化ang,Hanqiu Sun,LeileiXu,LeeKitLun于2006年在"Parallel-splitshadowmapsforlarge-scale virtualenvironments"中提出了 一种PSSMs(平行分隔阴影贴图)算法,Rouslan Dimitrov于2008年在"Cascaded化adowMaps"提出了一种CSM(叠层阴影贴图)算法, 该两种方法均属于阔值分割法,存在由于阴影贴图之间空间重叠导致阴影质量降低的问 题。AndrewLauritzen,MarcoSalvi,andAaronLefohn于2011在"Sampledistribution shadowmaps."中提出了一种通过分析光源空间深度分布的自动分区算法,与前两种算法 相比,该算法提高了阴影贴图排除空阴影的利用率,但是该种方法仍然存在空间重叠的问 题,对于复杂的充满阴影对象的场景,该方法对质量的改进很有限。总之,传统的场景依赖 创建阴影贴图的方法基于阔值分割法对视图截椎的分隔,该些方法在空间分布的阴影样本 方面具有优势,但是未能解决重叠导致的分辨率低的问题。其受限于改善阴影质量的两个 方面;1、空间重叠;光线截椎是由视图截椎的AABB包围盒或者包围球生成的,光线截椎的 空间重叠是不可避免的,由于空间重叠导致阴影贴图的分辨率降低;2、非阴影空间;非阴 影空间包括水平面下的空间和水平面上没有包含阴影物体的空间,该些非阴影空间对于阴 影擅染来说是无用的,但是它们仍会占据了阴影贴图的很大一部分比例,导致阴影贴图的 空间利用率严重降低。

【发明内容】

[0004] 本发明的目的是提供一种视点依赖的阴影贴图创建方法,W解决非阴影空间比例 大、阴影贴图之间的空间重叠的问题。
[0005] 为实现上述目的,本发明采用的技术方案为:
[0006] 一种视点依赖的阴影贴图创建方法,首先将视图截椎精确为一个阴影可见区域, 然后基于该个阴影可见区域来创建阴影贴图。
[0007] 其具体步骤为:
[000引 (1)、视图截椎裁剪
[0009] 将视图截椎部分的非阴影空间删除,从而形成一个更严格的边界的阴影对象,将 该个裁剪后的空间命名为阴影可见区域,它是用于生成阴影贴图的最小空间;
[0010] (2)、阴影贴图生成
[0011] 首先生成光线截椎,然后通过分割上述阴影可见空间,生成阴影视图。
[0012] 所述非阴影空间删除包括位于水平面下的空间和水平面上无投影物体的空间。
[0013] 采用双向分割算法划分投影区域,依次根据该些分区创建光线截椎。
[0014] 光线截椎的视口由其相应分区决定,光线截椎的视口又决定了阴影贴图的视口。
[0015] 对于光线截椎,其远及近平面应通过包括其视域里面的所有阴影对象来确定。
[0016] 光线截椎确定后,利用阴影相机擅染光线截椎内的对象生成阴影贴图。
[0017] 本发明的有益效果是:本发明通过裁剪视图截椎得到阴影可见空间,对于阴影可 见空间的在光线空间中的投影进行分割,利用分割结果创建阴影贴图。通过本发明的方法, 消除了非阴影空间,解决了阴影贴图之间的空间重叠的问题;通过双向分割算法确保阴影 图匹配屏幕像素分布;采用视图截椎裁剪方法去除非阴影空间,该大大提高了阴影贴图的 空间利用率;与传统方法相比,通过本发明的方法创建的阴影贴图具有更高的分辨率,阴 影可在任何视角下无缝擅染。视点移动过程中看不到阴影抖动。除此之外,本发明的方法 实现较为简便,可W应用于其他程序。
【附图说明】
[001引图1为视图截椎中删除非阴影空间的示意图;
[0019] 图2为基于分区在光投影平面上创建光线截椎的示意图;
[0020] 图3为投影区域纵向(左)和横向(右)分区的示意图;
[0021] 图4为当观察者接近地表面时,本发明(左)与CSM(右)的阴影呈现质量对比 图;
[0022] 图5为当观察者接近地表面时,本发明(左)与CSM(右)的阴影呈现细节对比 图;
[002引图6为当观察者远离地表面时,本发明(左)与CSM(右)的阴影精度W及接缝的 对比图。
【具体实施方式】
[0024] 下面结合附图对本发明作更进一步的说明。
[0025] 传统的阴影贴图算法不能减少空间重叠的问题,是因为他们化场景依赖的方式创 建阴影贴图,在创建阴影贴图时,该些方法首先将整个视图截椎分隔,然后通过该些视图截 椎分割段创建光线截椎。通过传统方法,阴影贴图的视口由光线截椎确定,阴影贴图的分辨 率增加受限于阔值分割法。
[0026] 本发明提出了一种视点依赖的阴影贴图创建算法解决空间重叠问题,W提高阴影 质量,在本发明的方法中,首先将视图截椎裁剪为一个阴影可见区域,然后基于该个阴影可 见区域来创建阴影贴图。
[0027] 本发明的视点依赖的阴影贴图创建方法包括如下步骤:
[00測 (1)、视图截椎裁剪
[0029] 将视图截椎部分的非阴影空间删除,非阴影空间删除包括位于水平面下的空间和 水平面上无投影物体的空间;
[0030] 如图1所示,非阴影空间包括水平面下的空间和水平面上无投影物体的空间,该 些空间对于阴影擅染来说是无用的,应当将他们从视图截椎中裁剪掉,从而形成一个更紧 密的阴影包围盒,将该个裁剪后的空间命名为阴影可见空间,它是用于生成阴影贴图的最 小空间。
[0031] (2)、阴影贴图生成
[0032] 首先生成光线截椎,利用光线截椎通过分割上述阴影可见区域,生成阴影视图。
[0033] 细化后的阴影可见空间不再是一个普通的截锥体,传统的视图截椎分区方法不能 用于分区该个不规则形状的空间,因此需要一个新方法来对上述阴影可见区域进行分割。
[0034] 为实现对上述阴影可见空间进行分割,我们提出了一个视点依赖的分割方法,在 此方法中,需要引入光投射平面的概念来理解此方法。
[0035] 光线投射平面是任意一个与光线垂直的平面,阴影可见空间投射到该平面上,在 光线投影平面形成了一个投影区域的边界;只有物体位于光线空间的投影区域内,其深度 值才会被擅染成阴影贴图。
[0036] 如图2所示,投影区域分割为多个分区,采用双向分割算法划分投影区域,依次根 据该些分区创建光线截椎。光线截椎的视口由其相应分区决定,因此阴影贴图的视口也由 其相应的分区决定。对
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1