体渲染数据重建问题分析整理 基础插值算法
体渲染的数据一般都是在离散的网格点上,但是我们采样的时候需要得到所有的点的值。
根据信号处理方面的知识,数据要能重建出来的话,采样频率必须要是实际信号的最高频率的两倍以上。
在数学描述上,合理的采样方法可以如下定义:
首先找到该信号的最大频率,即在该频率间隔
之外的频率都是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.