Page 1 sur 1
3D - SetMeshData
Publié : jeu. 12/oct./2006 10:19
par Progi1984
Actuellement, on peut utiliser une mémoire, un tableau, ou des datas pour les données à insérer dans le mesh.
Ma suggestion : gérer les listes chaînées.
Publié : jeu. 12/oct./2006 11:01
par comtois
ce n'est pas possible, les index que tu indiques pour les triangles sont des index sur un tableau de vertices, comment veux-tu t'indexer sur une liste chainée ?
Publié : jeu. 12/oct./2006 11:36
par Progi1984
Et le ListIndex() ?
Publié : jeu. 12/oct./2006 11:39
par Anonyme
donc , si j'ai pigé, cela n'est pas possible ?
Code : Tout sélectionner
Structure VECTOR3
x.f:y.f:z.f
EndStructure
NewList Vertice.VECTOR3()
SetMeshData(0,#PB_Mesh_Vertex, @Vertice(),SizeOf(VECTOR3)*Nbr_Vertices)
Publié : jeu. 12/oct./2006 12:22
par comtois
Cpl.Bator a écrit :donc , si j'ai pigé, cela n'est pas possible ?
Code : Tout sélectionner
Structure VECTOR3
x.f:y.f:z.f
EndStructure
NewList Vertice.VECTOR3()
SetMeshData(0,#PB_Mesh_Vertex, @Vertice(),SizeOf(VECTOR3)*Nbr_Vertices)
Exactement.
Déjà ça ne sert à rien de multiplier par SizeOf(VECTOR3), puisque #PB_Mesh_Vertex permet déjà de dire qu'il faudra 3 floats par vertex.
Et il faut voir SetMeshData() comme un CopyMemory() pour lequel tu indiques l'adresse de début et la longueur à copier (nombre de vertices)
Tu comprendras qu'une liste chainée ne se prête pas à ce genre de manoeuvre.
Publié : jeu. 12/oct./2006 15:14
par Guimauve
Rien ne vous empeche de travailler par copie. J'explique, si vous ne savez pas combien de vertex il va y avoir à l'avanve et placer les dans une liste chainé et dès que la création de la mesh est finie vous faîtes un truc du genre :
Code : Tout sélectionner
Dim Vertex(CountList(ListeChainee()))
ForEach ListeChainee()
ListeChainee()\x = Vertex(Index)\x
ListeChainee()\y = Vertex(Index)\y
ListeChainee()\z = Vertex(Index)\z
Index + 1
Next
C'est sur que ce n'est pas le plus rapide, mais c'est qui a de plus efficace.
A+
Guimauve