Je suis en train de lire des modèles 3D qui ont été créés pour une application DirectX, qui sont définis de la manière suivante:Position des champs (position, normale, etc.) dans un sommet D3D9
- Dans le En-tête de fichier, le format de Vertex Flexible (FVF) du maillage est donné (en fait, j'ai des combinaisons de D3DFVF_ {XYZ, DIFFUSE, NORMAL, TEX1, TEX2} dans les mailles que j'ai testées)
- Ensuite,
n
sommets sont donnés dans un modèle linéaire, avec les champs présents selon le FVF.
Cependant, je ne connais pas l'ordre de ces champs. La logique serait qu'elle soit définie quelque part dans la documentation DirectX, mais je n'ai pas pu la trouver. Par exemple, laquelle de ces deux structures est correcte avec FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_NORMAL
(syntaxe C, mais ce problème s'applique à toutes les langues)?
// This one ?
struct vertex1
{
D3DVERTEX pos;
DWORD color;
D3DVERTEX normal;
};
// Or this one ?
struct vertex2
{
D3DVERTEX pos;
D3DVERTEX normal;
DWORD color;
};
Je voudrais une réponse générale à cette question avec tous les champs possibles (par exemple, XYZ before DIFFUSE before NORMAL before TEX1 before TEX2
). Un pointeur vers la bonne page de la documentation serait bien aussi car je n'ai pas pu le trouver :).
Le premier lien ne définit pas vraiment l'ordre des champs dans la structure (déjà lu avant de poser la question). Cependant, le deuxième lien semble assez complet, merci beaucoup! –