2012-03-06 1 views
0

J'ai une application qui montre deux polygones. J'ai besoin de rendre progressivement l'un des polygones invisible, mais l'autre doit être visible. Je travaille avec OpenGL ES 1.1. Je développe pour Android, mais je pense que d'autres plateformes feront le même code avec quelques changements mineurs.Comment utiliser Blend pour rendre un polygone transparent?

Comment je peux faire ça?

Je sais que je dois le faire avec ces fonctions:

glEnable (GL_BLEND); 
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 

Mais je ne sais pas où je dois les mettre et comment les utiliser pour rendre mon polygone progressivement transparent.

Répondre

1

On dirait que le bon mélange fonctionne ici, appelez-le avant de dessiner votre polygone translucide. La valeur alpha est généralement fournie avec la couleur ou le texturemap (rouge, vert, bleu, alpha), et la plage pour alpha est de 0,0 (transparent) à 1,0 (opaque) compte tenu de la fonction de mélange ci-dessus.

Notez également que les objets translucides sont sensibles à l'ordre de rendu: Généralement, vous devez d'abord dessiner tous vos objets opaques, en utilisant le tampon de profondeur comme d'habitude. Ensuite, activez la fonction de fusion et définissez le tampon de profondeur sur Lecture seule, puis tracez vos objets translucides en arrière (en commençant par le plus éloigné de la caméra). De cette façon, le mélange de fragments se produit le plus proche du plus proche.

+0

s'il vous plaît pouvez-vous me donner un exemple de code pour faire un polygone texturé transparent sur android? Je ne trouve pas de tutoriels ou d'exemples sur google – NullPointerException