• Create Account

### #ActualDanicco

Posted 27 August 2013 - 12:33 PM

Hmm I couldn't find practical examples of this effect you mentioned, but I tried to do this:

uniform vec4 vertexAlpha;

out vec4 pixelAlpha;
void main()
{
//other stuff too
pixelAlpha = vertexAlpha;
}


in vec4 pixelAlpha;

out vec4 color;
void main()
{
color = texture2D(objectTexture, UV).rgba * pixelAlpha;
}


And in the code I have a float[4] for the alphaChannel values (set to white, 1 in alpha), but when I change the alpha my quad is going blacker and blacker, but leaving the black quad on screen instead of disappearing, so I think I'm off something...

Edit: Ah, I also think it's relevant to mention that the texture already has an alpha value (though I manually set them all to 255) and I'm using:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);


This would work if I always had a black screen and want to fade in/out, but I'm trying to achieve the fade in/out with transparency (for example with a background image behind, and then an image fades in/out over it).

How can I get this effect?

Edit2: Reading here (http://www.opengl.org/archives/resources/faq/technical/transparency.htm) I noticed I was trying to render the transparent object first, but this might be causing/being caused by some other problem... I have a background image and a small quad image on screen, and I'm drawing them in the order: Background -> Quad.

But even with blend disabled, I'm only getting the Background displayed.

I only get the see the Quad if I draw them in the order Quad -> Background.

Am I doing something terribly wrong here for this to happen?

Edit3: I disabled glEnable(GL_DEPTH_TEST) before drawing 2Ds objects and the effect is finally showing! Thank you very much!

### #3Danicco

Posted 27 August 2013 - 12:29 PM

Hmm I couldn't find practical examples of this effect you mentioned, but I tried to do this:

uniform vec4 vertexAlpha;

out vec4 pixelAlpha;
void main()
{
//other stuff too
pixelAlpha = vertexAlpha;
}


in vec4 pixelAlpha;

out vec4 color;
void main()
{
color = texture2D(objectTexture, UV).rgba * pixelAlpha;
}


And in the code I have a float[4] for the alphaChannel values (set to white, 1 in alpha), but when I change the alpha my quad is going blacker and blacker, but leaving the black quad on screen instead of disappearing, so I think I'm off something...

Edit: Ah, I also think it's relevant to mention that the texture already has an alpha value (though I manually set them all to 255) and I'm using:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);


This would work if I always had a black screen and want to fade in/out, but I'm trying to achieve the fade in/out with transparency (for example with a background image behind, and then an image fades in/out over it).

How can I get this effect?

Edit2: Reading here (http://www.opengl.org/archives/resources/faq/technical/transparency.htm) I noticed I was trying to render the transparent object first, but this might be causing/being caused by some other problem... I have a background image and a small quad image on screen, and I'm drawing them in the order: Background -> Quad.

But even with blend disabled, I'm only getting the Background displayed.

I only get the see the Quad if I draw them in the order Quad -> Background.

Am I doing something terribly wrong here for this to happen?

### #2Danicco

Posted 27 August 2013 - 12:21 PM

Hmm I couldn't find practical examples of this effect you mentioned, but I tried to do this:

uniform vec4 vertexAlpha;

out vec4 pixelAlpha;
void main()
{
//other stuff too
pixelAlpha = vertexAlpha;
}


in vec4 pixelAlpha;

out vec4 color;
void main()
{
color = texture2D(objectTexture, UV).rgba * pixelAlpha;
}


And in the code I have a float[4] for the alphaChannel values (set to white, 1 in alpha), but when I change the alpha my quad is going blacker and blacker, but leaving the black quad on screen instead of disappearing, so I think I'm off something...

Edit: Ah, I also think it's relevant to mention that the texture already has an alpha value (though I manually set them all to 255) and I'm using:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);


This would work if I always had a black screen and want to fade in/out, but I'm trying to achieve the fade in/out with transparency (for example with a background image behind, and then an image fades in/out over it).

How can I get this effect?

### #1Danicco

Posted 27 August 2013 - 12:03 PM

Hmm I couldn't find practical examples of this effect you mentioned, but I tried to do this:

uniform vec4 vertexAlpha;

out vec4 pixelAlpha;
void main()
{
//other stuff too
pixelAlpha = vertexAlpha;
}


in vec4 pixelAlpha;

out vec4 color;
void main()
{
color = texture2D(objectTexture, UV).rgba * pixelAlpha;
}


And in the code I have a float[4] for the alphaChannel values (set to white, 1 in alpha), but when I change the alpha my quad is going blacker and blacker, but leaving the black quad on screen instead of disappearing, so I think I'm off something...

PARTNERS