Accueil > Forum > > > > Création d'un Mesh sous Directx
Création d'un Mesh sous Directx
jeudi 30 mars 2006 à 23:04:51 |
Création d'un Mesh sous Directx

Itsuki2
|
Bonjour, Je cherche à créer un Mesh et non pas à en charger un à partir d'un .x Comme j'ai un peu de mal avec l'anglais, et que la doc fourni dans le SDK est en anglais.... J'ai mon vertex buffer et mon index buffer et l'Attribute Table J'ai initialisé une Mesh avec 'D3DXCreateMeshFVF'. Je rempli la Mesh avec le VB, et l'IB. Je passe par 'SetAttributeTable' pour l'attribute table et ... rien Mon DrawSubset(0) n'affiche rien. J'ai cru comprendre qu'il faut passer par Optimize pour créer l'Attribute Buffer... Si quelqu'un connait la solution... Ci dessous mon pitoyable code: Mesh->LockVertexBuffer(0, &VerticesTmp); memcpy(VerticesTmp, Vertex.Vertices, sizeof(Vertex.Vertices)); Mesh->UnlockVertexBuffer(); Mesh->LockIndexBuffer(0, &VerticesTmp); memcpy(VerticesTmp, Index.Vertices, sizeof(Vertex.Vertices)); Mesh->UnlockVertexBuffer(); D3DXATTRIBUTERANGE AttributeTable; //J'initialise l'Attribute Table etc ... Et puis Mesh->SetAttributeTable(&AttributeTable, 1);
|
|
lundi 3 avril 2006 à 11:45:07 |
Re : Création d'un Mesh sous Directx

cali70
|
C'est normal, la fonction DrawSubset ne fonctionne qu'avec les objets Mesh implémentés par DirectX chargé depuis un fichier x ou non... Dans ton cas tu dois utiliser une fonction de type DrawPrimitive car j'imagine que tu as crée toi même ton type de Mesh.
|
|
mardi 4 avril 2006 à 23:50:36 |
Re : Création d'un Mesh sous Directx

Itsuki2
|
Re, Merci d'avoir répondu si rapidement, En fait, afficher la mesh, c'était pour savoir si j'avais bien initialisé la mesh à partir du vertex et index buffer.
J'ai besoin de créer un Mesh car D3DXIntersect/D3DXIntersectSub prend en parametre un LPD3DXMESH. (Apres tu me dira, il existe aussi D3DXIntersectTri ..., mais là je vais pas m'amuser à passer tout les triangles à cette fonction.) En gros, c'est pour me faire un petit "Bounding Mesh".
A noter que DX10 ne propose plus que 'D3DXIntersectTri ', D3DXIntersect est passé aux oubliettes.
Plus têtu que moi y'a pas, mais c'est comme ca que j'avance. Je continue à chercher dans mon coin mais si quelqu'un sait comment faire...
|
|
mercredi 5 avril 2006 à 14:19:12 |
Re : Création d'un Mesh sous Directx

cali70
|
Ta manipulation des vertex et index buffer ne me semble pas tout à fait correct... pour mieux t'éclairer voici un exemple de code :
// format de sommets
typedef struct { D3DVECTOR Pts; } VERTEX;
// tableau de sommets et dindices à recopier dans les buffers
D3DVECTOR P0={-.3f,-.3f,-.3f}, P1={0.f,1.f,0.f}, P2={1.f,0.f,0.f}, P3={0.f,0.f,1.f};
VERTEX vbuf[ 4] = { {P0}, {P1}, {P2}, {P3} };
USHORT ibuf[ 4*3] = {0,1,2, 0,3,1, 0,2,3, 1,3,2};
// création du mesh
LPD3DXMESH pMSH;
D3DXCreateMeshFVF( 4, 4, D3DXMESH_MANAGED, D3DFVF_XYZ, pDEV, pMSH);
void *p;
// remplissage du vertex buffer
pMSH->LockVertexBuffer(0, (void**)&p);
memcpy(p,(void *)vbuf, 4*sizeof(VERTEX) );
pMSH->UnlockVertexBuffer();
// remplissage du index buffer
pMSH->LockIndexBuffer(0, (void**)&p);
memcpy(p,(void *)ibuf, 4*3*sizeof(USHORT) );
pMSH->UnlockIndexBuffer();
// remplissage du attribute buffer
pMSH->LockAttributeBuffer(0, (DWORD **)&p);
memset(p,0, 4*sizeof(DWORD)); // on met toutes les valeurs à 0
pMSH->UnlockAttributeBuffer();
|
|
mercredi 5 avril 2006 à 18:48:17 |
Re : Création d'un Mesh sous Directx

Itsuki2
|
Encore merci, Là comme j'ai installé DX10 sdk et que j'ai pas Windows vista mais 2000 Pro... mon SDK ne marche pas du tout lol. Pas pu programmer de la semaine  Si je regarde ton exemple, tu proposerai de faire un ZeroMemory sur l'attribute Buffer ? Je testerai :) Quant à mon bout de code... ce sont des classes que j'ai initialisé auparavant. Donc c'est normal que ca te semble bizarre étant donné que tu avais pas tout les elements template <class TYPE_BUFFER, class STRUCT_FVF> class PRIMITIVE_BUFFER // IDirect3DVertexBuffer9, IDirect3DIndexBuffer9 { public: void Init_Vertex_Buffer(IDirect3DDevice9* , DWORD La_FVF, int Taille_Du_Vertex_Buffer); void Fill_Vertex_Buffer(void); void Draw_Vertex_Buffer(IDirect3DDevice9 *Device9, D3DPRIMITIVETYPE Style, int Nb_Vertex, IDirect3DIndexBuffer9 *Index_Buffer, int Nb_Triangle); void Init_Index_Buffer(IDirect3DDevice9 *Device9, int Nb_Vertex); void Release(void); STRUCT_FVF *Vertices; // est initialisé avec Init_Vertex_Buffer etc ... int Size; DWORD FVF; TYPE_BUFFER *Primitive_Buffer; PRIMITIVE_BUFFER<TYPE_BUFFER, STRUCT_FVF>() { Vertices = NULL; Size = 0; FVF = NULL; } }; Par contre je viens de voir qu'il y a des problèmes dans mon code ...hum... memcpy(VerticesTmp, Index.Vertices, sizeof(Index.Vertices)); Ca m'énerve, de pas pouvoir le tester !!!  Je posterai dés que j'aurai réinstaller DX9. Encore Merci cali70 :) Si tu as des souci, j'espère pouvoir te venir en aide aussi
|
|
lundi 31 juillet 2006 à 23:19:59 |
Re : Création d'un Mesh sous Directx
|
Cette discussion est classée dans : mesh, attribute, vertex, verticestmp, vertices
Répondre à ce message
Sujets en rapport avec ce message
initialiser les vertex dans une boucle for [ par StrikerFred ]
salut a tousj'avance a petits pas dans la création d'un jeu 3d.je voulais faire un grand sol de plein de petits carré. Pour ca, (même technique que po
ASSERT ? [ par tsanti ]
Dans InitDeviceObjectJe vérouille 1 fois le Vertex Buffer, je récupère la hauteur du Mesh,je dévérouille.Ensuite je traite les informations de hauteur
Mesh: mise à l'echelle [ par THEwarrior333 ]
Salut a tous Voila j'arrive à afficher des meshs et a les animer mais je souhaiterais les mettre à l'echelle car certains meshes .x sont super grand
display list [ par manolobis ]
Bonjour à tous (et toutes),Voilà, j'ai une question d'ordre général concernant les Display List en OpenGL.Je suis en train de développer un (petit) mo
problemme de mesh sous direct3d [ par glog ]
j'ai un peiti problèmme , je suis entrain de programmer un truc sous direct3d qui affiche plein de meshs a l'écran , pour ce faire , j'utilise une bou
__attribute__ ((__packed__)) [ par Totoc ]
__attribute__ ((__packed__)) Je voudrais savoir si il y a un equivalent sous visual c++.
Le ciel, le soleil et les nuages sous directx 9 [ par xvilain ]
Salut tout le monde,Je programme actuellement un jeu de voiture (type GTA) en 3D sous directx 9 et j'essaye de gérer le ciel :Pour l'instant je créé u
Test Vertex_Processing [ par LaPatoshe ]
Comment effectuer un test de device avec Direct3D9 pour savoir quel type de 'VertexProcessing' est supporté que ce soit en mode D3DDEVTYPE_HAL ou REF
opengl et les vertex array [ par khayyam ]
salut, je cherche à améliorer des petites appli opengl et j'essaie d'utiliser des vertex array (pour les précompiler) mais je ne m'en sors pas trop.su
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|