Je n'ai pas prévu SetMeshData() pour créer un mesh de zéro mais plutôt pour modifier un mesh existant.
Pour créer un mesh de zéro il faut utiliser les fonctions existantes : commande CreateMesh() suivie des commandes MeshVertexPosition(), etc.
Concernant l'index des faces , il dépend du choix que tu as fait pour définir ton mesh.
#PB_Mesh_TriangleList : the mesh will be composed of a list of triangles (default).
#PB_Mesh_TriangleStrip: the mesh will be composed of a list of connected triangles (vertices are shared).
#PB_Mesh_TriangleFan : the mesh will be composed of a list of triangles sharing the same central vertex point.
#PB_Mesh_PointList : the mesh will be composed of a list of points.
#PB_Mesh_LineList : the mesh will be composed of a list of lines.
#PB_Mesh_LineStrip : the mesh will be composed of a list of connected lines (vertices are shared).
Si je prends le cas le plus classique avec #PB_Mesh_TriangleList la constitution d'un triangle est définie par la succession de 3 index.
Avec ces index tu peux récupérer les datas des vertices qui constituent ton triangle.
Exemple
Code : Tout sélectionner
;Récupère les datas du Mesh
GetMeshData(Mesh, 0, MeshData(), #PB_Mesh_Vertex, 0, MeshVertexCount(Mesh, 0)-1)
GetMeshData(Mesh, 0, MeshIndexData(), #PB_Mesh_Face, 0, MeshIndexCount(Mesh, 0)-1)
si tu veux connaitre les vertices qui constituent le triangle No=3
Code : Tout sélectionner
No=3
V1 = MeshIndexData(No*3)\Index ; Je multiplie par 3 car ce sont des triangles, si le mesh est constitué de lignes il faut multiplier par 2, etc
V2 = MeshIndexData(No*3+1)\Index
V3 = MeshIndexData(No*3+2)\Index
Et ensuite tu peux lire ces vertices