摘要
本文提出了一种基于椭圆高斯核的直接体绘制新框架,使用了一种投影方法(splatting approach)。为避免混叠伪影(aliasing artifacts),我们引入了一种重采样滤波器的概念,该滤波器结合了重建核与低通滤波核。由于该方法与Heckbert用于纹理映射的EWA(椭圆加权平均)滤波器相似,我们将其称为EWA体投影(EWA Volume Splatting)。该方法即使在使用非球形核的情况下,也能实现高质量图像,既无混叠伪影,也不会产生过度模糊。因此,它适用于规则、直角坐标系和非规则体数据集。
此外,我们的框架引入了一种计算足迹函数(footprint function)的新方法。这种方法使任意椭圆核的高效透视投影成为可能,并且仅需非常低的额外计算成本。最后,我们表明,EWA体重建核可以简化为表面重建核。这使得我们提出的投影基本单元在重建表面和体数据时具有通用性。
1 Introduction
体绘制是科学和工程应用中用于可视化采集和模拟数据集的重要技术。理想的体绘制算法能够在3D空间中重建一个连续函数,将其转换到屏幕空间,然后沿视线方向计算不透明度积分。1989年,Westover [18, 19] 提出了用于交互式体绘制的投影方法(splatting),它对这一过程进行了近似。投影算法将体数据解释为一组吸收和发射光的粒子。每个粒子的线积分预先计算,从而生成足迹函数(footprint function)。每个足迹将其贡献分散到图像平面中,这些贡献按从后到前的顺序进行合成,最终形成图像。
我们为体投影算法引入了一种新的足迹函数,该函数结合了椭圆高斯重建核和低通滤波器。我们的推导方法与Heckbert提出的椭圆加权平均(EWA)纹理滤波器 [4] 相似,因此我们将该算法命名为EWA体投影(EWA Volume Splatting)。
EWA体绘制具有吸引力,因为它可以防止输出图像中的混叠伪影,同时避免过度模糊。此外,它支持任意椭圆高斯重建核,并能高效地支持透视投影。我们的方法基于一个新的框架来计算足迹函数,该框架依赖于将体数据转换到所谓的射线空间(ray space)。这一转换等价于透视投影。通过在每个体素上使用局部仿射变换,我们推导出EWA足迹在屏幕空间中的解析表达式。足迹的栅格化使用前向差分(forward differencing)技术,仅需一个一维的足迹表即可支持所有重建核和任意观察方向。
我们的投影单元可以轻松集成到常规投影算法中。由于其灵活性,它可以用于渲染直角坐标、曲线坐标或非结构化的体数据集。通过沿体数据梯度方向压扁3D高斯核,我们将展示EWA体投影如何简化为适合高质量等值面渲染的表面投影。
本文结构如下:
我们在第2节讨论了相关的前期工作。接下来,第3节回顾了典型的体绘制管道和体绘制方程,特别是我们阐述了典型的投影算法如何计算体绘制方程。在第4节中,我们提出了EWA体绘制框架。我们首先分析了因输出函数采样不当而导致的混叠问题。随后,我们引入了EWA重采样滤波器,该滤波器结合了任意椭圆高斯重建核和高斯低通滤波器。我们的推导基于体数据的局部仿射变换,使得重建核可以解析地进行积分。此外,我们展示了如何将EWA重建核从体数据平滑过渡到表面数据(第5节)。最后,第6节和第7节讨论了我们的实现细节及其结果。
2. 前期工作
投影法(Splatting)的最初研究由Westover提出 [18]。基本的投影算法在从后到前合成投影单元(splat)时,存在可见性判断不准确的问题。这会导致诸如颜色溢出等可见伪影。后来,Westover [19] 通过引入轴对齐的片缓冲区(sheet buffer)解决了该问题。然而,这种技术在动画中会出现令人不适的跳跃伪影。最近,Mueller和Crawfis [14] 提议将片缓冲区与图像平面对齐,而不是与体数据的某一轴对齐。此外,他们分别对每个重建核的多个切片进行投影。这种技术与基于切片的体绘制方法 [2, 1] 类似,且避免了跳跃伪影。Mueller和Yagel [15] 结合了投影法与光线投射技术,以加速透视投影的渲染过程。Laur和Hanrahan [7] 描述了一种分层投影算法,支持在渲染过程中逐步细化。此外,Lippert [9] 引入了一种基于体数据小波表示的直接投影算法。
Westover的原始框架没有处理透视投影中采样率变化的问题。在体数据中,当发散射线的采样率低于体网格采样率时,可能会出现混叠伪影。Swan等人 [17] 使用与距离相关的足迹拉伸方法,使其充当低通滤波器。这种抗混叠方法与EWA体投影方法密切相关,我们将在第7节进一步讨论。
如果3D核不是径向对称的(例如用于直线网格、曲线网格或非规则网格),则需要额外注意。此外,对于3D空间中的任意位置,所有核的贡献必须总和为1,否则图像中会出现斑点伪影。对于直线网格,Westover [19] 提议使用椭圆形足迹,并将其反向变形为圆形足迹。对于曲线网格,Mao等人 [10] 使用随机泊松重采样生成一组新点,其核为球体或椭球体。他们计算椭圆足迹的方法与Westover [19] 非常相似。如第4节所述,我们的技术可用于非规则网格,以高效、准确地投影和栅格化椭圆投影核。
我们沿着Heckbert的开创性工作 [4] 的思路发展了EWA体投影技术。Heckbert引入了EWA滤波,以避免表面纹理的混叠。我们最近扩展了他的框架,用于表示和渲染在非规则点采样表面上的纹理函数 [21]。第5节将展示EWA体投影与表面投影之间的联系。
3. 初步知识
3.1 体绘制管道
体绘制主要有两种基本方法:一种是逆向映射算法,从图像平面上的像素向体数据中发射射线;另一种是正向映射算法,将数据映射到图像平面上。在接下来的讨论中,我们将描述一种正向映射技术。将数据映射到图像平面包括一系列中间步骤,在这些步骤中,数据被转换到不同的坐标系中,与传统的渲染管道类似。
我们在图1中引入了相关术语。请注意,术语“空间”(space)与“坐标系”(coordinate system)是同义的。该图总结了一条正向映射体绘制管道,其中数据从左到右依次流动。
概述中,我们简要描述了与我们技术相关的坐标系和转换。体数据最初以对象坐标系表示。为了从任意视角渲染数据,首先通过视图变换将其映射到摄像机空间。我们在第4.3节中讨论了此变换的影响。摄像机坐标系的定义使其原点位于投影中心。
接下来,我们将数据进一步转换到射线空间(ray space),该坐标系在第3.2节中引入。射线空间是一种非笛卡尔坐标系,能够以简单的形式表示体绘制方程。在射线空间中,视线与某一坐标轴平行,从而简化了体函数的解析积分。我们在第4.4节中介绍了从摄像机空间到射线空间的转换,这是我们技术的关键部分。由于该转换的目的类似于渲染管道(如OpenGL)中的投影变换,因此也称为投影映射(projective mapping)。
对体绘制方程进行求解后,结果为屏幕空间中的2D图像。在最后一步中,该图像会被转换到视口坐标系。为了突出我们技术的核心内容,后续的解释中不涉及视口变换。然而,该变换可以很容易地融入实现中。此外,我们不讨论前向映射管道中的体分类和着色部分,相关内容可参考文献 [13] 或 [20] 的详细讨论。
3.2 投影算法(Splatting Algorithms)
我们回顾了用于快速直接体绘制的低反照率(low albedo)近似体绘制方程 [5, 12],该方法在文献 [19, 6, 13, 8] 中有所应用。图2左侧部分说明了相应的二维情境。从这种形式的体绘制方程出发,我们讨论了一些简化假设,最终导出众所周知的投影算法公式。由于其高效性,投影算法 [19, 13] 是最受欢迎的前向映射体绘制技术之一。
我们稍作修改了传统符号,引入了射线空间(ray space)的概念。在射线空间中,一个点用三个坐标的列向量 x=(x0,x1,x2)Tx = (x_0, x_1, x_2)^Tx=(x0,x1,x2)T 表示。给定一个投影中心和一个投影平面,这三个坐标具有以下几何解释:
- 坐标 x0和 x1指定投影平面上的一个点。
- 通过投影中心和投影平面上点 (x0,x1)的射线称为视线(viewing ray)。
- 使用记号 x^=(x0,x1)T,我们用 x^ 表示穿过 (x0,x1)的视线。
- 第三个坐标 x2指定从投影中心到视线上的某点的欧几里得距离。
4 EWA体积重采样滤波器:体积溅射中的混叠
4.1 体积溅射中的混叠
混叠是任何渲染算法中的一个基本问题,它在渲染的图像或图像的一部分被采样到离散的栅格网格(即像素网格)时发生。混叠会导致视觉伪影,如锯齿状的轮廓边缘和纹理中的莫尔条纹。通常,在动画中这些问题会变得特别令人不悦。
从信号处理的角度来看,混叠是容易理解的:在将连续函数采样到规则的采样网格之前,必须对其进行带宽限制,以符合网格的奈奎斯特频率。这可以确保在采样图像时不会出现混叠伪影。
在本节中,我们将系统地分析如何对溅射方程进行带宽限制。
溅射方程(方程 4)将输出图像表示为屏幕空间中的连续函数 Iλ(x^)I_\lambda(\hat{x})Iλ(x^)。为了在没有混叠伪影的情况下将该函数正确地采样到离散输出图像中,它必须经过带宽限制,以匹配离散图像的奈奎斯特频率。从理论上讲,我们可以通过将 Iλ(x^)I_\lambda(\hat{x})Iλ(x^) 与适当的低通滤波器 h(x^)h(\hat{x})h(x^) 卷积来实现这种带宽限制,从而得到反混叠的溅射方程。
一个理想的重采样滤波器,结合了足迹函数 qkq_kqk 和低通核 hhh。因此,我们可以通过将原始溅射方程(4)中的足迹函数 qkq_kqk 替换为重采样滤波器 ρk\rho_kρk,来近似反混叠溅射方程(6)。这意味着我们不是直接对输出函数 Iλ(x^)I_\lambda(\hat{x})Iλ(x^) 进行带宽限制,而是分别对每个足迹函数进行带宽限制。在上述假设下,我们得到了一种溅射算法,该算法生成一个带宽限制的输出函数,遵守栅格图像的奈奎斯特频率,从而避免混叠伪影。
请记住,重建核是在视线空间中进行积分的,因此足迹函数在整个体积中大小和形状变化显著。因此,方程(8)中的重采样滤波器具有强烈的空间变异性。
Swan 等人提出了一种基于重建核均匀缩放来带宽限制衰减函数的溅射抗混叠技术【17】。他们的方法在使用径向对称核时与我们的方法产生类似的结果。然而,对于更一般的核,例如椭圆形核,均匀缩放是理想低通滤波的一个较差近似。混叠伪影无法避免,且会引入额外的模糊。
另一方面,我们的方法在这些情况下提供了非均匀缩放,从而在图像质量上表现更优,如第7节所示。此外,我们上述的分析表明,带宽限制衰减函数并不能保证图像没有混叠伪影。由于阴影和边缘效应,超过奈奎斯特频率的频率仍然存在。然而,这些效应在[17]中并未讨论。
4.2 Elliptical Gaussian Kernels