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

XNA/Monogame Discussion :

plaquer une texture sur un Mesh


Sujet :

XNA/Monogame

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 32
    Points : 16
    Points
    16
    Par défaut plaquer une texture sur un Mesh
    Bonjour

    je cherche a plaquer une texture sur un mesh. j'ai cherché un peu a droite a gauche mais je n'ai rien trouvé.
    voila mon bou de code:

    attribut de ma classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    GraphicsDeviceManager m_Graphics;
    	  	SpriteBatch m_SpriteBatch;
    		ContentManager m_contentManager;
     
    		private Matrix m_matrixProj;
    		private Matrix m_matrixView;
    		private Vector3 m_camPos;
    		private Vector3 m_camLookAt;
    		private Model m_model;
     
    		private Texture2D m_Texture;
    		private Vector3 m_modelPosition;
    		private Matrix m_modelRotation;
    		private Matrix[] m_modelMatrix;
     
    		CUserControlTrackBall m_TrackBall;
    chargement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    			m_SpriteBatch = new SpriteBatch(GraphicsDevice);
     
    			m_model = m_contentManager.Load<Model>(@"Content\sphere");
     
    			m_Texture = m_contentManager.Load<Texture2D>(@"Content\EarthMap");
    fonction Draw
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    		protected override void Draw(GameTime gameTime)
    		{
    			m_Graphics.GraphicsDevice.Clear(Color.Black);
    			m_modelMatrix = new Matrix[m_model.Bones.Count];
    			m_model.CopyAbsoluteBoneTransformsTo(m_modelMatrix);
     
    			foreach (ModelMesh thatModel in m_model.Meshes)
    			{		
    				foreach (BasicEffect that in thatModel.Effects)
    				{
    					that.Begin();
    					that.EnableDefaultLighting();
    					that.TextureEnabled = true;
    					that.Texture = m_Texture;
     
    					that.View = m_matrixView;
    					that.Projection = m_matrixProj;
     
    					that.World = m_modelMatrix[thatModel.ParentBone.Index]
    						           * Matrix.CreateRotationX(MathHelper.ToRadians(180)) // Pour le mettre à l'endroit
    								   * m_modelRotation // Correspond à la rotation actuel du mesh
    								   * Matrix.CreateTranslation(m_modelPosition); // Pour le déplacer
    					that.End();
    				}
    				thatModel.Draw();
    				//m_SpriteBatch.Draw(m_Texture, Vector2.Zero, Color.White);
    			}
    			base.Draw(gameTime);
     
    			// This one will do the trick we are looking for!
    			this.GraphicsDevice.Present(this.m_TrackBall.PanelHandle);
     
    		}
    comment faire pour que ma texture soi plaqué sur mon mesh ?

    merci d'avance

    T.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 899
    Points : 219 808
    Points
    219 808
    Billets dans le blog
    125
    Par défaut
    Bonjour,

    Est ce un mesh bien à vous ?
    Ou un mesh généré par un graphiste ( soit un objet 3D ( souvent un .x ) ) ?
    ( D'après le code, je dirai que c'est un mesh généré par un graphiste )
    Donc la méthode simple pour appliquer une texture, c'est dans le logiciel de modélisation 3D, lui mettre une texture ( et ce sera automatique dans XNA )

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 32
    Points : 16
    Points
    16
    Par défaut
    Bonjour

    merci pour votre réponse

    en faite le but est d'avoir une texture indépendante.

    comme je n'ai pas réussi a trouvé comme dessiné en sphère de toute pièce avec xna, j'en ai crée une avec Blender puis importé (.x donc).

    comme je voudrai pouvoir changer de texture a la volé, j'aimerai la mapper dans le code et non pas dans un editeur.

    avez vous une idée?

Discussions similaires

  1. Comment plaquer une texture 2D sur un objet GLUT ?
    Par zak62000 dans le forum GLUT
    Réponses: 2
    Dernier message: 03/03/2009, 15h37
  2. appliquer une texture sur une grille
    Par franc82 dans le forum OpenGL
    Réponses: 6
    Dernier message: 02/03/2007, 16h17
  3. Afficher une texture sur un GL_Quads
    Par alex6891 dans le forum OpenGL
    Réponses: 24
    Dernier message: 21/07/2006, 20h16
  4. Réponses: 4
    Dernier message: 16/03/2006, 17h50
  5. Creer Bitmap pour en faire une texture sur OpenGL
    Par denebj dans le forum OpenGL
    Réponses: 2
    Dernier message: 16/03/2006, 11h07

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