Laden...

Vertices in Datei speichern

Letzter Beitrag vor 19 Jahren 3 Posts 1.533 Views
Vertices in Datei speichern

Hallo!
Ich habe eine kleine Terrain-Engine geschrieben (wird noch ausgebaut). Das Terrain wird mit Hilfe von Heightmaps erzeugt. Allerdings ist das berechnen der Vertices sehr viel Rechenarbeit und dauert damit beim Programmstart immer einige Sekunden. Um das schneller zu machen habe ich mir gedacht ich könnte das Berechnen der Vertices aus der Heightmap in ein eigenes kleines Programm auslagern, welches mir dann die Vertices und die Indices in einer "Terrain"-Datei speichert.

Problem: Customvertex.PositionNormalTextured implementiert nicht das ISerializable Interface und ich habe keine Ahnung wie ich daraus ein Byte-Array machen kann um die Verts direkt per FileStream zu rauszuschreiben 🙁

Vielleicht kann mir da jemand helfen.
Danke schonmal!

Bix

Du kannst doch "einfach" ne binäre Datei speichern und laden.

Pseudocode


Stream foo = new Stream ();
foo.Write (someIntValue, 0, sizeof (int));
foo.Close ();

Byte[] data = new Byte[sizeof(int)];
Stream bar = new Stream ();
bar.Read (data, 0, sizeof (int));
bar.Close ();

Hallo

Warum speicherst du die Daten nicht einfach als X-Modell? Unter MSDN findest du die Definitionen des X-Formates. Das Ganze kannst du dann als Textdatei abspeichern - dies macht die Fehlersuche erheblich einfacher. Ausserdem kannst du das Terrain dann mit der Direct3DX-Funktion Mesh.FromFile(...) laden, was ziemlich schnell vonstatten geht oder direkt mit dem MeshViewer des SDK anschauen.

Sobald du allerdings Multitexturing verwendest, funktioniert diese Lösung nur noch mit einem Trick 🙂

mfg Hitman

Es gibt Probleme, die kann man nicht lösen. Für alle anderen gibt es Visual C# .NET!