Neue Assimp-Frage: Warum ist aiAnim::mDuration ein float?

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Top-OR
Establishment
Beiträge: 330
Registriert: 02.03.2011, 16:32
Echter Name: Jens H.
Wohnort: Esslingen/Dessau
Kontaktdaten:

Neue Assimp-Frage: Warum ist aiAnim::mDuration ein float?

Beitrag von Top-OR »

Sooo, Dienstag ist (scheinbar) Assimp-Tag - Ich habe noch ne doofe Assimp-Frage:

Models und Materialien sind "drin". Jetzt mach ich mich an die Animationen.
Als "Testmaterial" habe ich md5anims (und entsprechende Models).

Ich hab die Doku mal überflogen und denke, ich habs kapiert, wie die Daten zu verwerten sind.

Nur zu einer Sache habe ich eine Frage:

aiAnimation::mDuration (und auch aiAnimation::mTicksPerSecond) ist ein double und wird als eine Art Anzahl (Dauer??) von Ticks beschrieben.
In diesem Kontext (MD5ANIM) wäre ein "Tick" ein "Frame" und mDuration die Anzahl der Frames der Animation.

Das, was ich aus Assimp herausquetsche, deckt sich soweit mit dem, was mein eigener MD5-Loader ausspuckt (hier z.B. 76 Ticks bei 24 Ticks/s - also 76 Frames bei 24fps) -> kommt hin!

WARUM die Anzahl der Ticks ein float und kein int? Würde das nicht reichen?
Kann es bei der "Anzahl" der Ticks zu Werten kommen, die eine Nachkommastelle hätten?
Welche Animationsformate machen sowas? *angst*

Ich hoffe, das wars dann mit den Assimp-Fragen (für heute). Danke für die Geduld allerseits!
--
Verallgemeinerungen sind IMMER falsch.
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Neue Assimp-Frage: Warum ist aiAnim::mDuration ein float

Beitrag von Aramis »

Ich weiss nicht ob das die ganze Wahrheit ist oder nur die halbe :-) aber ein double ist flexibler - wir wussten ja urspruenglich nicht was uns mal fuer Dateien begegnen wuerden. Deine Interpretation der Ticks ist aber jedenfalls korrekt. Wenn du nur mit ganzzahligen FPS klarkommst, kannst du ja runden.
Benutzeravatar
Top-OR
Establishment
Beiträge: 330
Registriert: 02.03.2011, 16:32
Echter Name: Jens H.
Wohnort: Esslingen/Dessau
Kontaktdaten:

Re: Neue Assimp-Frage: Warum ist aiAnim::mDuration ein float

Beitrag von Top-OR »

Aramis hat geschrieben:Ich weiss nicht ob das die ganze Wahrheit ist oder nur die halbe :-)
Gut, dann sind wir schon zwei!
Aramis hat geschrieben:Deine Interpretation der Ticks ist aber jedenfalls korrekt. Wenn du nur mit ganzzahligen FPS klarkommst, kannst du ja runden.
DAS ist der Plan. Danke für die Info - ich dachte schon, mein ganzes Bone-Animation-Weltbild stürzt ein. *puh*

Also denn: Danke und weitermachen!
--
Verallgemeinerungen sind IMMER falsch.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Neue Assimp-Frage: Warum ist aiAnim::mDuration ein float

Beitrag von kimmi »

Manchmal werden Zeiten für Animationen auch normiert beschrieben, also zwischen 0.0 bis 1.0. DEshalb ist das kein Int. UNd Double soll wohl eher vor Rundungsfehlern schützen.

Gruß Kimmi
Benutzeravatar
Top-OR
Establishment
Beiträge: 330
Registriert: 02.03.2011, 16:32
Echter Name: Jens H.
Wohnort: Esslingen/Dessau
Kontaktdaten:

Re: Neue Assimp-Frage: Warum ist aiAnim::mDuration ein float

Beitrag von Top-OR »

Ich habe solche Sauereien schon geahnt, bin aber bisher nicht auf sowas gestoßen.

Naja, wenns denn mal auftreten sollte, muss ich wohl mit einem ausreichend großen Faktor multiplizieren und wieder auf Ganzzahlen runden oder sowas.

Weißt du, welche Formate sowas machen?
--
Verallgemeinerungen sind IMMER falsch.
Antworten