0

所以我正在实现这一种渲染算法,并且该算法的一部分具有以下组件,用于处理从屏幕大小的纹理访问纹素。希望下面的代码非常简单。

int k = arbitrary integer;

for(int x = -1; x <= 1; x++)
{
    for(int y = -1; y <= 1; y++)
    {
        Pixel(i,j) += Texture(i + k*x, j+k*y) * G[x+1][y+1];
    }
}

在这种情况下,我正在阅读的论文将函数 G[x][y] 分类为 3x3 高斯滤波器,但除此之外没有提供任何更多信息。所以我想知道这里是否有人,根据我在这里写的内容,是否能够弄清楚如何实现适合这段特定代码部分的高斯滤波器。

4

1 回答 1

0

如果你只需要一个 3x3 2D 高斯内核,你可以使用这个:

0.04492 0.1221  0.4492
0.1221  0.33192 0.1221
0.04492 0.1221  0.4492

总和为 1,因此您无需除以权重。执行 2-pass 方法可能更有效,首先使用 1D 内核(0.1221、0.3319、0.1221)进行水平处理,然后使用相同的内核进行垂直处理。您可能还想尝试具有不同 sigma 的高斯。

于 2013-02-07T05:47:06.063 回答