Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3701 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] D3D

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] D3D

n°320486
ghiby
Posté le 28-02-2003 à 18:30:41  profilanswer
 

Bonjour,
 
Je suis en train de creer un moteur 3D, j'ai une classe qui charge un fichier x et l'afficher à l'écran.  
 
J'utilise ce type de fonction :
 
D3DXMatrixTranslation
D3DXMatrixRotation
 
pour effectuer des mouvements sur la scene en entiere. COmment proceder pour changer la position d'un seul object a la fois. Quelles sont les variables a utiliser pour changer la position de mes objets.
 
Voici les variables de ma classe CMeshes:
LPD3DXBUFFER pD3DXMtrlBuffer;
D3DXMATERIAL* d3dxMaterials;
LPD3DXMESH g_pMesh;
D3DMATERIAL8* g_pMeshMaterials;
LPDIRECT3DTEXTURE8* g_pMeshTextures;
DWORD g_dwNumMaterials;
LPD3DXBUFFER g_pMeshPoints;
 
Je suis perdu aidez moi  :cry:

mood
Publicité
Posté le 28-02-2003 à 18:30:41  profilanswer
 

n°320490
ghiby
Posté le 28-02-2003 à 18:44:42  profilanswer
 

Si mes questions demandent précisions, dites le moi :)

n°320491
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 28-02-2003 à 18:46:42  profilanswer
 

Tu appelles
 
IDirect3DDevice9::SetTransform(D3DTS_WORLD, maMatrice)


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°320507
ghiby
Posté le 28-02-2003 à 19:05:59  profilanswer
 

void CMeshes::LoadFileX(char* name, LPDIRECT3DDEVICE8 TheDevice)
{
 D3DXLoadMeshFromX( name, D3DXMESH_SYSTEMMEM,  
                                   g_pd3dDevice, &g_pMeshPoints,  
                                   &pD3DXMtrlBuffer, &g_dwNumMaterials,  
                                   &g_pMesh );
 
 d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer();
    g_pMeshMaterials = new D3DMATERIAL8[g_dwNumMaterials];
    g_pMeshTextures  = new LPDIRECT3DTEXTURE8[g_dwNumMaterials];
 
     
 for( DWORD i=0; i<g_dwNumMaterials; i++ )
    {
        // Copy the material
        g_pMeshMaterials[i] = d3dxMaterials[i].MatD3D;
 
        // Set the ambient color for the material (D3DX does not do this)
        g_pMeshMaterials[i].Ambient = g_pMeshMaterials[i].Diffuse;
     
        // Create the texture
        if( FAILED( D3DXCreateTextureFromFile( g_pd3dDevice,  
                                               d3dxMaterials[i].pTextureFilename,  
                                               &g_pMeshTextures[i] ) ) )
        {
            g_pMeshTextures[i] = NULL;
        }
    }
 
 
    // Done with the material buffer
    pD3DXMtrlBuffer->Release();
 
 
 
}
 
C'est ma fonction qui charge un fichier x, ou est ce que je peux récuperer ma matrice de mon objet ?

n°320529
Tetragramm​aton IHVH
dieu unique =&gt; pensée unique
Posté le 28-02-2003 à 19:34:44  profilanswer
 

ghiby a écrit :


C'est ma fonction qui charge un fichier x, ou est ce que je peux récuperer ma matrice de mon objet ?


 
Quelle "matrice de ton objet" ?  :heink:


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°320531
ghiby
Posté le 28-02-2003 à 19:45:44  profilanswer
 

Je souhaite faire une translation sur un objet issue de ma classe, j'ai une fonction draw, load, il me faut faire move maintenant ! Ma phrase n'est pas trés rigoureuse je te l'accorde, mais mon but est de translater une instance de ma classe CMeshes, tu me proposes d'effectuer une translation sur "maMatrice" mais je ne sais pas quel matrice utiliser.
 
la fonction HRESULT D3DXLoadMeshFromX(
  LPSTR pFilename,
  DWORD Options,
  LPDIRECT3DDEVICE8 pDevice,
  LPD3DXBUFFER* ppAdjacency,
  LPD3DXBUFFER* ppMaterials,
  PDWORD pNumMaterials,
  LPD3DXMESH* ppMesh
);
 
stock les coordonnées de l'objet ds ppMesh si je me trompe pas, mais dois-je acceder a cette variable pour changer la position ou ya t-il une autre methode (changer ppMesh me semble pas correct non ?)

n°320532
Tetragramm​aton IHVH
dieu unique =&gt; pensée unique
Posté le 28-02-2003 à 19:50:01  profilanswer
 

Ouhla. Faudrait que tu passes un peu de temps à etudier le principe des transformations matricielles en 3D.


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°320533
ghiby
Posté le 28-02-2003 à 19:53:41  profilanswer
 

lol ok ca marche, en fait je n'ai pas de bouquin et j'ai du mal à comprendre avec les quelques aides que je trouve sur le net, tu connais des cours corrects, qui me permette d'aller plus loin qu'un carré qui tourne avec une lumiere ? ou me conseilles-tu d'acheter un bouquin ?


Message édité par ghiby le 28-02-2003 à 20:04:58
n°320540
ghiby
Posté le 28-02-2003 à 20:06:39  profilanswer
 

La 2D, en VGA d'abord, puis en directDraw ne m'a pas poser de probleme, en revanche la 3D, c'est un autre morceau :ouch:

n°320678
LeGreg
Posté le 01-03-2003 à 04:58:03  profilanswer
 

ghiby a écrit :

lol ok ca marche, en fait je n'ai pas de bouquin et j'ai du mal à comprendre avec les quelques aides que je trouve sur le net, tu connais des cours corrects, qui me permette d'aller plus loin qu'un carré qui tourne avec une lumiere ? ou me conseilles-tu d'acheter un bouquin ?


 
Lis le programming guide du sdk Direct 3D
ils expliquent le fonctionnement du pipeline
de transformations Direct3D.
 
Ce n'est pas un vrai cours mais ça couvre les bases...
 
Sinon c'est vraiment un vaste sujet
et il vaut peut-etre mieux acheter un bouquin
ou suivre un cours si tu veux y comprendre quelque chose...
 
LeGreg


---------------
voxel terrain render engine | animation mentor

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] D3D

 

Sujets relatifs
Acceleration 3D openGL/D3D[D3D] DrawIndexedPrimitive
[D3D] les points d'une primitive[D3D] J'aime bien les exemples Microsoft~
[D3D] Question sur la déclaration dex vertex shaders[D3D] Comment faire pour obtenir les coordonnées du frustum?
SDK DirectX - probleme avec D3D[D3D] Quel est l'angle que forme l'espace du frustrum sur l'axe y?
DirectX D3D ...[D3D] Théorie concernant l'optimisation
Plus de sujets relatifs à : [C++] D3D


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)