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
chargement
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;
fonction Draw
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");
comment faire pour que ma texture soi plaqué sur mon mesh ?
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); }
merci d'avance
T.
Partager