我了解绽放效果背后的想法:我们缩小纹理以保持卷积核小。现在我正在尝试实现它,但我不确定应该采取哪条路线。
我的第一个想法是使用glGenerateMipMap进行缩小。但是,我不能告诉它停在4步之后。对我来说它有点像个黑盒子。据我所知,它可能生成10张图像,从1024*768缩小到1*1,最后几步可能很便宜,因为一切都已经如此之小,但也可能不是这样。
我在谷歌上搜索发现,许多人都使用FBO而不是
有什么方法可以快速对我的全屏纹理进行四次下采样,并保留每个版本?我不需要复杂的边缘保留采样算法,因为我无论如何都会模糊一切。
我的第一个想法是使用glGenerateMipMap进行缩小。但是,我不能告诉它停在4步之后。对我来说它有点像个黑盒子。据我所知,它可能生成10张图像,从1024*768缩小到1*1,最后几步可能很便宜,因为一切都已经如此之小,但也可能不是这样。
我在谷歌上搜索发现,许多人都使用FBO而不是
glGenerateMipMap
。由于我使用延迟光照,所以我很熟悉FBO。我的第二个想法是简单地使用线性采样器在较小的纹理中渲染一个“四边形”。我会连续进行四次,每次将宽度和高度减半。然而,我发现有些人更喜欢使用自己的片段着色器进行下采样,而不是依赖于GL_LINEAR
,我想知道为什么;也许这样更快?有什么方法可以快速对我的全屏纹理进行四次下采样,并保留每个版本?我不需要复杂的边缘保留采样算法,因为我无论如何都会模糊一切。
glTexParameter(GL_TEXTURE_MAX_LEVEL)
获取4个级别,然后生成mipmap,我会得到我想要的确切的4个图像吗? - Niriel