eigenes Format für 3d-Modelle
Übersicht

LapizBetreff: eigenes Format für 3d-Modelle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich hätte da mal ne Frage. Ich versuche gerade, für ein Projekt ein eigenes Format für selbst erstellte Modelle zu entwerfen. Hier der Code zum Abspeichern: Code: [AUSKLAPPEN] Function saveMeshLm3D(filename$,surf)
speichern=WriteFile(filename) WriteInt speichern,CountVertices(surf) WriteInt speichern,CountTriangles(surf) For v.vertex=Each vertex WriteFloat speichern,v\x WriteFloat speichern,v\y WriteFloat speichern,v\z Next For t.tri=Each tri WriteFloat speichern,t\vx1 WriteFloat speichern,t\vy1 WriteFloat speichern,t\vz1 WriteFloat speichern,t\vx2 WriteFloat speichern,t\vy2 WriteFloat speichern,t\vz2 WriteFloat speichern,t\vx3 WriteFloat speichern,t\vy3 WriteFloat speichern,t\vz3 Next CloseFile speichern End Function Hier der zum Laden: Code: [AUSKLAPPEN] Function LoadMeshLm3d(filename$,surf)
laden=ReadFile(filename$) numver=ReadInt(laden) numtri=ReadInt(laden) For i=1 To numver x#=ReadFloat(laden) y#=ReadFloat(laden) z#=ReadFloat(laden) createVertex(surf,x,y,z) Next For i=1 To numtri/2 For v.vertex=Each vertex x#=ReadFloat(laden) y#=ReadFloat(laden) z#=ReadFloat(laden) If VertexX(surf,v\ver)=x If VertexY(surf,v\ver)=y If VertexZ(surf,v\ver)=z v1=v\ver EndIf EndIf EndIf x#=ReadFloat(laden) y#=ReadFloat(laden) z#=ReadFloat(laden) If VertexX(surf,v\ver)=x If VertexY(surf,v\ver)=y If VertexZ(surf,v\ver)=z v2=v\ver EndIf EndIf EndIf x#=ReadFloat(laden) y#=ReadFloat(laden) z#=ReadFloat(laden) If VertexX(surf,v\ver)=x If VertexY(surf,v\ver)=y If VertexZ(surf,v\ver)=z v3=v\ver EndIf EndIf EndIf Next createTriangle(surf,v1,v2,v3) Next CloseFile laden End Function und zum Schluss die CreateTriangle-Funktion: Code: [AUSKLAPPEN] Function createTriangle(surf,v1,v2,v3)
t.tri=New tri t\vx1=VertexX(surf,v1) t\vy1=VertexY(surf,v1) t\vz1=VertexZ(surf,v1) t\vx2=VertexX(surf,v2) t\vy2=VertexY(surf,v2) t\vz2=VertexZ(surf,v2) t\vx3=VertexX(surf,v3) t\vy3=VertexY(surf,v3) t\vz3=VertexZ(surf,v3) t\tria=AddTriangle(surf,v1,v2,v3) t\tria2=AddTriangle(surf,v3,v2,v1) End Function So jetzt die Frage: Die Vertices zu speichern und zu laden funktioniert einwandfrei. Bei den Triangles ist es allerdings so, dass nach dem Laden nur noch komisches Gewurschtel herauskommt. Warum ist das so? Kann ich das irgendwie ändern? Wäre wirklich nett wenn ihr mir helfen könntet! |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
du solltest nicht die Vertexcoords sondern die Vertex id abspeichern. Wenn du die Vertexcoords abspeicherst könnte es durchaus zu Verwechslungen kommen. Die könnten dein Modell auch evtl sehr komisch aussehen lassen. Außerdem willst du sicherlich noch U und V koordinaten irgendwann in dein Formt aufnehmen und dann kann es ja durchaus sein dass an einer stelle 2 Vertexe sind die verschiedene Texturkoordinaten(u,v) haben. | ||
Lapiz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die schnelle Antwort ![]() Werde ich gleich ausprobieren! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group