我正在使用 WebGL 中的多个通道来对我的渲染应用一些视觉增强。
我正在乒乓球两个纹理(取自这里:WebGL Image Processing Continued),这基本上是我的工作流程:
现在,我无法理解为什么最终图像的某些部分周围有黑色边框。我试图微调一些 SSAO 参数,但我无法摆脱那个伪影,所以,只是猜测,我现在相信这个黑色边框是由于我的纹理缓冲区的错误混合设置造成的。
这实际上是深度通道中的代码:
gl.disable(gl.BLEND);
gl.enable(gl.DEPTH_TEST);
gl.depthMask(true);
... drawings
我也试过这样:
gl.enable(gl.BLEND);
gl.blendEquation(gl.FUNC_ADD);
gl.blendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA);
...但不会导致我得到任何结果。
在下图中,这件神器显然是一条围绕着斯坦福龙的细黑线:
由于我完全迷失了这个问题,有人可以指出我正确的方向吗?
我的问题:我需要绘制一个具有透明背景的几何图形 - 这是正确的混合模式,当渲染到后台缓冲区并乒乓球两个纹理以应用多种效果时?