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 :

Transparence autre qu'avec le noir...


Sujet :

DirectX

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut Transparence autre qu'avec le noir...
    Bonsoir à tous. Je vous écris ce message pour demander un peu d'aide.

    J'ai réalisé un moteur de RPG 2D avec DirectX qui fonctionne très bien et ce, avec des textures que j'ai chipé un peu partout. Textures sur fond noirs...

    Mais maintenant, je voudrais passer à l'étape suivante et recommencer en faisant mes propres graphismes. J'ai donc travaillé et grâce à Photoshop, j'ai obtenu ce que je souhaitais. Mais j'ai un problème au niveau de la transparence des textures.

    En les gardant sur fond noir, il arrive que certains pixels qui sont noirs mais qui ne devraient pas être transparents le deviennent...

    Si je mets un fond d'une autre couleur jamais utilisée (par exemple un mauve "Roselyne Bachelot" ) et bien du fait du lissage et des effets Photoshop, il reste des contours mauves le long de mes textures...

    Dois-je me résigner à ne pas lisser mes textures sous Photoshop ? Non je pense qu'il doit bien exister quelque chose pour autoriser la transparence d'une couleur "et des couleurs voisines" enfin j'espère que vous voyez ce que je veux dire...

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    C'est pour ça qu'on a inventé le canal alpha

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Humm... Oui... Alors j'ai du mal saisir quelque chose. Je pensais que j'utilisais déjà cette notion ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 74
    Points : 31
    Points
    31
    Par défaut
    J'ai eu le même problème de "détourage" de sprites avec un moteur 2d directx... et bien j'ai posté des dizaines de messages un peu partout et la réponse a toujours été la même : y a pas de solution... Dès que tu zoom/dezoom ta texture ce problème apparait, dû je crois au bilinear filtering il me semble, qui va mélanger les pixels voisins afin d'obtenir quelque chose de plus beau...

    Il faut donc que tu passes sous directx8 ou 9 et que tu fasses de la 2d avec de la 3d ( hum je me comprend ) du coup avec l'alpha blending ce type de problèmes disparait...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Je ne sais pas si je me suis bien expliqué...

    Je suis déjà sous DirectX 9 et mon moteur est justement un pseudo moteur 2D/3D.

    Mais jusqu'ici, les textures étaient en bmp et sur fond noir "uni".

    Maintenant, c'est pareil sauf qu'elles sont plus jolies, avec des dégradés et tout ça. D'où problème avec la "Color Key" de transparence... Quand je laisse ce fond noir, ça marche relativement bien mis à part qqs pixels à l'intérieur de la texture qui disparaissent alors qu'ils ne devraient pas et si je change la couleur de fond (et donc de transparence, soyons logique ) et bien là c'est la catastrophe...

    Voyez-vous le pb ? Please help me ou orientez-moi vers une solution...
    Si l'alpha blending est la solution, je vais me documenter. Sinon pourriez-vous m'expliquer brièvement ?

    Merci d'avance.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 74
    Points : 31
    Points
    31
    Par défaut
    tu peux poster une de tes textures stp ?

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Il ne faut pas que tu utilises une couleur de fond. Il faut que tu ajoutes une canal alpha à ton image (les formats classiques qui supportent ça sont le tga et le png) qui indique pour chaque pixel le niveau de transparence. Ensuite dans ton appli tu dois activer l'alpha blending avec comme paramètres D3DBLEND_SRCALPHA pour la source et D3DBLEND_INVSRCALPHA pour la destination.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    D'accord, j'essaierai ce soir J'ai déjà ces paramètres lors de l'initialisation de DirectX mais les textures sont encore en BMP. Je ferai un essai et je vous posterai un exemple si jamais ça ne marche pas.

    Merci.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Je n'arrive pas à comprendre. J'étais persuadé d'utiliser tout ça.

    Bon voilà un exemple de ce que j'avais et de ce que ça donne maintenant :



    J'ai essayé vite fait avec du PNG mais le résultat est identique à celui de droite.

    Il n'y a pas de couleur de fond ? Je dois donc définir ma transparence directement dans Photoshop ? Comment on fait alors avec D3DXCreateTextureFromFileEx ?

    Oh ça fait beaucoup de questions lol...

    Merci d'avance.

  10. #10
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Oui, il faut que tu définisses ta transparence avec Photoshop (dans le canal alpha !), et avec D3DXCreateTextureFromFile il ne faut pas specifier de couleur de transparence (0) et specifier un format de texture qui possede un canal alpha (D3DFMT_A8R8G8B8 par exemple).
    Il faut aussi désactiver le filtrage de texture pour éviter les effets desagreables que tu peux voir sur tes images.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 74
    Points : 31
    Points
    31
    Par défaut
    Et il faut surtout que ton image soit correctement "découpée" sous photoshop ( utilise simplement la baguette magique en la paramètrant correctement ) Sinon même sans aucunes erreures dans ton appli tu auras toujours ce genre de problèmes.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Bon et bien apparemment ça fonctionne. Je vous remercie beaucoup de votre aide. Je sais que c'est un sujet qui doit revenir souvent alors merci d'avoir pris le temps de me répondre.

    Et si mon projet de jeu abouti, je vous en ferai part ! lol

    @++

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/11/2007, 01h43
  2. Réponses: 17
    Dernier message: 12/07/2006, 23h04
  3. Choix d'un autre SGBD avec ASP
    Par Tragnee dans le forum ASP
    Réponses: 5
    Dernier message: 24/04/2006, 12h55
  4. Excel : lien hypertexte vers un autre fichier avec nom page
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 10h33
  5. [VB.Net] Un autre probleme avec controle DropDownList
    Par angelevil dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/03/2005, 15h59

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