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 :

[Débutant] Cube qui ne s'affiche pas


Sujet :

DirectX

  1. #21
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pense à cliquer sur

  2. #22
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Points : 83
    Points
    83
    Par défaut
    Ben non vu que je vais avoir plein d'autres questions. Je vais pas créer un nouveau sujet à chaque fois si?

    Sinon, il faudrai renomer le topic, j'ai essayé mais ça marche po!

  3. #23
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ben non vu que je vais avoir plein d'autres questions. Je vais pas créer un nouveau sujet à chaque fois si?
    Si les nouvelles questions n'ont aucun rapport ça n'a aucun intérêt de les regrouper dans une même discussion (quelle importance que ce soit toi ou un autre qui la pose ?).
    Si par contre ça a un rapport tu peux retirer la mention et continuer la discussion.

    Sinon, il faudrai renomer le topic, j'ai essayé mais ça marche po!
    Il faut éditer le premier message.

  4. #24
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Points : 83
    Points
    83
    Par défaut
    Me revoilà!!!!

    J'ai édité le titre du premier message mais il n'a pas changé

    Sinon, j'ai un souçi. J'affiche 2 cubes. Jusque là, tout va bien! Le truc c'est pour les faire bouger avec la souris. Quand j'en dessine 1 seul, j'arrive bien à le faire tourner mais qd il y a les 2, impossible. En fait j'essaye de prendre en main les matrices. Le but final c'est de pouvoir me promener avec le clavier et la souris dans ces cubes (qui vont représenter des murs).

    Voici les évenements de la souris:
    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
    private void Game_MouseDown(object sender, MouseEventArgs e)
           {
               mouseX = e.X;
               mouseY = e.Y;
           }
     
           private void Game_MouseMove(object sender, MouseEventArgs e)
           {
               if (e.Button == MouseButtons.Left)
               {
                   RotationMatrices((float)(e.Y - mouseY), (float)(e.X - mouseX) , 0);
     
                   mouseX = e.X;
                   mouseY = e.Y;
               }		
           }
    Ensuite la fonction de rendu:
    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
    protected void Render()
        {
            // Efface le z-buffer également. Important !
            device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Bisque, 1.0F, 0);
            device.BeginScene();
     
            //SetupMatrices();
            SetupLights();
            SetupMaterials();
     
     
            device.SetStreamSource(0, vertices, 0);
     
     
            device.DrawPrimitives(PrimitiveType.TriangleList, 0, 12);
            device.Transform.World = Matrix.Identity;
     
            RotationMatrices(0, 90, 0);
     
            TranslationMatrices(3.2F, 0, 2.8F);
     
            device.DrawPrimitives(PrimitiveType.TriangleList, 12, 12);
            device.Transform.World = Matrix.Identity;
     
            device.EndScene();
            device.Present();
        }
    Et enfin, les fonctions matricielles:
    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
    public void RotationMatrices(float x, float y, float z) 
           {
               device.Transform.World = Matrix.Multiply(device.Transform.World, Matrix.RotationX((float)(x * Math.PI / 180)));
               device.Transform.World = Matrix.Multiply(device.Transform.World, Matrix.RotationY((float)(y * Math.PI / 180)));
               device.Transform.World = Matrix.Multiply(device.Transform.World, Matrix.RotationZ((float)(z * Math.PI / 180)));
           }
     
           public void TranslationMatrices(float x, float y, float z) 
           {
               device.Transform.World = Matrix.Multiply(device.Transform.World, Matrix.Translation(x, y, z));
           }
     
           public void ScaleMatrices(float x, float y, float z) 
           {
               device.Transform.World = Matrix.Multiply(device.Transform.World, Matrix.Scaling(x / 100, y / 100, z / 100));
           }
    Si quelqu'un pouvait m'expliquer ce qui ne va pas!

  5. #25
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Points : 275
    Points
    275
    Par défaut
    Sert toi de la matrice View pour te déplacer...

    Je te conseille vivement de lire la doc du SDK (tout au moins la partie DirectX Graphics - Programming Guide) et de chercher des tutos... (par exemple http://mathinfo.univ-reims.fr/image/...ours&menu=base

    Ainsi tu auras une bonne vision de ce dont est capable DX et tu avanceras beaucoup plus vite.

Discussions similaires

  1. [HTML]Image qui ne s'affiche pas sous firefox...
    Par OrangeBud dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/10/2004, 13h42
  2. pages qui ne s'affichent pas
    Par luck dans le forum ASP
    Réponses: 4
    Dernier message: 19/07/2004, 11h35
  3. [Applet] BorderLayout qui ne s'affiche pas
    Par Invité(e) dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 29/04/2004, 11h39
  4. [debutant][Tomcat]Images qui ne s'affichent pas
    Par omega dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 07/04/2004, 09h44
  5. [MFC] Ces fenêtres qui ne s'affichent pas..
    Par Davide dans le forum MFC
    Réponses: 3
    Dernier message: 19/11/2003, 11h30

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