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 :

probleme de texture (2d simple directX vb.net)


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut probleme de texture (2d simple directX vb.net)
    bonjour

    je voudrais gérer les images 2d de mon appli avec directx
    le framework n'étant pas assez efficaces pour afficher plusieurs centaines d'images sur une image de fond

    je me suis donc penché sur directx et après moults trucs chiants je bloque encore, mais pas loin de la fin (enfin tout est relatif)

    j'ai réussi à créer un device
    j'arrive à instancier, une surface, une texture, un sprite
    par contre pour afficher tout ca, c'est pas vraiment le cas

    voici le code :
    objDX.Clear(ClearFlags.Target, Color.Aqua, 1.0F, 0)

    objDX.BeginScene()
    texture.FromBitmap(objDX, Image.FromFile("F:\CLE\images bmp\API4.bmp"), Usage.Dynamic, Pool.Default)

    sprite1.Begin(SpriteFlags.SortTexture)
    sprite1.Draw2D(texture, New PointF(-200.0F, 0.0F), 1, New PointF(100.0F, 50.0F), Color.Violet)
    sprite1.End()
    objDX.EndScene()
    objDX.Present(picturebox)

    là j'ai un fond de la couleur choisie et un carré rotationé à souhait mais tout noir
    l'image n'est pas dedans

    de plus je voudrais choisir le fond, et je pensais que l'objet surface servait à ca, mais j'ai pas réussi non plus à l'utiliser

    si qqn peut m'orienter dans la bonne direction, car les infos sur directx pour les nons connaisseurs en graphismes c'est pas simples, et les 3/4 des codes sont en C++

    merci
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    j'ai réussi à passer ce problème avec Direct3D.TextureLoader.FromFile
    là j'ai vu que directX ne gèrait pas les gif (ptete pour ca que ca faisait un carré noir)

    m'enfin j'ai fait des png à la place (format qui gère la transparence aussi)
    mais mon image n'apparait pas transparente sur le fond alors qu'elle l'est bien dans un picturebox

    nouvelle question :
    quelqu'un sait comment gérer la transparence ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    en c++, on prend l'alpha en compte comme sa:


    Device->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_NOTEQUAL);

    Device->SetRenderState(D3DRS_ALPHAREF, 0x00);
    Device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
    Device->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
    Device->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);


    Je suppose que tu connais l'équivalence du renderstate en vb.
    Je sais si c'est déja fait et que ton problème c'est que sa marche toujours pas

  4. #4
    Membre confirmé Avatar de Ingham
    Profil pro
    Inscrit en
    Août 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 156
    Par défaut
    Plus simplement remplace ceci:

    sprite1.Begin(SpriteFlags.SortTexture)

    par ceci:

    sprite1.Begin(SpriteFlags.SortTexture | SpriteFlags.AlphaBlend)

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    j'ai réussi avec autre chose ... je ne sais pas trop quoi

    nouvelle question, comment changer la couleur d'une texture ^^
    enfin je vais ptete ouvrir un nouveau thread

    en attendant, je detaille ici:
    j'ai une image, que je place donc dans une texture
    cette image est un objet rouge (plusieurs nuances)
    je voudrais le transformer en vert (en gardant les nuances)
    plein de logiciels d'images font ca, en changeant la teinte surement
    pour l'instant j'oriente mes recherches sur les textureshaders (pas tres fructueux encore)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé Avatar de Ingham
    Profil pro
    Inscrit en
    Août 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 156
    Par défaut
    Le plus simple c'est d'utiliser uen image en niveau de gris, et de faire ca quand tu la rends:

    Draw2D(... ... .. Color.Green);

    Ca multiplie ta texture par la couleur donnée, d'ou l'utilisation d'une image en niveau de gris

Discussions similaires

  1. DirectX VB.NET - Simple initialisation - Exception
    Par LudoParis dans le forum VB.NET
    Réponses: 0
    Dernier message: 02/04/2011, 17h54
  2. Probleme de texture
    Par Dmnbp7ip dans le forum DirectX
    Réponses: 1
    Dernier message: 13/05/2005, 12h51
  3. probleme de texture sur une sphère
    Par sebpp dans le forum OpenGL
    Réponses: 2
    Dernier message: 12/04/2005, 19h46
  4. Réponses: 3
    Dernier message: 08/04/2004, 13h40
  5. [debutant] Probleme pour dessiner un simple cube
    Par scorpiwolf dans le forum DirectX
    Réponses: 6
    Dernier message: 02/07/2003, 20h29

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