IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API graphiques Discussion :

Sprite et Alpha blending dans un monde 3D


Sujet :

API graphiques

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Sprite et Alpha blending dans un monde 3D
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( texture.a < 0.5 ) discard;
    - Le personnage lui utilise l'alpha blending de la façon suivante :
    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) );
    Ce que j'ai essayé:
    - 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.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Désolé pour le dérangement, j'ai finalement trouvé le soucis.

    Il suffit de trier les objets du plus lointain au plus proche en prenant en compte leur position et leur taille. Afin d'éviter trop de calculs, je me base sur le résultat de mon frustum culler qui m'évite ainsi un tri important.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DX9: Alpha blending dans une texture intermédiaire
    Par Bart1971 dans le forum DirectX
    Réponses: 2
    Dernier message: 30/10/2006, 14h21
  2. Réponses: 5
    Dernier message: 22/08/2005, 16h48
  3. Alpha blending
    Par Francky033 dans le forum DirectX
    Réponses: 4
    Dernier message: 31/05/2005, 00h23
  4. Alpha blending
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 23/05/2002, 19h37
  5. Alpha blending et Z-buffer directx 8
    Par Cesar4 dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 12h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo