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

DirectX Discussion :

[C#][Dx9] Problème d'alpha blending


Sujet :

DirectX

  1. #1
    Membre éclairé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Par défaut [C#][Dx9] Problème d'alpha blending
    Salut, j'ai un problème avec l'alphablending. Ce n'est pas la première fois que je rencontre ce problème et je l'avais résolu à une époque mais impossible de me souvenir comment .

    Donc voilà les symptômes. J'affiche un quad avec une texture. Mon device, pendant l'affichage, est dans l'état suivant : source = sourcealpha, destination = invsourcealpha. Bien sur le blend est activé.
    Le blend est effectivement effectué vu que je ne vois pas les bords de mon quad par contre plus l'alpha de la texture baisse, plus les composantes rgb de ma texture tentent vers le noir.
    En gros :
    - Si la composante alpha est à zero, le blend est correct (transparent).
    - Si la composante alpha est > 0 et < 1, dans tous les cas, les composantes rgb vont être interpolé avec le noir. L'intensité correspondant à la valeur de la composante alpha. Donc la couleur en question ne devient pas plus transparente... mais plus sombre jusqu'au noir.
    - Si la composante alpha est à 1, dans tous les cas, le rendu est correct.

    Voilà si vous avez des idées sur le pourquoi

  2. #2
    Membre expérimenté Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Par défaut
    Je suppose que le noir est en faite la couleur du clear? (essaye avec du rose)

    sinon quel sont les valeurs des RenderState: ReferenceAlpha, AlphaFunction et AlphaTestEnable?

  3. #3
    Membre Expert

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Par défaut
    Citation Envoyé par funkydata
    Salut, j'ai un problème avec l'alphablending. Ce n'est pas la première fois que je rencontre ce problème et je l'avais résolu à une époque mais impossible de me souvenir comment .

    Donc voilà les symptômes. J'affiche un quad avec une texture. Mon device, pendant l'affichage, est dans l'état suivant : source = sourcealpha, destination = invsourcealpha. Bien sur le blend est activé.
    Le blend est effectivement effectué vu que je ne vois pas les bords de mon quad par contre plus l'alpha de la texture baisse, plus les composantes rgb de ma texture tentent vers le noir.
    En gros :
    - Si la composante alpha est à zero, le blend est correct (transparent).
    - Si la composante alpha est > 0 et < 1, dans tous les cas, les composantes rgb vont être interpolé avec le noir. L'intensité correspondant à la valeur de la composante alpha. Donc la couleur en question ne devient pas plus transparente... mais plus sombre jusqu'au noir.
    - Si la composante alpha est à 1, dans tous les cas, le rendu est correct.

    Voilà si vous avez des idées sur le pourquoi
    Tu as un screenshot ?

    Assure toi que tu ne multiplies pas ton RGB par ton alpha dans ton pixel shader. Aussi vérifies que tu mets bien tes renderstates à la valeur que tu prétends mettre.. On sait jamais.

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Par défaut
    'Alut.

    Couleur = A*CurrentColor + B*ColorTexture

    Avec comme paramètre SourceAlpha et InvSourceAlpha, tu as A = (AlphaSource, AlphaSource, AlphaSource, AlphaSource) et B=(1-AlphaSource, ...). Il est donc normal que tes composantes RGB soient aussi mélangées.

    Si ta texture contient de l'alpha, tu peut prendre comme paramètres D3DBLEND_ONE et D3DBLEND_ZERO. (voir doc sur D3DBLEND et Alpha Texture Blending)

Discussions similaires

  1. [Direct3d9] Problème d'alpha blending.
    Par F-fisher dans le forum DirectX
    Réponses: 10
    Dernier message: 03/09/2010, 01h29
  2. DX9: Alpha blending dans une texture intermédiaire
    Par Bart1971 dans le forum DirectX
    Réponses: 2
    Dernier message: 30/10/2006, 14h21
  3. [VC++6][DX9] Problème de thread lors d'un blit ...
    Par grandjouff dans le forum DirectX
    Réponses: 2
    Dernier message: 12/06/2003, 22h22
  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