Assimp GLTF Import

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Andy16823
Beiträge: 31
Registriert: 18.06.2014, 17:22

Assimp GLTF Import

Beitrag von Andy16823 »

Hallo, ich habe heute mein Framework auf diesen Assimp-Port umgestellt: https://github.com/Saalvage/AssimpNetter, da er wohl der einzige aktuelle .Net-Port ist. Leider habe ich jedoch das Problem, dass mit diesem Port GLTF-Modelle nicht mehr richtig dargestellt werden, wenn diese Animationen haben. Aber nur der Originpoint, nehme ich an, da der rest vom Hühnchen richtig dargestellt wird. Außerdem sind die FBX Modelle (die Vampiere) korrekt also denke ich der fehler liegt irgendwo im GLTF.

----
Edit: Ich habe nun das model in blender geöffnet und als FBX exportiert und festgestellt das, dass FBX Model 18 Nodes im Skeletton hat und das GLTF 17. Es fehlt der letzte node mit einer Mat4(0) im offset fehlt.
Dateianhänge
Screenshot 2025-11-24 174921.png
Benutzeravatar
Jonathan
Establishment
Beiträge: 2835
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Assimp GLTF Import

Beitrag von Jonathan »

Ich fand Animationspipelines debuggen immer super ätzend, weils so viele Schritte sind und man die Zwischenergebnisse schlecht überprüfen kann. Von daher: Mein Beileid.

Aber prinzipiell: Hast du das Problem schon komplett eingegrenzt? Lädt das Modell korrekt in einem anderen Viewer, der GLTF kann? Lädt das Modell korrekt in einer anderen, Assimp-basierten Anwendung (also nicht der Net-Port, der ggf. ja älter sein könnte)? Ist der Assimp Export überhaupt korrekt, also z.B. ist das Ergebnis richtig, wenn du es mit der neusten Blender Version (die den neusten GLTF Exporter haben sollte) exportierst? Kannst du das Modell in einem anderen Format exportieren und bei dir richtig laden?

Das mit den Nodes ist halt so eine Sache, es kann halt sein, dass schonmal ein root-Node hinzugefügt oder gelöscht wird. Aber wichtig ist es erstmal, genau die Stelle zu finden, wo es kaputt geht, also ein "wenn ich X mache ist alles richtig, wenn ich Y mache ist es kaputt".
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Andy16823
Beiträge: 31
Registriert: 18.06.2014, 17:22

Re: Assimp GLTF Import

Beitrag von Andy16823 »

Ok, also das habe ich schon mal herausgefunden: Beim Laden der Nodes ist der fehlende Node bei allen Modellen noch nicht vorhanden. Er wird jedoch hinzugefügt, wenn ich eine FBX-Animation lade. Das gilt sowohl, wenn ich die Animation direkt im FBX-Modell lade, als auch, wenn ich die Animation aus der FBX-Datei in das GLTF-Modell importiere. Das bedeutet, dass die Animation im GLTF fehlerhaft ist, die im FBX jedoch nicht. In meinem Code, in dem ich die Animationen lade, wird also ein Node mit einem Offset von 0 in das Skelett hinzugefügt. Die GLTF-Animationen nutzen diesen Bone jedoch nicht. Wenn ich z. B. die GLTF-Animation abspiele, ist sie fehlerhaft. Wenn ich im GLTF-Modell die FBX-Animation abspiele, ist diese korrekt. Heute Morgen, bevor ich auf den neuen Port gewechselt habe, war diese noch korrekt (zumindest in dem alten GLTF-Modell). Mir ist aufgefallen, dass aber neue Modelle, die ich mit Blender 5 als GLTF exportiere, auch mit der alten Assimp-Version fehlerhaft waren, darum der Wechsel.
--------------
Edit: ich würde fast behaupten das das an der Animation selbst liegt oder eventuell an blender. Ich habe auf fab jetzt ein gltf model herunter geladen welches korrekt geladen wird und auch abgespielt wird.
Andy16823
Beiträge: 31
Registriert: 18.06.2014, 17:22

Re: Assimp GLTF Import

Beitrag von Andy16823 »

Ok also ich weiß nicht warum genau, aber von jetzt auf gleich hat es funktioniert. Ich hatte das model getauscht, kann sein das irgendwo was falsch referenziert war. Das Hühnchen zu mindest scheint jetzt zu funktionieren. Das Mixamo model welches ich in blender importiert habe und exportiert habe leider noch nicht. Aber das hat vor dem wechsel des Bindings schon nicht richtig funktioniert. Immerhin ein Schritt weiter :)
Antworten