Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


#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:

 

vertexShader:

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

pixelShader:

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:

 

vertexShader:

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

pixelShader:

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:

 

vertexShader:

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

pixelShader:

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:

 

vertexShader:

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

 

pixelShader:

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