PDA

View Full Version : a texture coloring question



kevinppp
04-05-2004, 06:08 AM
Hi guys,

I have two textures like below:

the first one(a 7*19 texture with a triangle inside):
0000000000000000000
0000000000001000000
0000000000111000000
0000000011111100000
0000001111111110000
0000111111111111000
0011111111111111100

the second one(a 7*19 texture with a polygon inside):
0000010000000000000
0000111110000000000
0001111111100000000
0001111111111000000
0011111111110000000
0111111111000000000
1111111100000000000

I am gonna map these two textures into framebuffer. And I will
dedicate the blue color to the first one and red color to the second
one. So I have to use the GL_MODULATE so that I can use the glcolor3f
to decide the color of texture before the scan-conversion(Inside
texture buffer, these two textures are just black(0)&white(1)).
Here is what I want. In the overlap area, if texture1 is black and texture2 is black, the last color should be black. In the place that one of the texture is not black, another one is black, the last value remains as the nonblack value. And if both texture1 and texture2 have nonblack color, the upper one defines the last color.
The combination of "GL_ONE,GL_ONE_MINUS_SRC_ALPHA " is not working. I tried other combinations, no one works.
I think maybe the simple blending function can't solve this problem. Maybe something in the glextension set can do the work.

Any help is appreciated, thanks

kevin

ZbuffeR
04-05-2004, 12:29 PM
To put it simply, you just want to put tex 1 above tex 2, with the black parts being transparent ?

Use the alpha channel, luke !

Both textures should be RGBA 1,1,1,A , with A being the value you show in your diagrams.

Use glColor to paint in red or blue with modulate.

Use something like GL_SRC_ALPHA, Gl_ONE_MINUS_ALPHA for blending equation.

You may need to paint in black before drawing with texture 2 then 1.

Hope it helps.

04-05-2004, 01:17 PM
Of course you need to enable blending in the first place:

glEnable(GL_BLEND);