begin process at 2012 05 29 03:06:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

directx9 meshes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

directx9 meshes

dimanche 5 juin 2005 à 16:03:57 | directx9 meshes

niketou

Salut a tous.
Voila le tuto du sdk :
cela affiche un tigre avec texture,mais comment faire pour choisir la position dans un espace 3d?
Merci.

HRESULT InitGeometry()
{
    LPD3DXBUFFER pD3DXMtrlBuffer;

    // Load the mesh from the specified file
    if( FAILED( D3DXLoadMeshFromX( "Tiger.x", D3DXMESH_SYSTEMMEM,
                                   g_pd3dDevice, NULL,
                                   &pD3DXMtrlBuffer, NULL, &g_dwNumMaterials,
                                   &g_pMesh ) ) )
    {
        // If model is not in current folder, try parent folder
        if( FAILED( D3DXLoadMeshFromX( "..\\Tiger.x", D3DXMESH_SYSTEMMEM,
                                    g_pd3dDevice, NULL,
                                    &pD3DXMtrlBuffer, NULL, &g_dwNumMaterials,
                                    &g_pMesh ) ) )
        {
            MessageBox(NULL, "Could not find tiger.x", "Meshes.exe", MB_OK);
            return E_FAIL;
        }
    }

    // We need to extract the material properties and texture names from the
    // pD3DXMtrlBuffer
    D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer();
    g_pMeshMaterials = new D3DMATERIAL9[g_dwNumMaterials];
    g_pMeshTextures  = new LPDIRECT3DTEXTURE9[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;

        g_pMeshTextures[i] = NULL;
        if( d3dxMaterials[i].pTextureFilename != NULL &&
            lstrlen(d3dxMaterials[i].pTextureFilename) > 0 )
        {
            // Create the texture
            if( FAILED( D3DXCreateTextureFromFile( g_pd3dDevice,
                                                d3dxMaterials[i].pTextureFilename,
                                                &g_pMeshTextures[i] ) ) )
            {
                // If texture is not in current folder, try parent folder
                const TCHAR* strPrefix = TEXT("..\\");
                const int lenPrefix = lstrlen( strPrefix );
                TCHAR strTexture[MAX_PATH];
                lstrcpyn( strTexture, strPrefix, MAX_PATH );
                lstrcpyn( strTexture + lenPrefix, d3dxMaterials[i].pTextureFilename, MAX_PATH - lenPrefix );
                // If texture is not in current folder, try parent folder
                if( FAILED( D3DXCreateTextureFromFile( g_pd3dDevice,
                                                    strTexture,
                                                    &g_pMeshTextures[i] ) ) )
                {
                    MessageBox(NULL, "Could not find texture map", "Meshes.exe", MB_OK);
                }
            }
        }
    }

    // Done with the material buffer
    pD3DXMtrlBuffer->Release();

    return S_OK;
}

dimanche 5 juin 2005 à 16:54:23 | Re : directx9 meshes

mezaya

la position se gere avec la matrice de transformation : il suffit d'appliquer des translation rotation... pour faire bouger l'objet car ton tigre est surement centrée en (0,0,0)

D3DXMATRIX Matrice;
pDevice -> SetTransform( D3DTS_WORLD , &Matrice );

Voili,Voilou
dimanche 5 juin 2005 à 17:26:00 | Re : directx9 meshes

niketou

Excuse tu ne peux pas me file le code stp,j'y arrive pas :(
dimanche 5 juin 2005 à 17:50:35 | Re : directx9 meshes

mezaya

Réponse acceptée !
j'ai pas de code mais par exemple si tu veut mettre donc tigre sur la position (0,0,10) donc 10 en Z. tu initialise la camera comme d'habitude et tu ajoute une translation de 10 en Z :

    D3DXMATRIX matProj,matView,matWorld;

// initialise projection
    D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/3.0f, 640.f/480.f, 0.1f, 100.0f );
    pDevice->SetTransform( D3DTS_PROJECTION, &matProj );

// initialise camera
    D3DXVECTOR3 Veye(0.f,0.f,-3.0f), Vat(0.0f,0.0f,0.0f), Vup(0.0f,1.0f,0.0f);
    D3DXMatrixLookAtLH( &matView, &Veye, &Vat, &Vup );
    pDevice->SetTransform( D3DTS_VIEW, &matView );

// initialise position objet
   D3DXMatrixTranslation(  &matWorld ,  0 , 0 , 10 );
pDevice -> SetTransform( D3DTS_WORLD , &matWorld );


Voili,Voilou


Cette discussion est classée dans : not, texture, folder, pd3dxmtrlbuffer, d3dxmaterials


Répondre à ce message

Sujets en rapport avec ce message

ouverture de fichier de texture en .BMP [ par steph76 ] voila je developement en ce moment mon moteur3d pour 1 jeux.Le probleme c'est la fonction d'ouverture de fichier.BMP. Elle fonctionne trés bien sur la texture et device context [ par flagadajones ] bonjour,Comment creer un objet texture directx a partir de l'image recuperé du device context d'une fenetre windowsmerci Visible or not [ par langedechu ] Y a t il un moyen de savoir si un utilisateur vois ou pas notre fenetre :par ex: si la fenetre est en minimize il la vois pas ou si la fenetre est rec erreur en opengl :( [ par intello2001 ] c:\documents and settings\administrator\mes documents\ogl3\ogl3\untitled1.o(.text+0x71f):untitled1.cpp: undefined reference to `auxDIBImageLoadA@4'c s AIDEZ MOI scp problème de texture bmp avec glaux [ par progundeath ] aidez moi svp g un big problème que j'arrive pas à résoudre mais bon je ne suis qu'un newbie d'autres le résoluront en 10 secondes enfin j'espère donc [8007000E] Not enough storage is available to complete this operation. [ par mserieyx ] Bonjour,Je développe un programme en Cplusplus faisant appel à ADO pour effectuer des requêtes sur une database.Depuis quelques temps l'exécution des Probleme OpenGL (sphere et texture) [ par positivedreamer ] Salut,lorsque je cree une sphere texturée (avec gluSphere) la texture apparait tres bizarrement (c'est a dire tassee, ecrasee au 2 poles)Le code pour texture opengl [ par lapal ] salutje dois texturer une partie d' un fond marin(celui-ci etant affiche avec pleins de petits triangles). je n'arrive pas a texturer seulement une p problème de texture opengl [ par kidpigeyre ] J'ai beau regardé je ne trouve pourquoi l'affichage de ma texture ne marche pas, Pouvez-vous m'aider?J'ai commenté au max mon projet pour qu'il soit c Texture en C [ par Stepharcher ] BonjourJ'aurais besoin de savoir faire des textures en C en utilisant que gl.h et glu.h . Si vous connaissez un site à cet effet ou une source, ce ser


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,139 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales