Frage zum B3D Format

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

LukasBanana

Betreff: Frage zum B3D Format

BeitragMi, Okt 01, 2008 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich habe mir den Code (z.B: hier: http://www.blitzbasic.com/sdks..._specs.txt), wie man das B3D Format auslesen muss, genau angeschaut, und selbst neu implementiert (allerdings in C++ weil ich das Format in meine Engine einbauen will).
Allerdings verstehe ich nicht so ganz, anhand dieses Codes, woher man wissen soll welche Bones an welche angehängt werden sollen bzw. welche Bones welches Parent Bone haben.
Kennt sich jemand mit diesem Format aus der mir das sagen kann?
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

LukasBanana

BeitragMi, Okt 01, 2008 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, also das mit den Parent Bones hab ich jetzt schon selbst heraus gefunden.

Aber was soll den die 1. Information bei den Keyframes der Rotation bedeuten?
Das gibt es vier Werte: W, X, Y und Z. Aber für was soll den "W" gut sein???
außerdem weiß ich nicht warum die Rotation auch nur in Werten von 0.0 bis 1.0 angegeben sind?!
Kann mir jemand helfen?
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana
 

BIG BUG

BeitragMi, Okt 01, 2008 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Drehung ist über sog. Quaternionen dargestellt und nicht über Eulerwinkel wie von Blitz gewohnt.
Weiteres siehe Wikipedia oder Google.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

LukasBanana

BeitragDo, Okt 02, 2008 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke schon mal.

Ich hab mir das in Wikipedia mal ein wenig durchgelesen und den Teil in einer anderen 3D Engine angesehen.

Ich hab des jetzt also so gemacht, dass ich den Quaternion W, X, Y, Z aus der Datei lese, dann einen Matrix aus diesem Quaternion erzeuge und die Rotation dieser Matrix als Rotation des Gelenks nutze.
Ist dieser Vorgang richtig oder behandelt man die Quaternionen anders?

Und warum ist die Anzahl keyframes für jedes Gelenk unterschiedlich??
Woher soll man dann wissen welche parallel laufen sollen?
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana
 

BIG BUG

BeitragDo, Okt 02, 2008 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn Deine Rechnerei stimmt, dann sollte das schon klappen mit den Quaternionen.

Bei den Keys hast Du ja eine Framenummer, für welche der Key gelten soll, so dass man nur dann Keys setzen muss, wenn sich die Richtung/Geschwindigkeit der Animation ändert.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

Dreamora

BeitragDo, Okt 02, 2008 23:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Grund für Quaternion ist, dass sie die einzige Darstellung sind, in welcher das sogenannte "Gimbal Lock" nicht existiert.
Dieses tritt bei einer Rotation um den Winkel +- 90° um die x Achse auf (direkt rauf / runter) und heisst eigentlich, dass man diese richtung nicht eindeutig darstellen kann
solltest du also zappelnde winkel verhindern wollen, generierst du die matrix erst als finalem Schritt wenn alles transformiert ist in der hierarchie und du die vertices die am entsprechenden bone hast projizieren musst.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

LukasBanana

BeitragSa, Okt 04, 2008 12:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut, aber wenn man bei Skelet Animationen nun mit Quaternionen arbeitet: heißt das dann auch, dass bei der Animation keine Matrix rotationen, sondern eben Quaternionen-transformationen zum Einsatz kommen??

Im Moment lese ich nämlich die Werte der Quaternionen aus, mache daraus wie bereits gesagt eine Matrix, speichere die Rotation dieser Matrix und dann rotiere ich die Matrix während der Animation wie einen normale Objekt Rotation. Ich befürchte fasst das die Quaternionen auch während der Animation zum EInsatz kommen sollen.

Falls ja: wie werden denn Quaternionen von einer Rotation zur nächsten transformiert?
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

LukasBanana

BeitragSo, Okt 05, 2008 12:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

danke nochmal für eure bisherige Hilfe Smile

Meine SkeletAnimation macht schon Fortschritte. Aber eins wundert mich noch ein wenig:
die Frames der SkeletAnimation aus den B3D Models sind nicht einfach durchnummeriert sonder können z.B: auch so aussehen:
1, 6, 7, 8, 20, 25, .... 380, 400 usw.
Ich habe schon eine Ahnung: damit will man glaub'ich die Geschwindigkeit von einer Bewegung, die z.B. von Frame 1 bis Frame 40 geht, unterschiedlich schnell machen, oder?!
Falls nicht, was soll das sonst sein?
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana
 

BIG BUG

BeitragSo, Okt 05, 2008 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, zwischen zwei Keys wird immer nur linear interpoliert. Folglich brauchst Du z.B. bei einer Beschleunigung eine Menge Zwischenkeys, während bei einer konstanten Bewegung nur Anfang- und Endkey definiert werden müssen...
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

LukasBanana

BeitragMo, Okt 06, 2008 10:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, ich hab's jetzt soweit für's B3D Format fertig und es funktioniert sehr gut Very Happy

Danke nochmal an alle
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

LukasBanana

BeitragSo, Nov 02, 2008 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich hab jetzt ein ganz anderes Problem zum Thema B3D Format. Das Format lese cih zur Zeit eigentlich schon fertig und komplett aus.
Aber ich habe noch foglendes Problem:
Bei ganz vielen Modellen ist es so, dass sie aus einem MESH bestehen, aber mehrere Texturen haben. Das hat in diesen Fällen aber nichts mit MultiTexturing - also mehrere Texturen übereinander - zu tun. Woher soll mein Programm nun wissen welche Textur für welches Vertex sein soll??
Blitz3D macht das ja richtig. Aber ich habe keine Ahnung wie das funktionieren soll.
kann mir das vielleciht jemand erklären?
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

The_Nici

BeitragSo, Nov 02, 2008 13:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Surfaces mit Brushes z.B.?

LukasBanana

BeitragSo, Nov 02, 2008 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich aber nur ein Surface habe?
Sry, ich erwähnte nur ein MESH weil in dem B3D Format unter dem Chunk "MESH" ein neues Surface erstellt wird.
Also so mache ich das jedenfalls.
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Nov 02, 2008 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitz3D setzt AddVertex und AddTriangle an ein Surface an. Das Surface selbst bezieht sich aber auf ein Mesh. Demnach müsste es doch so sein, dass man ein Surface als Bezug nimmt und nicht ein Mesh. Das hiesse; immer wenn im B3D-Format ein neues ''Mesh'' ausgelesen wird, wird in deinem Formatreader ein neues Surface erstellt, welches sich auf ein Mesh bezieht, welches ganz am Anfang erstellt worden ist. Dieses Mesh wird dann auch weiterhin als Handle benötigt.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

LukasBanana

BeitragSo, Nov 02, 2008 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
@hectic: ganz genau so, wie du es beschrieben hast, mache ich es im Moment.
Trotzdem haben viele Modelle nur ein Surface (im B3D Format also nur einen "MESH Chunk") aber mehrere Texturen. Welche Textur soll also zu dem Surface gehören? Eigentlich werden alle Texturen benötigt. Also müsste man das Surface in mehrere aufteilen, aber wie???
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana
 

BIG BUG

BeitragMo, Nov 03, 2008 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Mesh ist eine Sammlung von Surfaces. Ein Entity kann also nur einen MESH-Chunk beinhalten, aber mehrere TRIS-Chunks(Surfaces), welche eben auch eine eigene Brush-Zuordnung haben können. Die Vertices (VRTS) werden hingegen nur einmal definiert, die Surfacepolygone(TRIS) teilen sich diese dann.
Allerdings ist in B3D irgendwie nicht sauber definiert, in welcher Reihenfolge die Surfaces erzeugt werden(wichtig bei überlagernden Surfaces wie z.B. bei Mesh-Terrains). Das scheint von File zu File zu variieren.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

LukasBanana

BeitragMi, Nov 05, 2008 11:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso, okay das heißt also dass man die Vertices Informationen erst einmal in einem Array bzw. in einer Liste speichern muss.
Schließlich muss man erst mal die Surfaces haben, bevor man die Vertices erstellen kann.
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

LukasBanana

BeitragFr, Nov 07, 2008 12:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, es klappt jetzt. Ich hatte zwar erst noch ein Problem mit der Animation nach dem ich das mit den Texturen hinbekommen habe aber jetzt geht's und sieht sehr gut aus Very Happy
Danke nochmal an alle.
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana
 

da_poller

BeitragFr, Nov 07, 2008 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
ich kann nicht viel zum thema sagen nur bitte lass die ewigen doppelposts..
haben den edit button dafür.

LukasBanana

BeitragMo, Nov 24, 2008 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi nochmal,

ich wollte hierfür nicht extra noch mal einen neuen Thread erstellen,
aber kennt sich im Bezug auf die "Surfaces" auch jemand mit dem 3DS Format aus?

Da habe ich nämlich das gleiche Problem und noch weniger einen Ahnung wie man das beheben kann?!
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group