title: Rendering transparent texture onto glTexture
body: <p>I've been working in opengl for a while relatively smoothly, but recently I've noticed that when I render a primitive with a transparent texture onto my fbo texture (custom frame buffer) it makes the fbo texture transparent at the pixels the primitive's texture is transparent. The problem is that there are things behind this primitive (with solid color) already rendered before the transparent one. So the fbo texture should not be transparent at those pixels - blending a solid &amp; transparent color should result in a solid color, shouldn't it?</p>
  
  <p>So basically, opengl is adding transparency to my fbo-texture just because the last primitive drawn has transparent pixels even though there are solid colors behind it already drawn into the fbo texture. Shouldn't opengl blend the transparent texture with the fbo's existing pixels, and result in a solid color if the fbo texture is already filled with solid colors before rendering the transparent primitive?</p>
  
  <p>What happens when I render my fbo texture to the default frame buffer, is that the clear color bleeds through parts of it - where the last drawn texture is transparent. But when I render the same scene straight to the default opengl frame buffer, the scene looks fine and the clear color is not bleeding into the transparent texture.</p>
  
  <p>What's even more interesting is that the glClearColor - color is only visible where the primitive's texture's alpha has a gradient - the clear color has no influence on where the texture alpha is 1.0 or 0.0... is this a bug? It seems to affect the primitive's texture the most at pixels with 0.5 alpha. Then going further above or below decreases the glClearColor influence.</p>
  
  <p>I know it's a bit of a complex question/situation, I honestly tried my best to explain</p>
  
  <p>I'm using:</p>
  
  <pre><code>glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  </code></pre>
  
  <p>to draw both the partly transparent primitive into the fbo-texture, and then the fbo texture to the default framebuffer</p>
  
  <p>This is what the fbo-texture drawn into the default opengl fbo looks like:</p>
  
  <p><a href="https://i.stack.imgur.com/YFeMz.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/YFeMz.jpg" alt=""></a></p>
  
  <p>glClearColor is set to red.</p>