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 :

Cube direct3d


Sujet :

DirectX

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 133
    Points : 112
    Points
    112
    Par défaut Cube direct3d
    Ma question est très certainement idiote mais bon vu que je débute ...
    Je dévellope sous visual stuio .net 2003 en c#. Je comprends les exemples sur comment créer un triangle. MAis la question que je me pose est : comment je fais un cube ??? Je dois associés deux triangles alors ? et pour faire une rotation je dois l'appliquer aux deux triangles aussi ????

    Auriez vous un exemple concret ( meme en c++ s'il le faut mais je le prefere en c#)


    Merci a tous

  2. #2
    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 : 39
    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
    Bien vu, un carré c'est 2 triangles
    Par contre pour un cube il t'en faudra 12.
    Pour rotater ton cube/carré il suffit de changer la matrice world avant d'effectuer le rendu de tes triangles.

    Par contre j'ai pas d'exemple en C#, désolé.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 133
    Points : 112
    Points
    112
    Par défaut
    et en c++ ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 74
    Points : 31
    Points
    31
    Par défaut
    en 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
     
    // def de customvertex
    struct CUSTOMVERTEX
    {
        FLOAT x, y, z;      
        DWORD color
    };
     
    // variables
    LPDIRECT3D8                       g_pD3D           = NULL; 
    LPDIRECT3DDEVICE8            g_pd3dDevice  = NULL; 
    LPDIRECT3DVERTEXBUFFER8 g_pVB             = NULL; 
     
     
     
    --> à placer dans ton initialisation
    // on définie les vertex
    D3DVERTEX CubeVertices[ ] = 
               { {-1.0f,-1.0f,-1.0f,0.0f,1.0f},
                    {-1.0f, 1.0f,-1.0f,0.0f,0.0f},
                    { 1.0f, 1.0f,-1.0f,1.0f,0.0f},   
                    { 1.0f,-1.0f,-1.0f,1.0f,1.0f},
                    {-1.0f,-1.0f, 1.0f,0.0f,0.0f},
                    {1.0f,-1.0f, 1.0f,0.0f,1.0f},
    	{ 1.0f, 1.0f, 1.0f,0.0f,0.0f},
                    {-1.0f, 1.0f, 1.0f,0.0f,1.0f}   };
     
     
    // on implémente le vertex buffer
        if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3*sizeof(CUSTOMVERTEX),
                                                      0, D3DFVF_CUSTOMVERTEX,
                                                      D3DPOOL_DEFAULT, &g_pVB ) ) )
        {
            return E_FAIL;
        }
     
    // ... puis on le "rempli" 
        VOID * pVertices;
        if( FAILED( g_pVB->Lock( 0, sizeof(CubeVertices), (BYTE**)&pVertices, 0 ) ) )
            return E_FAIL;
        memcpy( pVertices, CubeVertices, sizeof(CubeVertices) );
        g_pVB->Unlock();
     
     
    -->à placer dans ta fonction te permettant de calculer les matrices du monde
     
    // l'objet va tourner sur lui même 
    D3DXMATRIX matWorld;
    D3DXMatrixRotationY( &matWorld, timeGetTime()/150.0f );
    g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );

    Voilà, je crois que c'est tout...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 133
    Points : 112
    Points
    112
    Par défaut
    merci !

Discussions similaires

  1. [debutant] Probleme pour dessiner un simple cube
    Par scorpiwolf dans le forum DirectX
    Réponses: 6
    Dernier message: 02/07/2003, 20h29
  2. texture cube glTexImage2D et moi
    Par Toukan dans le forum OpenGL
    Réponses: 3
    Dernier message: 04/06/2003, 15h01
  3. [direct3d][c#]créer un cube et le sauvegarder
    Par maxvador dans le forum DirectX
    Réponses: 2
    Dernier message: 23/05/2003, 23h08
  4. Thread et affichage direct3D plein écran
    Par Harry_polin dans le forum DirectX
    Réponses: 8
    Dernier message: 13/03/2003, 22h22
  5. Afficher une buffer de pixel avec Direct3D
    Par Black_Daimond dans le forum DirectX
    Réponses: 4
    Dernier message: 27/12/2002, 22h18

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