Modelle für OpenGl einlesen?

  • Modelle für OpenGl einlesen?

    Hi.

    Ich programmiere gerade ein kleines OpenGL-Spiel auf Basis von GLUT, OpenGL und OpenAL.

    Nun möchte ich gerne ein paar komplexere Modelle im Spiel haben. Da das Modellieren mit OpenGL doch etwas zu kompliziert ist, würde ich gerne Programme wie Blender oder Cinema4D CE 6 dazu verwenden.

    Nun stellt sich die Frage wie man das am besten anstellt.

    Es gibt ja reichlich Formate zum abspeichern.

    Kennt sich einer damit aus, oder kann mir einer ein sehr gutes Tutorial empfehlen? Ich habe bisher nur reine Source-Code-Tutorials gefunden. Das ist nicht gerade "leicht" zu verstehen.

    Ich hatte schon mal bei Nehe geguckt, aber dort habe ich nix gefunden.

    Danke. :)
  • RE: Modelle für OpenGl einlesen?

    Ich hatte mal das gleiche Problem - einen Interpreter dafür zu schreiben ist zwar möglich, aber die Formate sind nicht immer so toll dokumentiert. Und die existierenden Konverter waren nicht ausreichend, weil sie bestimmte Eigenschaften (wie z.B. Texturkoordinaten) nicht exportiert haben. Ich hatte den C4D-Export damals mit einem COFFEE-Skript gelöst. Das ging für texturierte Polygonobjekte ganz komfortabel, für komplexere Dinge (wie Bones etc.) war es nicht ausgelegt. Dummerweise ist das 'ne Weile her und ich habe das Skript irgendwo verbaselt (vielleicht ist es noch auf irgend einem Backup drauf, keine Ahnung). COFFEE ist zwar nicht übermäßig intuitiv, aber immerhin halbwegs dokumentiert. Das Skript hatte damals übrigens gleich eine C++-Klasse mit dem kompletten OpenGL-Code generiert, incl. Texturverwaltung etc.
    Multigrad - 360°-Produktfotografie für den Mac
  • Ziemlich spät aber trotzdem:

    Wenn du dich nicht lange mit komplizierten Dateiformaten wie .3ds und so weiter rumschlagen willst, eignet sich das .ASE format ziemlich gut. Die Polygone werden dort in Klartext kodiert und können sehr einfach ausgelesen werden. Zudem bieten die meisten Programme eine Exportfunktion für .ASE.

    Ich empfehle dir anstelle von GLUT SDL zu verwenden. Es ist viel komfortabler und auch schneller.
    -- Hell! I've lost my adrenalin pills!
  • RE: betrifft ex/omporter

    Original von thomas13
    hallo, das wäre auch für mich interessant! Könntest Du mir vielleicht auch diesen zukommen lassen?


    klar. schick mir übers forum ne email mit deiner email-addresse, und ich schicke dir den code. du brauchst allerdings codewarrior, um das zu compilieren.
  • Bau dir ein eigenes Objektformat!

    Ich habs so gemacht:
    Ich mach meine Objekte in Cinema 4D. Dann speichere ich sie ins .obj datei format (human readable). Das lad ich mir dann in nen Konverter der das in mein eigenes Dateiformat konvertiert. Bei diesem Vorgang hättest du auch noch die möglichkeit spezielle Dinge in die 3D Welt zu bauen, wie Aktionspunkte, etc.

    Das .obj Dateiformat ist sehr einfach zu lernen. Es umfasst nur etwa 4-5 Befehle! Such mal im Google nach "obj file format" und du wirst x referenzen finden die dir 100% weiterhelfen werden.

    Das eigene Dateiformat musst du dir dann halt überlegen. Ich hab meines so organisiert:
    man schreibt irgendwie

    Quellcode

    1. QUADS
    2. vertex 1.0 -1.0 0.0
    3. vertex 1.0 1.0 0.0
    4. vertex -1.0 1.0 0.0
    5. vertex -1.0 -1.0 0.0
    6. END


    Um es einzulesen mach ich einfach ne neue Display List. Dann gehe ich zeile für zeile die Datei durch und mach einfach 10-20 if's rein. Z.b.: Wenn "QUADS" kommt, dann einfach glBegin( GL_QUADS ) ausführen!
    Geht ganz einfach!

    Liebe grüsse aus Zürich und viel Erfolg,
    Fabian
  • Hi. :)

    Ich melde mich mal wieder. :)

    Also ich habe mir heute einen Importer für Wavefront (.obj) Dateien geschrieben. Diese stellt er auch dar, jedoch erst mal nur ohne Texturen, weil die Textur-Koordinaten lese ich noch nicht ein. ;)

    Ist ansonsten noch sehr schmutzig, der Code. ;) Aber ein kleiner Erfolg. Leider habe ich immer noch das Schul-Projekt im Rücken.

    Dieses Wochenende hatte ich keinen Bock daran zu arbeiten und wollte unbedingt einen Importer für ein Objekt-Format schreiben. Nunja. .obj war das leichteste was C4D CE6 so ausspuckte. ;)

    Wenn ich dann mal wieder Zeit habe, arbeite ich daran weiter. :)