j'ai vu que tu avais mis un rotateEntity() dans ta boucle
le rotate est absolu, il faut faire varier l'angle
Code : Tout sélectionner
a + 1
RotateEntity(1, a, 0, 0)
Code : Tout sélectionner
a + 1
RotateEntity(1, a, 0, 0)
Code : Tout sélectionner
Structure MESH
Vertice_Memory.l
Face_Memory.l
UV_Memory.l
EndStructure
Une seule zone mémoire suffit par B3D ((Nombre de Vertice * 3) * Nbr_frame)- Question 1 :
Par contre, le problème est qu'un B3D peut contenir plusieurs meshs. Comment pourrais je gérer ca dans mon loader ?
Pas évident mon code ? Pourquoi ? Que veux tu que je t'explique ?Cpl.Bator a écrit :Pas evident ton code![]()
Sinon , si c'est comme dans max, tu dois avoir des mesh différent des uns des autres.
Donc, a chaque fois tu as fini de parser un mesh dans ton fichier, tu appelle SetMeshData() en lui passant le tableau des vertices, et tu remet tout à 0, et tu recommence, j'usqu'a qu'il n' y a plus de mesh dans le fichier.
Car là, ton problème est que tu appelle qu'une seule fois setmeshdata().
Mesh A
{
Vertex 0 100,100,100
Vertex 1 -100,0,100
Vertex 2 100,100,0
Vertex 3 0,100,100
FACE 0 0,1,2,3
FACE 1 1,0,3,2
}
Mesh B
{
Vertex 0 200,200,200
Vertex 1 -200,0,200
Vertex 2 200,200,0
Vertex 3 0,200,200
FACE 0 0,1,2,3
FACE 1 1,0,3,2
}
C'est chiant ca, moi aussi j'ai eu ce genre de problème , verifie bien qu'il n'y a pas de décalage lors du comptage de vertices et de faces, je ne sais pas si tu peut savoir d'avance combien le mesh aura de face, peut être dans l'entête du fichier, Compare les valeurs, si tu as un décalage entre ta valeur et celle donnée par le fichier, alors il y a un problème dans le parsing du fichier.Donc grace aux derniers conseils de Cpl Bator : j'ai réussi à charger le flingue : mais je buggue sur un autre fichier B3D qui devrait pourtant bien se charger.