我理解绽放/发光效果背后的想法:我们对纹理进行下采样以保持卷积核较小。现在我正在尝试实施它,我不太确定我应该走哪条路。
我的第一个想法是用来glGenerateMipMap
做下采样。但是,我不能告诉它在 4 个步骤之后停止。这对我来说有点像黑匣子,据我所知,它可能会生成 10 张图像来对我的屏幕从 1024*768 到 1*1 进行采样。也许这些最后的步骤很便宜,因为一切都已经很小了,但也许它们不是。
我四处搜索,发现很多人都依赖 FBO 而不是glGenerateMipMap
. 我熟悉 FBO,因为我使用延迟照明。我的第二个想法是简单地将带有线性采样器的“四边形”渲染为较小的纹理。我会连续四次这样做,每次将宽度和高度减半。但是,我发现有些人更喜欢使用自己的片段着色器进行下采样而不是依赖GL_LINEAR
,我想知道为什么;也许它更快?
有什么方法可以连续 4 次快速对全屏纹理进行下采样,同时保留每个版本?我不需要花哨的边缘保持采样算法,因为无论如何我都会模糊一切。