J'ai rendu plusieurs symboles sur un atlas de texture dont l'arrière-plan est totalement transparent (l'image de l'atlas de texture a reçu le canal alpha, formate RGBA). Après cela, j'utilise l'atlas de texture pour dessiner tous les symboles tant que les symboles apparaissent sur la texture.La couleur de texture OpenGL ne s'affiche pas correctement lors de la rotation
Le problème est lorsque le symbole rendu n'est pas pivoté, tout va bien. Cependant, la couleur du symbole semble être incorrecte lors de la rotation. Comme le montre l'image suivante: le symbole de la flèche gauche n'est pas tourné et rendu correctement. La couleur au bord du symbole de droite qui a été tourné a changé d'une manière ou d'une autre.
Ce qui pourrait causer cela?
EDIT:
Comme suggéré @BDL, j'ai changé le paramètre à:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
Mais quelques-uns des symboles ne sera quand même pas comme prévu:
Le symbole du triangle à droite est c orrect.
J'ai aussi essayé:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
ne fonctionne pas non plus.
Dois-je changer la couleur de l'arrière-plan de la texture de la même couleur que la couleur des pixels de la limite des symboles, puis utiliser GL_LINEAR comme option de filtre de texture?
vérifier vos techniques anti-aliasing – shan
De quelle couleur sont les pixels transparents dans l'image source? Noir? Blanc? – genpfault
@genpfault Noir –