2016-10-22 1 views
1

J'essaye de générer une texture avec QImage et QOpenGLTexture. J'ai mis le format de couleur QImage à RGBA8888, et définir la couleur avec setPixel, mais il semble que peu importe comment je change la valeur alpha, il reste à 255, et la transparence de l'image ne changera jamais.Comment créer une texture avec alpha dans QOpenGLTexture?

Voici mon code:

QImage texPic(width, height, QImage::Format_RGBA8888); 
texPic.setPixel(0, 0, qRgba(255,0,0,0)); 
texPic.setPixel(0, 1, qRgba(0,255,0,100)); 
QOpenGLTexture *texture = new QOpenGLTexture(texPic); 

Toutes les suggestions?

+0

Merci pour la réponse, et j'ai résolu le problème, il semble que ce soit le problème de réglage des fonctions gl. –

Répondre

1

J'ai trouvé le problème, ce n'est pas le réglage de la texture elle-même. Parce que je n'ai pas réglé correctement les fonctions de glissement. J'ai ajouté

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

Et maintenant cela a fonctionné.