3ds Max + OpenGL + C++



  • Hallo Zusammen,
    sehe ich das richtig das man 3ds Max zum Modellieren nehmen kann um 3D Spiele mit OpenGL und C++ zu Programmieren (Kein DirectX) nehmen kann? Arbeiten tue Ich mit der Studenten Version von 3ds Max und Eclipse als IDE.

    Hat das schon einmal wer gemacht und kann mir da ein Paar tipps geben?
    Gruß
    n122vu



  • n122vu schrieb:

    sehe ich das richtig das man 3ds Max zum Modellieren nehmen kann um 3D Spiele mit OpenGL und C++ zu Programmieren (Kein DirectX) nehmen kann?

    Ich sehe nicht, warum das nicht möglich sein sollte.

    Hat das schon einmal wer gemacht und kann mir da ein Paar tipps geben?

    Nö, keine Tipps von mir, bin kein Modellierer.

    Ich nehme mal an 3ds Max kann in diverse Dateiformate exportieren (wie jedes andere Modellierprogramm auch), die lädst du in deinem Spiel einfach.



  • n122vu schrieb:

    Hallo Zusammen,
    sehe ich das richtig das man 3ds Max zum Modellieren nehmen kann um 3D Spiele mit OpenGL und C++ zu Programmieren (Kein DirectX) nehmen kann?

    ja

    n122vu schrieb:

    Arbeiten tue Ich mit der Studenten Version von 3ds Max und Eclipse als IDE.

    ok

    n122vu schrieb:

    Hat das schon einmal wer gemacht und kann mir da ein Paar tipps geben?

    Was genau willst du wissen?



  • Du kannst mit 3DSMax Wavefront-Dateien(obj) erzeugen. Diese kann man ganz leicht dann mit C++ einlesen und mit OpenGL anzeigen lassen. Die Projektdatei anzuzeigen geht zwar auch aber ist schwieriger, da das ein Binärformat ist. Du musste dann erstmal was finden, was dir dieses Format parst.



  • Hey,
    danke für eure Antworten, naja was ich wissen will ist evtl. schwer zu sagen mich Interessiert einfach nur worauf man da am besten achten sollte das es hinterher vernünftig aussieht im fertigem Programm.



  • Eine nützliche Bibliothek zum importieren von 3D-Modellen aus so ziemlich allen 3D-Programmen ist Assimp:

    http://assimp.sourceforge.net/

    Diese lädt die Informationen, die in den verschiedenen Dateiformaten gespeichert sind in eine einheitliche Datenstruktur. Dazu gehören nicht nur die "Modelle", sondern generell:

    Materialien/Texturen/Materialeigenschaften
    Meshes
    Skelett-Hierarchie/Transformationsmatrizen
    Animationen

    Das ist schonmal die halbe Miete um die z.B. mit 3DS erstellten Modelle in eigenen Programmen zu nutzen. Der Rest des Weges ist allerdings noch recht mühsam: Einen OpenGL-Renderer für die Modelle muss man schon noch selbst schreiben oder eine entsprechende Bibliothek verwenden (keine Erfahrungen mit solchen Bibs).

    Testweise kann man natürlich erstmal nur die Meshes direkt aus der Import-Datenstruktur rendern - das ist allerdings nicht sonderlich effizient.

    Wenn die Modelle ordentlich aussehen sollen und man in seinem Programm mehr als nur eine handvoll halbwegs komplexer Modelle darstellen will, wird es etwas komplizierter. Ein kuzer Überblick:

    - Mesh-Daten aus der Import-Datenstruktur in eigene Modell-Datenstruktur überführen (z.B. eine Model-Klasse, die die Meshes als Vertex-Buffer vorhält).
    - Materialeigenschaften für einzelne Meshes auslesen und beim Rendern entsprechende Texturen, Shader aktivieren und Shaderparameter setzen (Shader müssen natürlich aus programmiert werden, wenn keine Modell-Rendering-Lib verwendet wird).
    - Wenn man animierte Modelle haben möchte natürlich auch die Knochentransformationen für das Skelett auslesen und in entsprechende Datenstrukturen überführen (Vertex-Buffer) sowie entsprechende Vertex-Shader schreiben, die die Animations-Transformationen auf das Modell anwenden.

    ... alles in allem ein gutes Stück Arbeit wenn man es selbst machen will. Ansonsten, wie gesagt, nach eine Modell-Rendering-Lib Ausschau halten oder gleich eine passende Engine nehmen.

    Gruss,
    Finnegan



  • Hey,
    danke für deine Antwort, oh das wird dann doch viel Arbeit werde ich dann mal nach solchen libs umsehen.


Anmelden zum Antworten