iPhone OpenGL ES Texture2D Masking

Posted by Robert Neagu on Stack Overflow See other posts from Stack Overflow or by Robert Neagu
Published on 2009-08-05T17:05:48Z Indexed on 2012/09/29 3:38 UTC
Read the original article Hit count: 240

Filed under:
|
|
|

What's the best choice when trying to mask a texture like ColorSplash or other apps like iSteam, etc?

I started learning OPENGL ES like... 4 days ago (I'm a total rookie) and tried the following approach:

1) I created a colored texture2D, a grayscale version of the first texture and a third texture2D called mask

2) I also created a texture2D for the brush... which is grayscale and it's opaque (brush = black = 0,0,0,1 and surroundings = white = 1,1,1,1). My intention was to create an antialiased brush with smooth edges but i'm fine with a normal one right now

3) I searched for masking techniques on the internet and found this tutorial ZeusCMD - Design and Development Tutorials : OpenGL ES Programming Tutorials - Masking about masking. The tutorial tells me to use blending to achieve masking... first draw colored, then mask with glBlendFunc(GL_DST_COLOR, GL_ZERO) and then grayscale with glBlendFunc(GL_ONE, GL_ONE) ... and this gives me something close to what i want... but not exactly what i want. The result is masked but it's somehow overbright-ed

4) For drawing to the mask texture i used an extra frame buffer object (FBO)

I'm not really happy with the resulting image (overbright-ed picture) nor with the speed achieved with this method. I think the normal way was to draw directly to the grayscale (overlay) texture2D affecting only it's alpha channel in the places where the brush hits. Is there a fast way to achieve this? I have searched a lot and never got an answer that's clear and understandable. Then, in the main draw loop I could only draw the colored texture and then blend the grayscale ontop with glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA).

I just want to learn to use OPENGL ES and it's driving me nuts because i can't get it to work properly. An advice, a link to a tutorial would be much appreciated.

© Stack Overflow or respective owner

Related posts about iphone

Related posts about opengl-es