2010-08-21 9 views
2

Je souhaite personnaliser la réflexion à partir de l'exemple de code FlowCover (Cover Flow refake). Maintenant, la réflexion (une texture) est seulement transparente mais je veux qu'elle ait un dégradé pour que la texture disparaisse complètement.iPhone OpenGL - Comment dégradé fondu une texture?

Comment obtiendriez-vous cet effet avec OpenGL? C'est le code qui gère les textures.

glPushMatrix(); 
glBindTexture(GL_TEXTURE_2D,fcr.texture); 
glTranslatef(trans, 0, 0); 
glScalef(sc,sc,1.0); 
glMultMatrixf(m); 
glDrawArrays(GL_TRIANGLE_STRIP,0,4); 

// reflect 
glTranslatef(0,-2,0); 
glScalef(1,-1,1); 
glColor4f(0.5,0.5,0.5,0.5); 
glDrawArrays(GL_TRIANGLE_STRIP,0,4); 
glColor4f(1,1,1,1); 

glPopMatrix(); 

Tous les indices ou les mots clés sont les bienvenus.

Merci beaucoup.

Répondre

1

Ma solution à ce problème était de supprimer la réflexion openGL et l'image du chemin avec réflexion et gradient vers FlowCower. Here est un bel exemple sur la création de la réflexion de l'image.

1

C'est une bonne idée de dessiner une réflexion avec un dégradé.^_^

Je pense que vous pouvez mettre une source de lumière, et changer le vecteur normal de la vue du projet. La source d'éclairage fera un effet de gradient.

1

Vous pouvez vous intéresser à la multitexturation. Vous pouvez combiner la texture de base avec une texture de dégradé d'une manière qui utilise la couleur de la première et les valeurs alpha de la seconde. Jetez un oeil à la commande glTexEnvi.