Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

879607 Posts in 32993 Topics- by 24372 Members - Latest Member: adellaxs66

May 24, 2013, 12:26:20 PM
TIGSource ForumsDeveloperTechnical (Moderators: Glaiel-Gamer, ThemsAllTook)Alpha blending texture on Android, OpenGLES(1.1)
Pages: [1]
Print
Author Topic: Alpha blending texture on Android, OpenGLES(1.1)  (Read 486 times)
PompiPompi
Level 10
*****



View Profile WWW
« on: June 02, 2012, 09:49:44 AM »

I am using the fixed pipline of OpenGLES for my Android game.
I am using it to draw sprites.
I was able to blend my sprite with a color, for effects like getting hurt(sprites is tinted with red).
However, I was not able to change the sprite's overall alpha in order to make it transparent.
The sprite's texture alpha channel does make it transparent where it's not 1. I just want to "tint" the alpha with a constant alpha. So for instance a constant 0.5 alpha would make the sprite 50% transparent(over what it already has).

My code for making the color tinting is:

Code:
c[0] = (float)((int)((Color/0x10000)%0x100))/(float)0xFF;
c[1] = (float)((int)(Color/0x100)%0x100)/(float)0xFF;
c[2] = (float)(Color%0x100)/(float)0xFF;
c[3] = (float)((int)((Color/0x1000000)%0x100))/(float)0xFF;
gl.glTexEnvf(gl.GL_TEXTURE_ENV, gl.GL_TEXTURE_ENV_MODE, gl.GL_BLEND );
gl.glTexEnvfv(gl.GL_TEXTURE_ENV, gl.GL_TEXTURE_ENV_COLOR, c, 0);

I can't figure how to make the transparency tinting.

Thanks.
Logged


Kickstarter? no no no... it's Kicksucker...
Maud'Dib Atreides
Level 4
****


Obsessed with space


View Profile WWW Email
« Reply #1 on: June 02, 2012, 12:22:40 PM »

gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);

You should totally try this line of code.

Regarded these are PNG's
« Last Edit: June 02, 2012, 01:08:40 PM by #Sharp » Logged

Guy: Give me all of your money.
Chap: You can't talk to me that way, I'M BRITISH!
Guy: Well, You can't talk to me that way, I'm brutish.
Chap: Somebody help me, I'm about to lose 300 pounds!
Guy: Why's that a bad thing?
Chap: I'M BRITISH.
PompiPompi
Level 10
*****



View Profile WWW
« Reply #2 on: June 02, 2012, 08:27:50 PM »

Oh, this is what I did(what you suggested only referes to blending with the backbuffer)

Code:
if(gl instanceof GL11)
{
GL11 gl11 = (GL11)gl;
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_COMBINE);
//Sample RGB, multiply by previous texunit result
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_COMBINE_RGB, GL11.GL_MODULATE);   //Modulate RGB with RGB
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_SRC0_RGB, GL11.GL_CONSTANT);
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_SRC1_RGB, GL11.GL_TEXTURE);
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_OPERAND0_RGB, GL11.GL_SRC_COLOR);
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_OPERAND1_RGB, GL11.GL_SRC_COLOR);
//Sample ALPHA, multiply by previous texunit result
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_COMBINE_ALPHA, GL11.GL_MODULATE);  //Modulate ALPHA with ALPHA
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_SRC0_ALPHA, GL11.GL_CONSTANT);
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_SRC1_ALPHA, GL11.GL_TEXTURE);
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_OPERAND0_ALPHA, GL11.GL_SRC_ALPHA);
gl11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_OPERAND1_ALPHA, GL11.GL_SRC_ALPHA);
// gl.glTexEnvf(gl.GL_TEXTURE_ENV, ((GL11)gl).GL_COMBINE_ALPHA, ((GL11)gl).GL_MODULATE);
// gl.glTexEnvf(gl.GL_TEXTURE_ENV, ((GL11)gl).GL_ALPHA_SCALE, c[3]);
}
Logged


Kickstarter? no no no... it's Kicksucker...
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic