OpenGL混合函数复制RBG/忽略Alpha?

OpenGL混合函数复制RBG/忽略Alpha?,opengl,opengl-es,Opengl,Opengl Es,也许有一种更简单的方法可以做到这一点,我可以用我想象的着色器来实现,但我觉得设置混合函数更简单 着色器可能是gl\u FragColor=vec4(texture.rgb,0) 出于某种原因,我需要一个新清除的FBO填充透明(0)纹理。这样,FBO中的像素在视觉上是透明的,但包含纹理的RGB值 这很难解释,但它本质上是一个glClear(),但带有纹理而不是纯色。是否有一个混合src/dst函数可以实现这一点 基本上,FBO之前的样子应该无关紧要。然后,我想向其渲染纹理,但由于我使用alpha

也许有一种更简单的方法可以做到这一点,我可以用我想象的着色器来实现,但我觉得设置混合函数更简单

着色器可能是
gl\u FragColor=vec4(texture.rgb,0)

出于某种原因,我需要一个新清除的FBO填充透明(0)纹理。这样,FBO中的像素在视觉上是透明的,但包含纹理的RGB值

这很难解释,但它本质上是一个
glClear()
,但带有纹理而不是纯色。是否有一个混合src/dst函数可以实现这一点


基本上,FBO之前的样子应该无关紧要。然后,我想向其渲染纹理,但由于我使用alpha 0进行渲染,因此它不会覆盖现有的FBO像素。

如果您确实想通过混合来实现这一点,可以通过最初在中引入的单独混合因子来实现(在版本2.0中升级为OpenGL core Functionatiy):


如果您确实希望通过混合来实现这一点,可以通过最初在中引入的单独混合因子来实现(在版本2.0中升级为OpenGL核心功能):

glEnable(GL_BLEND);
glBlendFuncSeparate(GL_ONE, GL_ZERO, GL_ZERO, GL_ZERO);
glBlendEquation(GL_ADD); // is the default anyway