Voir la version complète : FaceIndex to FaceNormal
Bonjour à tous,
J'ai chargé un .X, grâce au picking, j'ai récupérer le Y depuis X et Z, et maintenant il faut que je récupère la normal...
J'ai juste l'index de la face, avec ça je peux récupérer les index de chacun des 3 Vertex, avec ça je peux récupérer les Vertex sous forme de Byte[], mais comment exploiter ça?
Y'a pas plutôt une fonction ou on lui passe le numéro de la face et il nous renvoi la normal de cette face?
Merci,
A bientôt :)
Dans le picking, on obtient également des données sur le barycentre, je sais pas si je peux en tirer quelque chose de ça mais bon...
Si tu as les 3 sommets alors il est très simple de calculer la normale. Si tes sommets sont v1, v2 et v3, alors la normale n vaut +/- (v2 - v1) ^ (v3 - v2).
Bah oui mais j'ai que des pointeurs sur les sommets..
En fait j'ai récupéré l'index buffer. Avec le numéro de la face, j'ai pu récupérer les index des sommets la composant. A partir de là, j'ai pu récupérer les pointeurs vers les sommets, mais c'est des pointeur du type BYTE*. Je peux connais la taille en byte d'un vertex et donc les mettres dans un tableau BYTE[][3], mais j'peux pas les utiliser comme ça aussi :s.
Je vais voire pour prendre un moteur physique ;)
Normalement tu es censé savoir de quoi sont composés tes vertices, et donc comment accéder à leur position, non ?
Bah c'est suite à un chargement de .X, alors bah je sais pas le format des vertices employé. Je peux le savoir en appelant la fonction getPVF, mais après, je vais pas faire 15 conditions "si c'est de type 1, alors ..., si c de type 2 alors ..." etc..., si?
Lenolian
27/11/2005, 12h36
Pas besoin de faire plein de conditions. Si tu as le FVF tu peut facilement obetnir la taille du vertex ( avec D3DXFVFVertexSize ) et comme la position est toujours au début tu n'as pas besoin de savoir ce qui est après.
Ha ok d'accord, j'ai pigé.
Merci :)
vBulletin® v.3.6.5, Copyright ©2000-2009, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org