Collada Loader
-
Die Frage ist erstmal: Was genau brauchst du? Was muss das Format unterstützen? "Animationen" ist etwas ungenau. Ich nehme an es geht um keyframe-basierte, skeletale Animation von Dreiecksnetzen? Welche Tools verwendest du um die Modelle zu erzeugen?
-
blender
-
Und wie genau gedenkst du die Daten zu verwenden? Wenn es um ein Spiel geht, dann mach dir dein eigenes Format und schreib ein Export Plugin/Skript für Blender...
-
wieso ein eigenes format wenn es schon welche gibt??
-
Weil du dein Format ganz konkret an deine Anforderungen anpassen kannst.
Nachdem es nur ums Laden in deine Software geht und nicht um Datenaustausch zwischen verschiedenen Tools, ist es sinnlos den ganzen Ballast der üblichen Formate mitzuschleppen.
-
Ich hab aber leider null ahnung wie ich das machen sollte, weswegen ich lieber collada oder ein ähnliches format nehmen würde. collada käme gut da blender da einen exporter für hat
-
Das was Blender als "Collada" exportiert, kann kaum ein anderes 3D-Packages importieren ohne zu Crashen.
Darum wuerd ich die Collada-Spec eher als "Empfehlung" sehen und stattdessen einfach gucken, was tatsaechlich in der exportierten Datei steht.
Und das meiste davon wirst Du wahrscheinlich eh nicht brauchen.
-
ich hab mir so ne datei schon mal angeguckt und was ich jetzt nur nicht versteh ist wie die vertices gespeichert werden. da ist einfach ne liste mit den coordinaten also so:
<float_array id="Cube_011-mesh-positions-array" count="2460">0.08896857 -0.1336874 -0.102781 -0.1873949 -0.1336874 ... </float_array> und wie sind die da angeordnet ? so? x y z x y z x y z ... ?
-
Zu dem Float-Array gibt es eine zusaetzliche Beschreibung namens "Accessor".
Anhand dessen weisst Du wieviele aufeinanderfolgende Werte zusammen gehoeren:<accessor source="#Cube_011-mesh-positions-array" count="3" stride=”3”> <param name="X" type="float"/> <param name="Y" type="float"/> <param name="Z" type="float"/> </accessor>
-
Ich kann mich nur wiederholen: Vergiss Collada. Das Format ist unglaublich komplex und du brauchst so ca. 0.01% davon wirklich.
Damit wir dir eine Empfehlung geben können, müsstest du uns nur eben mal mitteilen, was genau du machen willst...
-
erst mal nur ein model laden und später dann noch material und animationen
also doch x y z x y z ... weil stride 3 oder ?
-
darman96 schrieb:
erst mal nur ein model laden und später dann noch material und animationen
Dann reicht erstmal obj?
-
wie gesagt hab ich schon gemacht
-
Und warum verwendest du's dann nicht einfach?
-
sag ich doch weil obj keine animationen unterstützt!
-
So wie ich das verstanden hab, brauchst du im Moment ja auch keine!?
-
doch nur wenn ich jetzt anfange einen loader für ein anderes format zu schreiben wollte ich mit dem model anfangen und wenn das funktioniert dann mit animationen und so weiter machen.
-
Du kannst aber doch noch nichtmal die Frage beantworten, was für eine Form von Animation du überhaupt verwenden willst...
Abgesehen davon rat ich immer noch sehr von Collada ab, weil es ziemlich sicher einfach nicht sinnvoll ist für das was du vorhast. Aber natürlich weiß ich nicht was genau du vorhast. Ich denk ich klink mich einfach mal aus. Die Collada Spezifikation hab ich ja schon verlinked, da steht alles drin was es zu wissen gilt.
-
gibts da mehrere?
-
darman96 schrieb:
@hellihjb:
also doch x y z x y z ... weil stride 3 oder ?So wird's wahrscheinlich meistens sein.
Die Komponenten der Vertexposition *duerfen* aber auch in einer anderer Reihenfolge oder mit mehr/weniger Attributen abgelegt werden.
Aber ob man das nun alles unterstuetzen muss sei mal dahin gestellt...