
;-------------------------------------------------
msurfs=CountSurfaces(entity)
For is=1 To msurfs
surf=GetSurface(entity,is) ; surf object
;update the virtual mesh
e\numverts[is]=CountVertices(surf) ;count vertexs surf
e\numtris[is]=CountTriangles(surf)
br=GetSurfaceBrush(surf)
layer_amtsurf=FindSurface(layer_amt,br)
If layer_amtsurf=0
layer_amtsurf=CreateSurface(layer_amt,br) ;esli net to sozdat surface
EndIf
FreeBrush br
e\layer_amtsurf[is]=layer_amtsurf ; surf new object
e\vertindex[is]=CountVertices(layer_amtsurf) ;count vertexs surface_amt
e\trisindex[is]=CountTriangles(layer_amtsurf) ;count Triangles surface_amt
l\countVert=l\countVert+e\vertindex[is]
;add data to layer_amt + virtual mesh
For i=0 To CountVertices(surf)-1
AddVertex(layer_amtsurf,VertexX(surf,i)+e\x,VertexY(surf,i)+e\y,VertexZ(surf,i)+e\z,VertexU(surf,i),VertexV(surf,i),VertexW(surf,i))
VertexNormal layer_amtsurf,i+e\vertindex[is],VertexNX(surf,i),VertexNY(surf,i),VertexNZ(surf,i)
r#=VertexRed# (surf,i)
g#=VertexGreen# (surf,i)
b#=VertexBlue# (surf,i)
VertexColor layer_amtsurf,i+e\vertindex[is],VertexRed# (surf,i),VertexGreen# (surf,i),VertexBlue# (surf,i)
Next
For it=0 To CountTriangles(surf)-1
i2=e\vertindex[is];
AddTriangle(layer_amtsurf,TriangleVertex(surf,it,0)+i2,TriangleVertex(surf,it,1)+i2,TriangleVertex(surf,it,2)+i2)
Next
Next
Тут добавление к уже созданному мешу так что разбирайся
создай меш и убери смещения при добавлении вертекс и трианглов