Bonjours,
je fait le rendu de mon jeu en utilisant des surfaces séparées (pour ensuite appliquer les ombres calculées par mon moteur de lumière), mais je me retrouve confronté a un problème de blending.

Un screen vaux mieux que mille mots:


Pseudocode du premier screen:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
effacerEcran();
afficherBackground();
lierFbo();
dessinerCouchePierre();
dessinerSpriteTransparent();
delierFbo();
dessinerFbo();
Problème de blending: mon sprite avec transparence se mélange avec les couleurs du framebuffer principal.

Pseudocode du second screen:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
effacerEcran();
activerBlending();
afficherBackground();
lierFbo();
dessinerCouchePierre();
dessinerSpriteTransparent();
delierFbo();
desactiverBlending();
dessinerFbo();
Le blending du sprite transparent est nickel dans ma surface, mais les zones transparentes de la couche de pierre sont opaques du coup...

Pour la transparence j'utilise le fameux blending:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

Voila si quelqu'un a une idée de comment régler ce problème, j'ai déjà pas mal cherché mais je n'ai pas trouvé de solution.
Merci encore.

Edit:
Ah ben je viens de trouver juste après avoir posté le message, j'ai utilisé un alpha blending different pour afficher mon sprite avec transparence dans la surface:
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);

Je laisse le sujet au cas ou quelqu'un se retrouverais confronté au même problème.