Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl es 将多个重叠的非不透明纹理渲染到帧缓冲区_Opengl Es_Rendering_Framebuffer_Alphablending_Render To Texture - Fatal编程技术网

Opengl es 将多个重叠的非不透明纹理渲染到帧缓冲区

Opengl es 将多个重叠的非不透明纹理渲染到帧缓冲区,opengl-es,rendering,framebuffer,alphablending,render-to-texture,Opengl Es,Rendering,Framebuffer,Alphablending,Render To Texture,我试图将一组纹理几何体渲染到单个FBO,然后将该FBO渲染到场景。问题是该几何体的重叠半透明区域没有正确渲染。它们最终变得过于不透明和黑暗。 如果我将几何体直接渲染到场景,它将正确渲染,但我需要首先将其渲染到FBO 顺便说一下,我使用以下方法进行混合(根据): 向FBO渲染几何体:glBlendFuncSeparate(GL\u SRC\u ALPHA,GL\u ONE\u减去grc\u ALPHA,GL\u ONE,GL\u ONE) 将FBO渲染到场景:glBlendFunc(GL\u O

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

顺便说一下,我使用以下方法进行混合(根据):

  • 向FBO渲染几何体:
    glBlendFuncSeparate(GL\u SRC\u ALPHA,GL\u ONE\u减去grc\u ALPHA,GL\u ONE,GL\u ONE)
  • 将FBO渲染到场景:
    glBlendFunc(GL\u ONE,GL\u ONE\u减去SRC\u ALPHA)

我正在为OpenGL ES 2.0做这项工作。

事实上,我发现问题在于用于将几何体渲染到FBO的混合函数

而不是:

glBlendFuncSeparate(GL_SRC_ALPHA,GL_ONE减去GL_SRC_ALPHA,GL_ONE,GL_ONE)

我必须使用:

glBlendFuncSeparate(GL_SRC_ALPHA,GL_ONE减去SRC_ALPHA,GL_ONE,GL_ONE减去SRC_ALPHA)

现在,它的效果就像我直接将几何体渲染到场景一样好