如何通过多次渲染来进行后期处理,以便在单次通过性能方面简单地采样更多?

时间:2014-02-05 18:12:49

标签: opengl glsl

我想在n * n方格中平均/模糊纹理的像素。为此,我有一个水平着色器和一个垂直平均着色器。我的问题是当n很小时,使用单次传球的利润是多少。

例如,当n为4时,我可以通过4个样本一次性完成所有操作(通过使用GL_LINEAR对像素的共享角进行采样,获得自由的等加权平均值)而不是两次传递2每个样本。

如果n为10,那么两个传球显然是每次5个样本,总共10个,而不是一次传递25个样本。

但是,如果是6?这将是两次通过中的2 * 3 = 6个样本,或者一次通过中的9个样本。是否有一个经验法则,即额外的采样如何平衡对纹理进行额外渲染的平面成本?

1 个答案:

答案 0 :(得分:1)

与所有内容一样:为目标硬件配置文件。

除此之外,一般来说,将模糊分为两个阶段更有利,因为一件事:缓存一致性。

平均模糊滤镜分为2遍(2个内核)的方式使用线性内存访问,因此即使必须运行2次也会更快。

注意:这可能不适用于您的硬件,因此请对其进行分析!(并分享结果)

关于GD.SE的相关问题。