体渲染数据重建问题分析整理 基础插值算法

体渲染的数据一般都是在离散的网格点上,但是我们采样的时候需要得到所有的点的值。

根据信号处理方面的知识,数据要能重建出来的话,采样频率必须要是实际信号的最高频率的两倍以上。

在数学描述上,合理的采样方法可以如下定义:

首先找到该信号体渲染数据重建问题分析整理 基础插值算法的最大频率,即在该频率间隔 体渲染数据重建问题分析整理 基础插值算法 之外的频率都是0。

然后采样频率是Nyquist频率的两倍:体渲染数据重建问题分析整理 基础插值算法

采样信号点标记为体渲染数据重建问题分析整理 基础插值算法

之后原始信号就可以恢复:假设采样频率是体渲染数据重建问题分析整理 基础插值算法

体渲染数据重建问题分析整理 基础插值算法

体渲染数据重建问题分析整理 基础插值算法

sinc函数的傅里叶变换在频率间隔 体渲染数据重建问题分析整理 基础插值算法外面是0。

在实践中,输入数据集的频率内容可能是未知的。在这些情况下,可以应用低通滤波器将最大频率限制在一个可控值内。

上面的式子其实就是信号卷积,卷积一般如下:

体渲染数据重建问题分析整理 基础插值算法

体渲染数据重建问题分析整理 基础插值算法

卷积是滤波的主要方法。其中体渲染数据重建问题分析整理 基础插值算法表示输入信号,体渲染数据重建问题分析整理 基础插值算法表示滤波核。

sinc函数有个很不好的特点,就是它会在整个信号空间上震荡。卷积结果需要用到所有的输入数据,这就会非常浪费时间。

使用其他方案:

方形(box)滤波器,得到的是最近邻插值(方形的宽度等于采样距离)

三角(tent)滤波器,导致分段线性滤波(一边的宽度等于采样距离)。

体渲染数据重建问题分析整理 基础插值算法

体渲染数据重建问题分析整理 基础插值算法

3D场景中的tent滤波器的重建核是 体渲染数据重建问题分析整理 基础插值算法

tensor-product linear interpolations在三维上可以理解为三线性插值。

体渲染数据重建问题分析整理 基础插值算法

Tensor-product linear interpolations: linear, bilinear, and trilinear.

正如后面所讨论的,特别是在体滤波和重建的背景下,已经开发出了更好的用于实时体绘制的滤波方法。下图作为一个示例图像,鼓励使用更精确的重建滤波器:三线性插值(图左)显示了显著的伪影,而高阶滤波器(图右)去除了大部分这些伪影。

体渲染数据重建问题分析整理 基础插值算法

Comparison between trilinear filtering (left) and cubic B-spline filtering(right)

均匀网格是体绘制中最常用的方法,因此,相应的张量积重建滤波器也经常被使用。对于其他网格结构,可以采用稍微不同的重建方法。例如,重心插值是四面体单元的常用技术。重心插值提供了一种线性插值,它可能被称为三角形内值的插值方法。例如,图形硬件以这种方式在三角形网格的值之间插值。

参考文献:NAKAO,Megumi. Real-time Volume Graphics[J]. Medical Imaging Technology, 2007, 25.