Textures avec transparence
Bonjour,
J'utilise dans mon application Python des textures .png ( mode RVBA ) pour pouvoir jouer avec la transparence de celle-ci grâce au blending. J'ai réussi à trouver les bonnes configuration pour que l'affichage soit correct mais je me suis rendu compte que les textures rendues étaient monochrome même si l'original est en couleur. Cette couleur est définie par le dernier appelle de la fonction glColor, or je voudrais récupérer mes couleurs originales.
Est-ce possible ???
Si oui, qu'est-ce qui peut faire que le programme ne récupère pas ces couleurs ???
Paramètres du contexte OpenGL
Code:
1 2
| glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND) |
Définition de la texture
Code:
1 2 3 4 5 6 7 8 9
| image = Image.open(texture)
ix = image.size[0]
iy = image.size[1]
image = image.tostring()
glPixelStorei(GL_UNPACK_ALIGNMENT,1)
glTexImage2D(GL_TEXTURE_2D, 0, 4, ix, iy, 0, GL_RBA, GL_UNSIGNED_BYTE, image)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) |
Affichage de la texture
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| glEnable(GL_TEXTURE_2D)
glEnable(GL_BLEND)
glDisable(GL_DEPTH_TEST)
glPushMatrix()
glTranslated(coord[0],coord[1],0)
glColor3f(couleur[0],couleur[1],couleur[2])
glBegin(GL_QUADS)
glTexCoord2f(0.0, 0.0)
glVertex3f(-taille_x, -taille_y, 0)
glTexCoord2f(1.0, 0.0)
glVertex3f( taille_x, -taille_y, 0)
glTexCoord2f(1.0, 1.0)
glVertex3f( taille_x, taille_y, 0)
glTexCoord2f(0.0, 1.0)
glVertex3f(-taille_x, taille_y, 0)
glEnd()
glPopMatrix()
glDisable(GL_TEXTURE_2D)
glDisable(GL_BLEND)
glEnable(GL_DEPTH_TEST) |
Merci