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

1

24.11.2003, 10:06

Fragen zu BoneAnimationen

Momentan baue ich eine von tbModel abgeleitete Klasse BonesModel, die Milkshape-Dateien einliest. Ich frage mich aber dabei, ob ich damit durchkomme?

Ist es nicht evtl. besser gar nicht auf tbModel aufzusetzen und eine eigene Klasse zu machen, die mehr auf die Milkshape-Struktur aufsetzt. In Milkshape gibt es z.B. Groups, die es in Davids tbModel nicht gibt. Alles mit Bones muss sowieso neu gebaut werden.
Wer hat hier schon Erfahrungen und kann mich beraten?

Aktuelle Fragen: Ein Vertex in Milkshape hat z.B. eine BoneID. Wo bringe ich die im VertexBuffer unter? Z.B. in einem anderen Feld des FVF? Oder muss ich dafür eine eigene Struktur bauen?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

24.11.2003, 14:11

Ich würde es ganz von Grund auf neu aufbauen. Es gibt in der Tat ein FVF-Flag für "Bone-IDs", dann kann die Transformation von der Hardware übernommen werden, auch mit mehreren Bones pro Vertex...

Demnächst wird es zu dem ganzen Thema von meiner Seite aus was geben:
http://www.scherfgen-software.net/forum/viewtopic.php?t=1165

3

24.11.2003, 16:35

@David
Wenn ich mir das EMM-Format so anschaue, ist das Milkshape-Format bez. der darin enthaltenen Informationen eine Untermenge dessen.

Für mich stellt sich daher die Frage, ob Dein Loader dann in eine Klasse lädt, die die in dem PDF-File genannten Strukturen, Vertex- und Index-Buffer usw. enthält und natürlich eine Render-Methode für die Objekte. Diese Klasse müsste zum Rest Deiner Engine passen. Dann müsste ich "nur noch" einen Milkshape-Loader für diese Klasse bauen. Ist meine Argumentation so korrekt?

Wann wird es denn voraussichtlich den Source-Code für Deinen Loader und vorallem für die Klassen, in die geladen wird, geben?
Was bez. der Animationen würde denn die Hardware übernehmen, falls sie es denn unterstützt?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

24.11.2003, 17:35

Zitat von »"DreiDe"«

Für mich stellt sich daher die Frage, ob Dein Loader dann in eine Klasse lädt, die die in dem PDF-File genannten Strukturen, Vertex- und Index-Buffer usw. enthält und natürlich eine Render-Methode für die Objekte. Diese Klasse müsste zum Rest Deiner Engine passen. Dann müsste ich "nur noch" einen Milkshape-Loader für diese Klasse bauen. Ist meine Argumentation so korrekt?

Der EMM-Loader hat mit der TriBase-Engine nichts zu tun, er ist ziemlich unabhängig und braucht von außen nur ein Direct3D-Device zum Erstellen der Texturen, Vertex- und Index-Buffer und zum Rendern.
Ich verstehe nicht, wie Du einen "Milkshape-Loader für diese Klasse" machen willst, Du kannst höchstens einen Milkshape-Exporter schreiben, der aus Milkshape heraus ins EMM-Format exportiert, was technisch gesehen sehr gut möglich ist, weil wie Du ja schon sagtest, das EMM-Format sogar mehr kann als das MS3D-Format.

Zitat von »"DreiDe"«

Wann wird es denn voraussichtlich den Source-Code für Deinen Loader und vorallem für die Klassen, in die geladen wird, geben?
Was bez. der Animationen würde denn die Hardware übernehmen, falls sie es denn unterstützt?

In der nächsten Woche wahrscheinlich. Mein Loader wird die Hardware-Vertex-Transformation wohl nicht unterstützen, das ist mir zu viel Arbeit. Aber es ist prinzipiell möglich.

5

25.11.2003, 09:04

@David:
Ich hatte gehofft, dass Deine Engine um eine/einige Klasse(n) wie BoneModel, Animation etc. erweitert wird und diese Init/Loader-Methoden aus dem EMM-Format haben. Dann hätte ich diese Loader-Methoden so umschreiben können, dass sie direkt aus Milkshape-Dateien anstelle aus dem EMM-Format lesen.

Denkst Du daran, Deine Engine um Animationen aus dem EMM-Format zu erweitern oder steht dies gar nicht zur Diskussion?
Wenn Ja, wann?
Wenn Nein, warum denn nicht?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

25.11.2003, 11:28

Ehrlich gesagt möchte ich die Engine so lassen, wie sie jetzt ist, denn jede Änderung hätte auch etliche neue Seiten im Buch zur Folge, die wir uns nicht leisten können.
Mit dem EMM-Exporter und dem Loader kann aber jeder selbst versuchen, so etwas zu implementieren. Die TriBase-Engine wird letzten Endes sowieso von kaum jemandem genutzt, denn jeder möchte ja verständlicherweise seine eigene Engine schreiben. Ich denke, dass die Akzeptanz von kleineren Libraries wie meinem EMM-Loader weitaus höher ist als die einer kompletten Engine, also werde ich mich in Zukunft eher auf kleinere Dinge beschränken.
Exporter und Loader kommen natürlich mit auf die CD der zweiten Auflage und werden im Buch auch ein wenig beschrieben, aber nicht sehr detailliert. Das muss auch nicht sein, da der Quellcode des Loaders sehr gut kommentiert ist.

7

25.11.2003, 14:14

Sorry David, hier bin ich nur teilweise Deiner Ansicht.
Dass Deine Engine eher selten im Original verwendet wird, ist wahrscheinlich richtig. Auch ich habe meine "eigene" Engine auf Grund Deines Gedankengutes gebaut. Trotzdem ist der Bezug zu Deiner Engine noch klar erkennbar und Änderungen / Erweiterungen Deiner Engine könnte ich leicht nachziehen.
Im Vorfeld habe ich auch einige andere Engines (auch andere Programmiersprachen) untersucht, mit denen man aber als Freizeit-Programmierer nicht weit kommt bzw. die einen sehr stark einschränken bzw. nicht erweiterbar sind. Der Vorteil Deiner Engine liegt klar darin, dass sie all diese Nachteile nicht hat und zudem durch das Buch auch noch gut erklärt/dokumentiert ist. Also schade, wenn Du das aufgibst, Deine Engine weiterzuentwickeln.
Kleinere Libraries mit Source-Code gibt es im Internet massig. Diesen haftet aber immer der Bezug zum Ganzen an, mit dem viele Schwierigkeiten haben. Also die Frage, wie baue ich das jetzt konkret in meine eigene Engine ein?
Vielleicht könnten auch andere, die diesen Thread lesen, Ihre Meinung kundtun. Vielleicht sehe nur ich das so.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

25.11.2003, 15:07

Es hindert Dich ja niemand daran, die Sache selbst einzubauen, aber ich werde die Engine definitiv nicht mehr großartig erweitern, auch wenn jetzt 100 Leute kommen und das sagen, weil es einfach nicht geht - ich habe nicht unbegrenzt viele Seiten im Buch zur Verfügung.

Werbeanzeige