方差阴影图
William Donnelly e-mail: ******@
Andrew Lauritzen e-mail: ******@
计算机图形学实验室, 滑铁卢大学的计算机科学学院
图1:各向异性过滤和非各向异性过滤的比较。上: 双线性比例加强过滤的阴影图。下: mipmapping 和 16x的各向异性过滤的方差阴影图
摘要
阴影图(shadow map)是目前在实时场景中普遍运用的生成阴影技术。他们的使用的一个主要缺点是们不能被过滤的彩色纹理,在同样的方式,通常导致严重走样。本文介绍了方差阴影图,一个新的实时跟踪算法。与存储的一个单一的深度值进行比较,我们存储的采样区域中整体分布的平均值与深度分布的均方值更能有效地计算任何过滤区域的方差。从而,我们得到此封闭的阴影的部分片段的上限值。而这上限值通常提供了一个趋近于真正的封闭的近似值, 可作为参考值用来渲染。本算法是简单在当前的处理器实现图形且用最少内存和计算来解决阴影图锯齿问题。
索引词语:三维图形和现实——颜色,着色,阴影和纹理。
关键词:实时渲染、阴影图,着色编程、图形硬件
引言
阴影图[ Williams 1978年] 和阴影体积[ Crow 1977 ]是在实时应用中两个最常见的投影算法。相对于阴影体积而言,阴影图提供了许多优势。例如,阴影图对几何体的复杂度要求不高(相对于shadow volumes),并且阴影图能够在任意的位置得到。
比较糟糕的是:像大多数纹理一样,如果过滤不恰当,阴影图也会出现锯齿。所以现代图形硬件在彩色纹理处理时提供了内置方法,以减少纹理锯齿,即:mipmapping和各向异性过滤。这些技术不适用于标准阴影图,因为它们会填充邻近像素的深度。因此通常情况下,实时实现是对邻近的阴影图取样,或者对几个样品的求取平均值。但是该方法会产生锯齿,并且不能很快得充分利用上述的图形硬件,内置过滤功能。
为了能有效地过滤阴影图,我们注意到,每一个标准阴影图的每个纹理只能代表一个单点的深度。而方差阴影图算法针对此问题改进这一计划,就是通过在阴影图上的每一个纹素上作一个可能的深度分布表示。为了达到这样一个能够粗略估计出
少量的数据的分布,我们运用两个时刻:平均深度和均方深度。这种表示方法的主要的优点之一是,我们可以通过平均深度和均方深度粗略估计纹素的两次深度的平均分布。
当查询方差阴影图时,我们用平均深度和均方深度去计算出一个此区域中高于阴影表面部分的边界值。而该边界值提供了一个很好的光到达任何给出的表面的数量的近似值, 因此可用于绘制正确的反走样的阴影。
因为在填充深度像素的时刻,我们可以利用广泛的过滤技术处理彩色纹理,和有效地消除锯齿。
通过使用过滤技术减少在阴影图的锯齿,如mipmapping和各向异性的过滤,
允许阴影图是预过滤的百分比加强过滤
在当前图形硬件实现的成本相当于普通阴影图
相关工作
Williams介绍了阴影图[ Williams 1978 ] 算法在一些普通场景中是一个有效计算阴影的算法,同时,他也指出,普通的彩色纹理过滤技术无法适用于深度值。
百分比加强过滤[ Reeves et al. 1987 ] 提供了一个阴影图产生锯齿
方差阴影图[统计学经典理论] 来自淘豆网www.taodocs.com转载请标明出处.