Eigenes 3D-Modelformat



  • hallo,

    ich möchte gerne mein eigenes 3D-Model-Format entwickeln.
    So weit ich es weis, gibt es da zwei Ansätze dafür, um die nötigste Daten abzuspeichern (binär):
    - "tree based" (verschachtelte strukturen)
    - "chunk based" (einfach zusammenhängende datenblöcke nacheinander)

    Meine Fragen sind jetzt:
    - Gibts noch andere Verfahren um die Daten da irgendwie abzuspeichern ?
    - Was sind da die Unterschiede (Vorteile, Nachteile) ?
    - Was ist später schneller zu lesen (braucht ja speed beim Laden) ?

    grüß



  • Die Struktur ist für die Ladegeschwindigkeit nicht so wichtig, wie die Größe und Format. Ein HTML-Baum mit Zahlen als Strings ist nie so schnell wie ein binärer Chunk.

    Bye, TGGC (Fakten)



  • TGGC schrieb:

    Die Struktur ist für die Ladegeschwindigkeit nicht so wichtig, wie die Größe und Format. Ein HTML-Baum mit Zahlen als Strings ist nie so schnell wie ein binärer Chunk.

    Deswegen ist auch meine Frage, wie man das am besten aufbaut, ich habe nicht nach der Struktur, sondern nach dem Format gefragt!



  • tree based ist sinnvoll, wenn sich deine daten ständig wiederholen. also aus einem endlichen alphabet bestehen und die einzelnen elemente immer mal wieder auftauche.
    nen beispiel ist da ne einfache komprimierung von text. das alphabet wird als binärer baum aufgebaut und jedes zeichen als eine folge von "links" und "rechts" abgespeichert. 1 als links, 0 als rechts und schon besteht das am häufigsten vorkommende zeichen vielleicht nur noch aus 4 bit (1111), statt aus 8 bit, wie dein alphabet erfordern würde, wenn du das ganze einfach als folge von zeichen abspeicherst.

    und die frage muss lauten "wie muss die struktur aussehen?", denn die struktur diktiert, wie das format gewählt werden kann.

    ich würd aber lieber ne struktur wählen, die geeignet ist, das modell schnell zu rekonstruieren.
    wie sehen deine modelle denn aus?



  • also ich muss dazu mal sagen, dass es eine Sache ist, ein Datenformat selber zu entwickeln. Was mir immer an die Nieren geht ist, dass ich dann einen Modeller dafür brauche. Deshalb beschränke ich mich auf existierende Formate.



  • DocJunioR schrieb:

    also ich muss dazu mal sagen, dass es eine Sache ist, ein Datenformat selber zu entwickeln. Was mir immer an die Nieren geht ist, dass ich dann einen Modeller dafür brauche. Deshalb beschränke ich mich auf existierende Formate.

    man kann ja ein export plugin schreiben..
    die existierenden formate haben womoeglich einen fuer ein model unnoetigen overhead..

    das muss dann abgewaegt werden. wahrscheinlich situationsabhaengig..

    mfg aman..



  • thordk schrieb:

    ich würd aber lieber ne struktur wählen, die geeignet ist, das modell schnell zu rekonstruieren.
    wie sehen deine modelle denn aus?

    also 3d-modelformat sieht ungefähr so aus...

    erstmal was im format drin sein sollte:

    - header (informationen wie name, id, etc..)
    - viele materials (bestehen aus mehreren variablen z.b. diffuse, specular etc)
    - viele bones (quasi knochen im model: position, rotation, ...)
    - viele vertexblocks (x, y, z, tv, tw, nx, ny, ..)
    - viele facesblocks (indices auf bestimmte vertexe, je 3 packs)
    - etc

    jetzt ungefähr wie die daten zusammenhängen sollen / geladen werden sollen, z.b. LoadMesh(filename):

    - es sollen submeshs geladen werden
    - zu jedem submesh dazugehörige faces, bones und materials
    - zu jedem face sollen vertexblocks ermittelt werden
    - etc

    ist jetzt alles vereinfacht ausgedruckt gewesen, alle blöcke/strukturen sind quer durch verbunden

    die frage ist jetzt wie man das alles speichert, damit es später schnell und einfach geladen werden könnte, speicherungspeed spielt dabei weniger rolle,

    grüß



  • aMan schrieb:

    man kann ja ein export plugin schreiben..
    die existierenden formate haben womoeglich einen fuer ein model unnoetigen overhead..

    Naja, ich bin eben tippfaul und so nen Exporter macht auch arbeit. Zumal ich mich dann immer erst in die API des jeweiligen Programms einfieseln müsste.

    das muss dann abgewaegt werden. wahrscheinlich situationsabhaengig..

    Wo du recht hast..

    Programmierern ist manchmal auch eher eine Frage des Geschmacks...



  • genau das habe ich mir auch schon mal gefragt?

    st es sinnvoller ein eigenes Format zu entwicklern oder ein zu übernehmen. Habe es dann aber lieber ganz gelassen. Ganz einfache Dinge gehen ja noch aber bei Bones und Texturen hört es dann auf 🙂 Aber wenn du ein ansatz hast lass es mich wissen bin gesapnnt was draus wird. Vielleicht mache ich mir auch noch mal mehr gedanken dann drüber 🙂


Anmelden zum Antworten