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

Anonymous

unregistriert

11

10.08.2003, 20:09

@David,,,

ich habe hier auch festgestellt das die english version immer besser und außerdem mehr vertreten ist, klar die meisten Entwickl/ungen /er sind international. *g*

12

11.08.2003, 03:01

Wenn du mit dem Gedanken spielst dir ein eigenes Dateiformat auf zu bauen, dann bau es auf Chunks auf. Damit wird dein Format viel Flexibler und du kannst dir einen einheitlichen File loader schreiben, der gleich alle Dateiformat, die du erstellst, lesen kann.
Ich hab das bei meiner Engine auch so gemacht. Und jetzt kann ich z.B. Texturen im Modellformat speichern ohne das es den Modell Loader stört. Des weiteren sind gleich viele Prüfungen möglich ob das File nett Defekt ist.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

13

11.08.2003, 10:03

Cool, kannst du mir den code mal zuschicken. Ich würd mir das gerne mal ansehen, vielleicht find ich da ja noch ein paar anregungen. :)
In a world without fences and walls - who needs windows and gates ?

http://www.Paid4Mailer.de/?refid=8422

Anonymous

unregistriert

14

11.08.2003, 10:03

DragonMaster

Prima Bild ;-) und richtig furchteinflößend...
Musste sogar a bissle lachen. :-)

15

11.08.2003, 16:03

Klar kann ich machen, ich brauch dann aber deine eMail Adresse.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Marius

Treue Seele

  • »Marius« ist der Autor dieses Themas

Beiträge: 91

Wohnort: Küssaberg-Rheinheim

Beruf: Schüler

  • Private Nachricht senden

16

11.08.2003, 22:50

@DragonMaster
Kannst Du mir vielleicht sagen, wie Du dein Format aufgebaut hast.
Ich hab im Moment noch kein Plan, wie ich mein Format aufbaue.

17

12.08.2003, 05:30

Es ist ja auch meine Allgemeine File Loader Klasse. Der Grundstock meiner Formate besteht aus Chunk's. Die Klasse ließt die Chunk's aus und speichert sie in einem Baum Diagram. D.h. das jeder Chunk ein oder mehrere Child Chunk's enthalten kann.

Das gane sieht dann so aus:

Quellcode

1
2
3
4
Root Chunk (Umklammert die gesamte Datei)
  - Chunk 1 Level
      - Chunk 2 Level
  - Chunk 1 Level

Jeder Chunk hat einen Chunk Header und einen Chunk Datenbereich. Die Datenposition und dessen größe stehen Natürlich im Chunk Header. Ein Child Chunk wird immer im Datenbereich des Parent Chunk gespeichert.

Soviel zum Aufbau. Das schön an dieser Datenspeicherung ist, das es kein Format mehr gibt. Die Daten werden in Chunk's gekapselt. Man muss nur eine Hirarchie aufbauen. Man bildet ein Modell Chunk und dessen Child Chunk's speichern dann die ganzen Informationen (Vertice, Faces, Animation, usw).

Im Code sieht das dann so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
r3d::File modell;
modell.Open("charackter.dat");
r3d::Chunk* pCommander = modell.FindChunk("Commander", r3d::File::FC_MODELL);

// Modell Header laden
r3d::ModellHeader header;
pCommander->FindChunk("Header")->ReadChunkData((BYTE*)&header);

// Vertice laden
r3d::Vertex* pvVertice = new r3d::Vertex[header.vertex_count];
pCommander->FindChunk("Vertice")->ReadChunkData((BYTE*)&pvVertice);

// usw.
Das Beispiel ist jetzt so ausgelegt das man mehrere Modelle in einer Datei speichern kann.

Die File Klasse macht alles für mich. Ich brauch jetzt nicht mehr darauf zu Achten wo ich mich im File befinde. Auch brauch ich keinen Spezielle Modell File Loader Klasse mehr schreiben. Ich lasse einfach den Chunk suchen den ich brauch. Eine fertige Modell Hirarchie habe ich selber auch noch nicht. Aber hier mal ein einfacher ansatz, mit einfacher Key Frame Animation:

Quellcode

1
2
3
4
5
6
7
8
9
-Root Chunk
  - Modell Chunk
    - Header Chunk
    - Animation Chunk
      - Key 1 Chunk (Enthält die Vertice)
      - Key 2 Chunk
      - ...
    - Face Chunk (Enthält die Faces
    - Material Chunk (Enthält die Materialliste)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Marius

Treue Seele

  • »Marius« ist der Autor dieses Themas

Beiträge: 91

Wohnort: Küssaberg-Rheinheim

Beruf: Schüler

  • Private Nachricht senden

18

12.08.2003, 21:05

Eine abschliessende Frage noch: Wie könnte man die Dreiecke und die Vertizes speichern? Ginge es wenn man einen Vertex- und einen Index-Buffer serialisiert?

19

21.08.2003, 13:12

hre eine Möglichkeit. Ist bestimmt, in manchen Situationen sehr Praktisch.

Aber einfacher währe es noch wenn man einfach zwei Listen speichert. Einmal die Faces, also die Indices. Sind ja nur Nummern (DWORD oder WORD). Und die zweite Liste sind dann einfach die Vertice, aber jeder Vertex nur einmal!
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige