Bonjour à tous,
je fais appel à vous car j'ai plusieurs problêmes avec DX que je ne sais pas résoudre (je débute en DirectX et je suis un peu perdu dans la doc).
Je vous explique en quelques mots les fonctionnalités de mon programme:
Il permet de charger une image, d'y ajouter dessus des points (en forme de croix et de cercle) et de pouvoir par la suite selectionner les points pour les déplacer (le picking).
Tout ça c'est beau, mais quand ça marche, c'est mieux!!!!
Voici mes différents problèmes:
- Lorsque je veux ajouter des points en forme de croix, je crée 2 lignes de type LPD3DXLINE représentant une croix. Le problèmes est que plus j'ajoute de points et plus l'affichage est long et saccadé jusqu'au moment ou le programme plante (aprés l'ajout d'une vingtaine de points). Je ne sais pas du tout d'où ça vient. Voici le code de création des croix :
-Mon autre problême est de faire le picking, je ne sais pas comment faire pour récupéré mes croix. J'ai vu sur plusieurs site qu'il fallait utilisé les Mesh.
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 // si la ligne n'existe pas, on la crée if(!lineMem) D3DXCreateLine(device, &lineMem); D3DXVECTOR3 line1[2]; //tableaux contenant les coordonnées de début et fin des lignes D3DXVECTOR3 line2[2]; lineMem->SetWidth(1.01f); // pb d'affichage quand width=1.0 line1[0]=D3DXVECTOR3(xyzMem.x+VERTEX_OFFSET, xyzMem.y+VERTEX_OFFSET, xyzMem.z + VERTEX_OFFSET); line1[1]=D3DXVECTOR3(xyzMem.x-VERTEX_OFFSET, xyzMem.y-VERTEX_OFFSET, xyzMem.z + VERTEX_OFFSET); line2[0]=D3DXVECTOR3(xyzMem.x-VERTEX_OFFSET, xyzMem.y+VERTEX_OFFSET, xyzMem.z + VERTEX_OFFSET); line2[1]=D3DXVECTOR3(xyzMem.x+VERTEX_OFFSET, xyzMem.y-VERTEX_OFFSET, xyzMem.z + VERTEX_OFFSET); lineMem->Begin(); lineMem->DrawTransform(line1, 2, &matTransform, color); lineMem->DrawTransform(line2, 2, &matTransform, color); lineMem->End();
Est-il possible de créé un mesh uniquement composé de 2 lignes? Que me conseillez vous?
Merci beaucoup pour votre aide.
Partager