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

Moteurs 3D Discussion :

Génération d'une map 3D via un parser


Sujet :

Moteurs 3D

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Génération d'une map 3D via un parser
    Bonsoir,
    je dois réaliser un projet en 3D. c'est un fps, je souhaite générer une map en 3D via un parser. Le parser marche parfaitement avec du 2D mais dès que je veux faire du 3D je n'ai qu'un unique cube à l'écran. Je ne sais plus quoi faire je m'en remet donc à vous. J'ai joint à ce post le .cs de mon worldmap.
    Merci d'avance

    TraeX
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut,

    Citation Envoyé par traex Voir le message
    Je ne sais plus quoi faire je m'en remet donc à vous.
    Avec aussi peu d'infos, je crois qu'il va falloir viser plus haut... plus spirituel...

    Un peu plus d'infos sur ce que tu devrais avoir, et peut-être le code de ton parseur... vu qu'apparemment c'est un problème de parseur...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonsoir,
    Effectivement je me rends compte que je n'ai pas donné beaucoup de détails.

    Avec mon groupe nous souhaitons faire un fps et pour la première soutenance de notre projet nous pensions implémenter un parser qui nous permettrait d'afficher une map en 3D comme une grande salle vide d'entrainement donc toute simple.

    Mais le soucis étant que la map ne s'affiche pas, il n'y a qu'un cube qui ne bouge même pas mal grès le code.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par traex Voir le message
    Effectivement je me rends compte que je n'ai pas donné beaucoup de détails.
    Et pas beaucoup plus là non plus...

    Citation Envoyé par traex Voir le message
    Avec mon groupe nous souhaitons faire un fps et pour la première soutenance de notre projet nous pensions implémenter un parser qui nous permettrait d'afficher une map en 3D comme une grande salle vide d'entrainement donc toute simple.
    Ca, c'est grosso modo ce que tu as dit dans ton premier post...
    Quand je parlais de détails, c'est ce que tu as fait, ce que tu as testé, ce que ça doit faire, ce que ça fait, qu'elles sont les lignes de code qui déconnent, est-ce que le parseur fait bien son boulot, comment se fait le lien entre les deux classes que tu montres ici, etc etc... un peu de technique en gros.

    Citation Envoyé par traex Voir le message
    Mais le soucis étant que la map ne s'affiche pas, il n'y a qu'un cube qui ne bouge même pas mal grès le code.
    Avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    model = content.Load<Model>("cube.fbx");
    je présume que ça charge un cube? non? donc rien d'anormal... où se fait l'appel à ton parser?
    Pour le fait que rien ne bouge, ben... il n'y a pas de code pour faire bouger quoique ce soit à première vue, donc rien d'anormal là non plus.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     while ((ligne = fichier.ReadLine()) != null)
                  {
                      imax = ligne.Length;
                      for (i = 0; i < imax; i++)
                      {
                          map[i, j, k] = objet.MUR; //on bloque le plafond
     
                      }
                      j++;
                  }
    ce bloc ne s'exécutera pas parce que tu est arrrivé en fin de fichier avec le while précédent !

    Et puis ta matrice 3x3 risque d'être de taille totalement inégale et hétérogène si les longueurs de lignes sont différentes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     public void Draw(Model model)
            {
                //On set la position, la direction de la Caméra
                m_camPos = new Vector3(0.0f, 50.0f, 1500.0f);
                m_camLookAt = new Vector3(0, 0, 0);
     
     
                m_matrixProj = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver2, 800/600, 1.0f, 10000.0f);
                m_matrixView = Matrix.CreateLookAt(m_camPos, m_camLookAt, Vector3.UnitZ);
    Si les positions de la caméra ne bougent pas je conseillerais d'éviter de mettre ces instructions dans Draw parce que la carte graphique doit effectuer plus de transformations donc moins de FPS.
    !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for (int i = 0; i < tableau.GetLength(0); i++)
                {
                    for (int j = 0; j < tableau.GetLength(1); j++)
                    {
                        for (int k = 0; k < tableau.GetLength(2); k++)
                        {
                            switch (tableau[i,j,k])
                            {
     
                                case (objet.ESPACE) :
     
                                    break;
                                case (objet.MUR) :
    C'est la méthode la plus simple pour afficher des objets avec de bêtes boucles imbriquées.
    Mais si tu as 10000 murs à afficher et que parmi ces 10000murs il n'y en a qu''une partie dans le champs de vision ( Field Of View en anglais , FOV) entre la source de la caméra et le point d'objectif tu vas boucler inutilement plus de 10000 fois.
    Donc il faut avoir une solution comme avec un Binary Space Partitioning tree , technique utilisée dans DOOM , Quake et autres

    http://www.codesampler.com/dx9src/dx..._solidnode_bsp

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    ce bloc ne s'exécutera pas parce que tu est arrrivé en fin de fichier avec le while précédent !
    Le bloc est rattaché au while, donc normalement pas de souci. Il boucle tant qu'il a des lignes à lire... en théorie!

    Citation Envoyé par Mat.M Voir le message
    Mais si tu as 10000 murs à afficher [...]
    Il n'arrive déjà pas à afficher 1 mur, alors 10000... mais la remarque est judicieuse
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

Discussions similaires

  1. génération d'une page PHP via un formulaire
    Par sebastien123 dans le forum Langage
    Réponses: 26
    Dernier message: 27/02/2015, 22h47
  2. Réponses: 2
    Dernier message: 18/02/2012, 20h01
  3. Génération d'une shadow gradient map à partir d'une image
    Par bappy dans le forum Traitement d'images
    Réponses: 11
    Dernier message: 22/03/2010, 17h55
  4. Remplir une Map de Map via les paramètres
    Par crawling5 dans le forum Struts 2
    Réponses: 2
    Dernier message: 05/06/2009, 14h54
  5. Connexion à une base SQL_Serve via Internet
    Par Yoann_D dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 22/07/2003, 15h39

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