在光线跟踪/路径跟踪中,最简单的抗锯齿图像方法之一是对像素值进行超采样并取平均结果。IE浏览器 而不是通过像素中心拍摄每个样本,而是使样本偏移一定量。
在互联网上搜索时,我发现了两种略有不同的方法:
- 根据需要生成样本,并使用过滤器权衡结果
- PBRT就是一个例子
- 生成具有等于过滤器形状分布的样本
产生并称重
基本过程是:
- 根据需要创建样本(随机,分层,低差异序列等)
- 使用两个样本(x和y)偏移相机光线
- 用射线渲染场景
- 使用过滤器功能和参考像素中心的样本距离计算权重。例如Box过滤器,Tent过滤器,Gaussian过滤器等)
- 将权重应用于渲染中的颜色
生成过滤器形状
基本前提是使用逆变换采样来创建根据滤波器形状分布的采样。例如,以高斯形状分布的样本的直方图将是:
可以完全完成此操作,也可以将功能合并到离散的pdf / cdf中。smallpt使用帐篷过滤器的确切逆cdf。装箱方法的示例可以在这里找到
问题
每种方法的优缺点是什么?为什么要在另一个上使用一个?我可以想到几件事:
生成和加权似乎是最可靠的,它允许将任何采样方法与任何过滤器进行任意组合。但是,它要求您跟踪ImageBuffer中的权重,然后进行最终确定。
由于您不能使用负pdf,因此“以过滤器形状生成”只能支持正过滤器形状(即,不支持Mitchell,Catmull Rom或Lanczos)。但是,如上所述,由于您无需跟踪任何权重,因此实现起来更容易。
但是,最后,我想您可以将方法2视为方法1的简化,因为它本质上是使用隐式Box Filter权重。