0

我正在尝试将一组纹理几何体渲染到单个 FBO,然后将该 FBO 渲染到场景中。问题是该几何图形的重叠半透明区域未正确渲染。它们最终变得太不透明和黑暗。如果我将几何图形直接渲染到场景中,它会正确渲染,但我需要先将它渲染到 FBO。

顺便说一句,我正在使用以下内容进行混合(根据opengl - 与 framebuffer 的先前内容混合):

  • 将几何图形渲染到 FBO:glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE)
  • 将 FBO 渲染到场景中:glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)

我正在为 OpenGL ES 2.0 做这个。

4

1 回答 1

0

实际上,我发现问题在于用于将几何图形渲染到 FBO 的混合函数。

代替:

glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE)

我必须使用:

glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA)

现在它的效果就像我直接将几何图形渲染到场景一样。

于 2013-06-05T11:27:08.743 回答