Bon, je viens de faire de nouveau une mise à jour des sources et du package PB.
Le petit code que tu donne ci-dessus ne fonctionne pas je pense.
Voici d'une manière simple ce que j'écrirais:
Code : Tout sélectionner
Count = iMeshBufferPolyCount(*geo)
*TriangleBuffer.w
*TriangleBuffer = iMeshBufferIndicesBuffer(*geo)
; première face:
Debug PeekW(*TriangleBuffer)
Debug PeekW(*TriangleBuffer+2)
Debug PeekW(*TriangleBuffer+4)
Sinon, avec les ajouts de la dernière mise à jour, on peux écrire:
Code : Tout sélectionner
*meshbuf.IMeshBuffer = iMeshGeometry(*cube)
; récupère le nombre de triangles
num.l = iMeshBufferPolyCount.l(*meshbuf)
Global v0.l, v1.l, v2.l
Global vert.VECTOR3
; parcour tous les triangles
For i = 0 To num-1
iMeshBufferFace(*meshbuf, i, @v0, @v1, @v2)
; les 3 vertices de la face
Debug v0
Debug v1
Debug v2
; récupère chaqu'un des 3 vertex
iMeshBufferVertex(*meshbuf, @vert, v0)
vv0$ = StrF(vert\x)+" "+StrF(vert\y)+" "+StrF(vert\z)
iMeshBufferVertex(*meshbuf, @vert, v1)
vv1$ = StrF(vert\x)+" "+StrF(vert\y)+" "+StrF(vert\z)
iMeshBufferVertex(*meshbuf, @vert, v2)
vv2$ = StrF(vert\x)+" "+StrF(vert\y)+" "+StrF(vert\z)
Debug vv0$
Debug vv1$
Debug vv2$
Next
Voilà. Faut aussi penser que Irrlicht travail en u16 pour ces indices, autrement dit du
'unsigned short' soit des données en 16 bits non signées.
