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 :

Mon model n'est pas conforce a l'originale


Sujet :

XNA/Monogame

  1. #1
    Membre régulier

    Inscrit en
    Février 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 106
    Points : 71
    Points
    71
    Billets dans le blog
    1
    Par défaut Mon model n'est pas conforce a l'originale
    Bonjour a tous
    bon je débute dans la programmation XNA ansi que le domaine 3D, j'ai lus des cours et j'ai réussi a afficher des vertex,puis apres importer mes propre models.
    et c'est la que ca devien pas tres stable, je m'explique:
    j'ai crée un model via 3ds max 9, une chambre avec le parket et 1 mur comme afficher si dessus :

    ensuite quand j'exporte mon model par l'extention FBX et l'importer dans mon jeux, j'ai remarqué que tout mes mesh se met au centre, et le mur disparait(plutot s'incline sur le sol) comme ceci :

    apres des recherche,j'ai trouvé qu'il falais PEUX-ETRE les attaché l'un l'autre pour former un seul objet comme figuré ici :

    après avoir essayé mon application je reçois presque la même chose :

    j'ai essayé la 2eme option d'attachement et je reçois cela :


    j'ai conclus que les objet ne garde pas leurs positions l'ors de l'importation.
    alors comment afficher mon model tel qu'il apparait dans 3dsmax sur mon jeux tout en sachons que je veux pas coder la position de chaque mesh dans mas scène, mais je prefere importer le tout et que ca soit identique que l'originale.
    je suis désoler de ne pas pouvoir expliquer tout ca avec un discours moins long, et je galére la m'aidé m'aidé a vous

  2. #2
    Membre actif Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 273
    Points
    273
    Par défaut
    Quel code tu utilises pour afficher tes modèles ? Ce serait possible d'avoir ton modèle pour essayer ? (le fichier fbx)
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

  3. #3
    Membre régulier

    Inscrit en
    Février 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 106
    Points : 71
    Points
    71
    Billets dans le blog
    1
    Par défaut Code et model et textures
    voici mon code C#
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Audio;
    using Microsoft.Xna.Framework.Content;
    using Microsoft.Xna.Framework.GamerServices;
    using Microsoft.Xna.Framework.Graphics;
    using Microsoft.Xna.Framework.Input;
    using Microsoft.Xna.Framework.Media;
    using Microsoft.Xna.Framework.Net;
    using Microsoft.Xna.Framework.Storage;
     
    namespace mygame
    {
     
        public class Game1 : Microsoft.Xna.Framework.Game
        {
            GraphicsDeviceManager graphics;
            SpriteBatch spriteBatch;
     
            Model parket_01_chambre_01;
            Vector3 terrainPosition = Vector3.Zero;
            Vector3 cameraPosition = new Vector3(100.0f, 100.0f, 100.0f);
            Vector3 camaraLookAt = new Vector3(0.0f, 0.0f, 0.0f);
     
            Matrix cameraProjectionMatrix;
            Matrix cameraViewMatrix;
     
            public Game1()
            {
                graphics = new GraphicsDeviceManager(this);
                Content.RootDirectory = "Content";
            }
     
            protected override void Initialize()
            {
                graphics.PreferredBackBufferWidth = 800;
                graphics.PreferredBackBufferHeight = 700;
                graphics.ApplyChanges();
     
                base.Initialize();
            }
     
            protected override void LoadContent()
            {
                spriteBatch = new SpriteBatch(GraphicsDevice);
                cameraViewMatrix = Matrix.CreateLookAt(cameraPosition, camaraLookAt, Vector3.Backward);
                cameraProjectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f), graphics.GraphicsDevice.Viewport.AspectRatio, 1.0f, 10000.0f);
     
                parket_01_chambre_01 = Content.Load<Model>("chambre01\\models\\ch_01");
            }
     
            protected override void UnloadContent()
            {
     
            }
     
            protected override void Update(GameTime gameTime)
            {
                if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
                    this.Exit();
                base.Update(gameTime);
            }
     
            protected override void Draw(GameTime gameTime)
            {
                GraphicsDevice.Clear(Color.CornflowerBlue);
     
                DrawModels(parket_01_chambre_01, terrainPosition);
                base.Draw(gameTime);
            }
     
            void DrawModels(Model model, Vector3 modelPosition)
            {
                foreach (ModelMesh mesh in model.Meshes)
                {
                    foreach (BasicEffect effect in mesh.Effects)
                    {
                        effect.EnableDefaultLighting();
                        effect.PreferPerPixelLighting = true;
                        effect.World = Matrix.CreateTranslation(modelPosition);
                        effect.Projection = cameraProjectionMatrix;
                        effect.View = cameraViewMatrix;
                    }
                    mesh.Draw();
                }
            }
        }
    }
    voici le lien ziped qui contien mon model ainsi que 2 textures utilisé dans mon model :
    Lien ici
    merci d'avance

  4. #4
    Membre régulier Avatar de LeonardL
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    Il te manque quelques petites choses ...

    Ajoutes à ta classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Matrix[] transforms;
    Après avoir chargé ton objet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    transforms = new Matrix[tonobjet.Bones.Count];
    tonobjet.CopyAbsoluteTransformsTo(transforms);
    Et enfin, quand tu dessines :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    effect.World = transforms[mesh.ParentBone.Index] * Matrix.Identity;

  5. #5
    Membre régulier

    Inscrit en
    Février 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 106
    Points : 71
    Points
    71
    Billets dans le blog
    1
    Par défaut cool
    merci LeonardL, c'été plient dans le mil
    j'aimerai just que tu m'explique a quoi cert ces ligne avec un petit commentaire.
    j'ai autre chose, j'ai du mal a placer ma camera dans ma scene de jeux comme celle dans l'image1 tiré du 3d max.
    merci bc encore une fois

  6. #6
    Membre actif Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 273
    Points
    273
    Par défaut
    j'aimerai just que tu m'explique a quoi cert ces ligne avec un petit commentaire.
    Le code de LeonardL te permet en fait de placer chaque élément de ton modèle "à l'intérieur" de ton modèle. En gros, ton modèle est constitué de sous-modèles, qu'il faut placer aux bons endroits. Mais quand ton modèle se déplace, tu ne dois déplacer que ton modèle général.

    Ce code va stocker la position relative des sous-modèles dans des matrices, pour les appliquer à ta matrice world quand tu dessineras ton modèle.

    j'ai autre chose, j'ai du mal a placer ma camera dans ma scene de jeux comme celle dans l'image1 tiré du 3d max.
    Un article que j'ai trouvé intéressant sur les caméras : http://bittermanandy.wordpress.com/2...mera-concepts/
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

  7. #7
    Membre régulier

    Inscrit en
    Février 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 106
    Points : 71
    Points
    71
    Billets dans le blog
    1
    Par défaut merci bc
    Merci Gulix, je comprend un peut maintenant la chose.
    merci beaucoup pour votre aide, merci infiniment

  8. #8
    Membre régulier Avatar de LeonardL
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    Vraiment pas mal l'article Gulix. Dommage que l'auteur ne détaille pas plus les caméra selon le style de jeu (notamment celle de type STR :s).

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/09/2006, 14h50
  2. [C# 2.0] Pourquoi mon DataAdapter n'est pas instancié ?
    Par FraktaL dans le forum Services Web
    Réponses: 2
    Dernier message: 04/07/2006, 00h04
  3. Mon code n'est pas interprété !
    Par korriganez dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2006, 15h46
  4. Mon clonage n'est pas correct ?
    Par elitost dans le forum Langage
    Réponses: 6
    Dernier message: 21/03/2006, 14h38
  5. Mon timer n'est pas prioritaire !!
    Par Hectorz dans le forum MFC
    Réponses: 9
    Dernier message: 09/02/2005, 12h57

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