Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3829 Wohnort: Tespe (nahe Hamburg)
Die beiden DGL-Mitglieder MatReno und Conan haben mir mal wieder ein (leider seltenes) IOTW zugeschickt, dass ich gerne an dieser Stelle veröffentlichen möchte:
Fliegt! Fliegt, meine Vögel und verbreitet die frohe Kunde: Das Restless-Projekt steht kurz vor seiner Veröffentlichung.
Nun ist es endlich soweit und es gibt, rechtzeitig zu Weihnachten, schonmal einen ersten Blick auf die Möglichkeiten, die dieses Projekt bietet.
Für diejenigen, die noch nicht wissen, worum es sich bei genanntem "Restless-Projekt" handelt:
Es geht um einen Animations-Loader, der die, in dem OpenSource-Model-Programm Blender erstellten, animierten Objekte 1:1 in eine eigene OpenGL-Anwendung transportiert.
Das Projekt umfasst einen Python-Exporter (der leider noch einer Überarbeitung bedarf), der die Animations- und Mesh-Daten aus Blender extrahiert und einen Loader (bestehend aus einer DLL-Datei, für die es einen Header für Delphi und, mit der Zeit, vielleicht auch andere Sprachen geben wird), der die Daten in die eigene Anwendung importiert.
Das Projekt unterstützt Bone- und Keyframe-Animationen, gewichtete Bone-Vertex-Transformation, einen linearen und einen Bezier-Animationsverlauf, eigene Zwischenanimationen zum weichen Übergang zwischen zwei verschiedenen Animationen, ...
Das Mesh an sich beinhaltet Materials und Texturen und das Rendern desselben ist komplett auf VBOs ausgelegt.
Die Steuerung der Animation wird komplett durch Callbacks realisiert.
Hier der Link zur Beispiel-Anwendung (Das Männchen wurde soeben mal schnell in Blender zusammengebastelt, ist also anatomisch nicht völlig korrekt)
Schaut's euch mal an, wir freuen uns auf Feedback.
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
ich poste einfach mal hier
Sagt mal, wie siehts mit der Linux-Unterstützung aus? Wäre sehr gut, dann würde ich die Lib sofort verwenden.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Di Nov 07, 2006 13:37 Beiträge: 83 Wohnort: Partenheim
Es freut mich sehr, das zu hören
Ich muss leider gestehen, dass ich auf dem Gebiet Linux kaum Ahnung habe. Aber ich wüsste nicht, warum es unter Linux nicht benutzbar sein sollte. AFAIK müssen doch lediglich ein paar Compilerbefehle in den Header-Kopf, die abfragen, um welches OS es sich handelt und dementsprechend das Laden der dll und sonstiger Ressourcen anpassen. Irr' ich mich?
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2067
Programmiersprache: C++
Unter anderem,
manche Units dürfen auch nicht verwendet werden. Wenn es sich per FPC compilieren lässt und alle benötigten DLLs auch für Linux existieren, sollte es auch gehen.
Wäre halt schon wichtig wenn es es auch für Linux gäbe weil es somit endlich mal DEN Lader gäbe.
Registriert: Di Nov 07, 2006 13:37 Beiträge: 83 Wohnort: Partenheim
Der Loader an sich ist fast fertig (es stehen nur noch ein paar Tests und das Verpacken in eine dll an). Einen Releasetermin kann ich nicht absehen, da wir uns bereits vor dem Start des Projekts mit Ende Oktober grob verschätzt haben
Was noch Zeit kosten könnte, ist der Python-Exporter für Blender. Wir haben zwar einen geschrieben und der funktioniert auch soweit, ist nur sehr, sehr langsam. Hier also der Aufruf: Wenn sich jemand mit Python und Blender-Scripten auskennt und Interesse an diesem Projekt hat, darf gerne einen Exporter schreiben .
Anderenfalls müssen MatReno und ich uns diesem Thema in den Semesterferien widmen.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Was zu Linux Librarys evtl auch noch zu erwähnen wäre. Ihr dürft in keinem Falle den Initialization Block verwenden! Denn den gibt es unter linux schlicht und ergreifend nicht. Also falls ihr globale Strukturen initialisieren müsst, dann macht das immer über eine Init und eine Quit (oder was auch immer) Methode. Die der Entwickler manuell aufrufen muss. Das ist etwas was ich selber schmerzhaft herrausfinden musste und woran ich einige Zeit habe suchen dürfen. :-/
PS: Also das trifft natürlich auf alle Unit zu. Also auch falls ihr externe benutzt.
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Noch eine kleine Anmerkung:
Wenn jemand denkt, dass die Bones der Beine aus den Beinen heraus-stehen, hat er recht.
Das ist aber kein Fehler unseres Loaders, sondern ein kleiner Bug im Exporter.
Dieser hat das Offset der Parent-Bones nicht mit einbezogen, und wir mussten es schnell mal grob manuell anpassen.
Haben es nur auf Y angepasst und nicht auf X (vergessen ).
Mit dem richtigen Offset sieht es exakt wie in Blender aus.
Wie gesagt der Exporter ist halt noch etwas buggy. Muss dringend ein neuer her
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2622 Wohnort: Berlin
Programmiersprache: Go, C/C++
Naja, sobald die Funktionalität steht, kann man den exporter ja optimieren.
Für den SceneGraph expoter, den ich bastel, hab ich mir angewöhnt immer jede Zeile gegen zu testen und nach jedem Feature den Code auf zu räumen. Für welche Sprache ist eigentlich der Orginalcode ?
Wenn es Pascal ist, dann könntet ihr doch neben der DLL/so doch auch den Sourcecode, zum reincompilieren in die app, anbieten. Dateiabhängigkeiten mitschleppen ist immer schlimm und mit Problemen behaftet.
Sind die Animationsdaten von den Meshdaten trennbar ?
Es wäre Platzverschwendung und unnötige Ladezeit, immer Modeldaten und Animationsdaten zu laden.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Di Nov 07, 2006 13:37 Beiträge: 83 Wohnort: Partenheim
Hallo TAK2004!
Der Sourcecode des Loaders ist Pascal. Ob wir ihn anbieten, ist noch nicht geklärt ... wir wollen uns ja nicht entbehrlich machen
Die Animationsdaten sind insofern von den Meshdaten trennbar, dass sich zwar die Armature in der Meshdatei befindet, die Animation (= Keyframes) aber in einer getrennten Datei vorliegt und sich somit beliebig viele Animationen (in verschiedenen Dateien) auf ein einziges Objekt beziehen können, solange eine Animation nicht mehr Bones anspricht, als die Armature des Objekts enthält, d.h. die Animation sollte auch für diese Armature erstellt worden sein.
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Es ist vollbracht. Der Exporter ist komplett neu geschrieben.
Er ist jetzt übersichtlicher (falls man später noch was ändern muss), sehr viel effizienter und auch 5-10 Zeilen kürzer
Damit ist schon mal ein großer Schritt getan, hat mich immerhin auch rund 20 Stunden gekostet.
Aber es hat sich gelohnt.
Nach der Mathe-Klausur am 4. Januar können Conan und ich noch etwas an dem Loader feilen und
ihn schließlich noch in ner dll verpacken.
Mitglieder in diesem Forum: Google [Bot] und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.