Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Patrick Egli

Treue Seele

  • »Patrick Egli« ist der Autor dieses Themas

Beiträge: 161

Wohnort: Rainstrasse 38

  • Private Nachricht senden

21

05.02.2011, 01:52

Ich muss allerdings weiterhinten in der Datei schauen, denn ich habe bevor noch alle Vertexdaten, posx, posy, posz, normalx, normaly, normalz, tu, tv. Die Anzahl der Vertices stimmt beim ersten Mesh, da ist sie 3624. Doch beim zweiten Mesh, beim nächsten Durchlauf der for-Schleife, stimmt die Vertexanzahl nicht mehr. Sie sollte eigentlich 378 sein. Der Vector wird definitiv richtig befüllt. Er hat 23 Daten drin, der [0] ist 3624, der [1] ist 378, der [2] ist 24, der [3] ist 204, der [4] ist 48 usw.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

22

05.02.2011, 01:55

Nun gut, dann müsste aber auch beim Lesen der Datei für den ersten Durchlauf alles stimmen!? Nochmal die Frage: Hast du die Datei sowohl beim Lesen als auch beim Schreiben als ios::binary geöffnet? Wenn auf einmal die Werte nichtmehr stimmen ist das eigentlich das typische Symptom dafür dass die Datei an einer Stelle Textmodus geöffnet ist und nicht im Binärmodus...

Patrick Egli

Treue Seele

  • »Patrick Egli« ist der Autor dieses Themas

Beiträge: 161

Wohnort: Rainstrasse 38

  • Private Nachricht senden

23

05.02.2011, 01:56

Ja, das habe ich.

Konverter:

C-/C++-Quelltext

1
m_File.open(NewFilename, ios::out | ios::binary);


Loader:

C-/C++-Quelltext

1
m_File.open(Filename, ios::in | ios::binary);

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

24

05.02.2011, 01:58

Hm ok, sehr komisch...

Patrick Egli

Treue Seele

  • »Patrick Egli« ist der Autor dieses Themas

Beiträge: 161

Wohnort: Rainstrasse 38

  • Private Nachricht senden

25

05.02.2011, 02:01

Ja finde ich auch, aber komisch finde ich auch, das die Anzahl der Vertices schon bereits an Position 140 geschrieben wird. Ich habe allerdings 8 Vertexdaten pro Vertex und das erste Mesh hat bereits 3624 Vertices. Also 4 * 8 * 3624 Bytes, dann sollte doch die Position der Anzahl der Vertices des zweiten Meshes erst später geschrieben werden, oder nicht?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

26

05.02.2011, 02:12

Ja sollte. Nur wo überprüfst du das? Wenn du im Loader ein tellg() machst dann sagt dir das ja nur dass der Loader versucht die Anzahl an Stelle 140 zu lesen, nicht dass sie auch wirklich dort geschrieben wurde. Wurde überhaupt alles in die Datei geschrieben (wie groß ist die Datei)!?

Patrick Egli

Treue Seele

  • »Patrick Egli« ist der Autor dieses Themas

Beiträge: 161

Wohnort: Rainstrasse 38

  • Private Nachricht senden

27

05.02.2011, 02:20

Ja stimmt, die Datei ist 374 KB gross.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

28

05.02.2011, 02:26

Ok, dann solltest du mal Debuggen warum der Loader versucht schon an Stelle 140 wieder eine Vertexanzahl zu lesen...

Patrick Egli

Treue Seele

  • »Patrick Egli« ist der Autor dieses Themas

Beiträge: 161

Wohnort: Rainstrasse 38

  • Private Nachricht senden

29

05.02.2011, 02:42

So jetzt bin ich die ganze for-Schleife durchgegangen und die Position des Readers ist bei 115967. Die Vertices Anzahl stimmt jetzt auch, sie ist jetzt 378. Und das Model wird ebenfalls gerendert, es funktioniert jetzt. Danke für deine Hilfe.

LG Patrick

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

30

05.02.2011, 02:45

Nachdem nun alles funktioniert vielleicht noch ein Tip: Anstatt jedem Submesh des Modells einen eigenen VertexBuffer zu geben würde ich für das ganze Model einen großen VertexBuffer verwenden. Noch effizienter wäre es überhaupt Indices zu verwenden. Dann hättest du einen großen VertexBuffer für das ganze Model und jedem Mesh würde ein Bereich im IndexBuffer entsprechen.

Werbeanzeige