I need some help with OpenGL textures masking. I have it working but need to find some other blending function parameters to work in other way. Now I have
Code ://Background ...code... glBlendFunc(GL_ONE, GL_ZERO); ...code //Mask ...code... glBlendFuncSeparate(GL_ZERO, GL_ONE, GL_DST_COLOR, GL_ZERO); ...code... //Foreground ...code glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA); ...code
Now it sets foreground's opacity to 0 (fills with background texture) where mask is transparent. I need it to react to mask's colors. I mean something like setting foregrounds opacity depending on mask's color. For example if mask is black (0.0,0.0,0.0) then the opacity of that place in foreground is 0 (is filled with background), and if mask is white (1.0,1.0,1.0) then the opacity of foreground is 1 (not filled with background). It can be in reverse consequence (white = opacity 0, black = opacity 1). I just need it to work depending on color.
- 1st column is my current result. Circle in mask is transparent.
- 2nd column is example of result I am trying to get. Circle in mask is white.
- 3rd column is example of why I want to get it working just like as I said (white mask color = foreground alpha 0, black mask color = foreground alpha 1 or reverse)
- 1st row is background
- 2nd row is mask
- 3rd row is foreground
- 4th row is result