我正在尝试将一组纹理几何体渲染到单个FBO,然后将该FBO渲染到场景中。问题是该几何体的重叠半透明区域未正确渲染。它们最终变得太不透明和黑暗。 如果我将几何体直接渲染到场景,它会正确渲染,但我需要先将它渲染到FBO。
顺便说一下,我正在使用以下内容进行混合(根据opengl - blending with previous contents of framebuffer):
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE)
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)
我正在为OpenGL ES 2.0做这件事。
答案 0 :(得分: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)
现在它的工作效果就像我将几何体直接渲染到场景一样。