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#] Débutant - Texture surface plane


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 224
    Par défaut [c#] Débutant - Texture surface plane
    Bonjour,
    Je dois me plonger dans un code qui utilise une fenêtre directX et, entre autre, ajouter une texture sur le sol.
    Je ne trouve pas de tuto simple d'approche pour ce problème, et je n'ai pas malheureusement pas le temps d'étudier en profondeur l'api directX.
    Je connais les coordonnées de mon sol, y'a-t-il une solution simple pour ajouter une texture (à partir d'un jpg ou bmp) ?

    Merci à celles et ceux qui eclairerons ma lanterne.

  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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Salut

    Les notions de texturage sont abordées dans n'importe quel tutoriel pour débutants. Tu devrais commencer par chercher un peu, et revenir ici si réellement tu ne trouves rien, ou si tu butes sur un point précis.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 224
    Par défaut
    Oui j'ai parcouru quelques tuto, mais dans mon cas j'y connais rien et je dois me plonger dans un code plus ou moins abouti, c'est donc pas évident de faire le lien entre le tuto et le code à modifier. Bref

    J'ai presque reussi à coller ma texture sur mon sol, le poblème est le suivant :
    je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    			   device.SetTexture(0, localTexture);
     
    				device.SetStreamSource(0,vb,0);
    				device.VertexFormat = CustomVertex.PositionTextured.Format;
    				device.DrawPrimitives(PrimitiveType.TriangleStrip, 0,2);
    qui me permet d'avoir ma texture sur le sol, mais sur ce sol j'ai un personnage (bleu) et device.SetTexture à l'air de donner ma texture en texture par defaut pour la fenetre DX et pour tout ce qu'il y a dedans. Comment faire en sorte que la texture soit appliquée simplement au sol et pas ailleurs ?

    Merci

  4. #4
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Il suffit d'envoyer une texture "nulle" afin de désactiver le texturing dès que tu as dessiné ton sol. En C++ on passe NULL en paramètre à SetTexture, en C# je ne sais pas.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 224
    Par défaut
    Oui c'était bien ça !
    J'ai un autre problème, j'ai donc crée deux triangles (pour faire un carré), la texture s'affiche, mais du mauvais côté. De toutes façons il faut qu'elle s'affiche des deux côté, y'a-t-il un moyen de lui dire "affiche la texture des deux côté" ?

  6. #6
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Deux solutions :

    - Soit ajouter deux nouveaux triangles texturés, mais d'une orientation opposée aux deux premiers

    - Soit régler le mode de culling de façon à ce que DirectX n'élimine pas la face opposée des triangles.

    En C++ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 224
    Par défaut
    Merci!
    J'ai désactivé le backface culling,
    en C# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    device.RenderState.CullMode   =  Cull.None  ;

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/11/2011, 10h43
  2. projection d'un cylindre sur une surface plane
    Par diadieuf dans le forum Traitement d'images
    Réponses: 10
    Dernier message: 24/03/2011, 09h50
  3. [débutant] Couleur surface front et back
    Par esquif dans le forum OpenGL
    Réponses: 1
    Dernier message: 02/06/2005, 14h37
  4. [Débutant] Texture, Surface, D3DXSPRITE
    Par Cyrik dans le forum DirectX
    Réponses: 8
    Dernier message: 02/10/2004, 19h06
  5. D3D surfaces et textures
    Par Freakazoid dans le forum DirectX
    Réponses: 5
    Dernier message: 23/07/2003, 18h42

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