Bonjour,
Je suis confronté à un soucis d'affichage dans le jeu que je développe, pour faire simple, le jeu est en 3D mais utilise des images 2D.
Voici une vidéo présentant le soucis et ce que je souhaite obtenir:
http://www.youtube.com/watch?v=W0gpB...ature=youtu.be
Comme vous pouvez le voir dans la vidéo, le personnage passe "à travers" ou plutôt devant le reste de la scène malgré le fait que sa position sur l'axe Z soit inférieur à celle de l'objet présent devant.
Voici la configuration actuelle de ma scène :
- Les arbres n'utilisent pas d'alpha-blending, j'ai une condition dans mon shader permettant la suppression des pixels transparents avec le code suivant:
- Le personnage lui utilise l'alpha blending de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ( texture.a < 0.5 ) discard;
Ce que j'ai essayé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 glCheck( glEnable(GL_BLEND) ); glCheck( glBlendFunc( GL_ONE, GL_ONE_MINUS_SRC_ALPHA ) ); glCheck( glDisable(GL_DEPTH_TEST) );
- Trier la scène par ordre de profondeur en Z (du plus loin au plus prêt)
- Ajouter le mesh du personnage à la fin de la scène
- Ajouter le mesh du personnage au début de la scène.
Merci à vous pour votre aide.
Partager