2010-08-09 8 views
3

j'ai deux images qui se chevauchent les uns les autres. (La façon dont les cartes sont placées sur le dessus de l'autre)Gomme dans OpenGL ES iPhone

maintenant si je déplace mon doigt sur le plus haut sommet image partie de l'image devrait devenir transparent (l'opacité de cette partie devrait devenir 0).

Je suis nouveau au développement d'OpenGL ES.

veuillez m'aider ou me donner des suggestions pour compléter cette fonctionnalité.

Merci à l'avance

Répondre

1

Vous allez avoir besoin de rendre à la texture à l'aide d'objets framebuffer (de) OIR. Rendu à la texture désirée, mais seulement à la couche alpha, ce qui est fait en utilisant glColorMask (Avec elle vous pouvez masquer tous les canaux de couleur sauf alpha), puis dessinez le modèle dans le canal alpha, définissant alpha à 0.0, puis afficher les textures comme d'habitude.

+0

merci pour votre réponse je implémente l'application de peinture dans l'iphone comme GLPAINT (exemple de code iphone). Avez-vous une idée de comment mettre en œuvre annuler ma peinture. – bazooka

+0

Voulez-vous dire quelque chose comme ça? 'FrameBuffer.clearAllFrameBuffers (Gdx.app); fbo1.begin(); Gdx.gl20.glClearColor (0, 0, 0, 0); batch.begin(); rubber.draw (lot, 0); Gdx.gl20.glColorMask (false, false, false, true); coverHeart.draw (lot, 1); Gdx.gl20.glColorMask (true, true, true, false); batch.end(); fbo1.end(); ' J'utilise libgdx framework. J'essaye de dessiner un coeur avec un carré creux dedans. Mais cette chose ne fonctionne pas. Pouvez-vous me guider un peu s'il vous plaît? – Rafay

0

Je viens de faire quelque chose de semblable, et j'ai trouvé une solution dans GLBlending:

if (eraseMode) { 
    glBlendFunc(1.0,0.0); 
} 
else { 
    glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); 
} 

Certains produits cosmétiques sont nécessaires autour, mais il est une solution simple qui correspond à des besoins de base.