Показать сообщение отдельно
Старый 11.12.2010, 01:47   #6
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Координаты вертексов при програмном копировании меша

;-------------------------------------------------	
 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
Тут добавление к уже созданному мешу так что разбирайся

создай меш и убери смещения при добавлении вертекс и трианглов
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
CRASHER (11.12.2010)