Animation in OpenGL mit 3D-Modellen

11

Ich habe ein Modell in Blender erstellt. Jetzt möchte ich dieses 3D-Modell in meinem C ++ - Programm lesen. Ich dachte mir, dass ein Modell in verschiedene Dateiformate exportiert werden kann, z. B. .obj, .3ds oder COLLADA, und dann in einem C ++ - Programm gelesen werden kann. Ich habe eine ganze Weile im Internet danach gesucht und viele Tutorials gefunden. Aber ich bin mit den meisten auf Probleme gestoßen. Im Nehe-Tutorial verwenden sie beispielsweise Glaux, das ich in meinem Programm nicht verwenden möchte. Die restlichen Tutorials verwenden md2, das von Blender nicht unterstützt wird.

Kann mir jemand sagen, welches Dateiformat zum Exportieren eines 3D-Modells verwendet werden soll und wie das in mein OpenGL-Programm geladen werden soll? Wie kann ich dieses Modell auch animieren? Ist es möglich, zusätzliche Effekte wie Tonzuordnung hinzuzufügen, nachdem es mit OpenGL in das c ++ - Programm geladen wurde? wenn ja dann wie?

PS Ich benutze Linux für die Spieleentwicklung

schnappen
quelle

Antworten:

2

Ich würde mich für das OBJ-Format entscheiden. Wie Sie bereits haben wahrscheinlich realisiert, gibt es Hunderte von OBJ Lader für C ++ gibt . Ich glaube, eines der ausgereiftesten ist Assimp , es unterstützt viele verschiedene Formate und es ist ziemlich gut dokumentiert. Hier haben Sie ein Beispiel, wo sie es verwenden.

Dan
quelle
Der Link lighthouse.com funktioniert nicht
Snape
Es funktioniert für mich in allen meinen Browsern ... Versuchen Sie diesen Link x90.es/1CC
Dan
2
Obj unterstützt keine animierten Netze, oder? google einfach "Blender opengl enthäutetes Netz" und ich gehe davon aus, dass du ein Format findest, das zu dem passt, was du bearbeiten möchtest: Mein Beitrag konnte nicht gelöscht werden. Er sollte eine Antwort auf einen früheren Beitrag sein, der das obj-Format
empfiehlt
1
.obj unterstützt keine Animation und diese Antwort ist falsch. stackoverflow.com/questions/757145/…
Sean Middleditch
2

Blender 2.60 hat die Unterstützung für COLLADA-Animationen behoben. In früheren Versionen war dies mehr oder weniger fehlerhaft. Wenn Sie jedoch noch keine Modellformate in Ihren eigenen Code geladen haben, würde ich empfehlen, zuerst das Laden von .obj zu lernen. Es ist in ASCII, also für Menschen lesbar und ohne externe Loader-Bibliotheken leicht zu lesen.

SurvivalMachine
quelle
1

3ds enthält keine Animationsdaten, so dass eine nicht funktioniert. Collada Ich weiß nicht viel darüber, aber als ich mich für ein Format in meinem Spiel entschieden habe, habe ich viel gesucht und verglichen und mich schließlich für das B3D-Format entschieden. Es unterstützt Skelettanimationen und kann von Irrlicht geladen werden (es enthält auch Beleuchtungswerte ).

Ich verwende den Exporter 'b3d Pipeline' von 3dsMax und habe meinen eigenen hlsl-Shader codiert, um die Netze zu animieren und zu beleuchten. Er funktioniert wirklich gut.

Sie können überprüfen, wie Irrlicht es macht (dh laden und animieren), es macht die Animation zwar in der Software, aber es gibt Beispiele, wenn Sie ein bisschen danach suchen, wie man es mit einem Shader macht (wenn Sie das wollen). Eine schöne Sache ist, dass Irrlicht sowohl OpenGL als auch Linux unterstützt.

Ein anderes Format, das recht einfach ist, ist das .X-Format. Es muss unzählige Beispiele dafür geben, wie man das Skelett exportiert, lädt, analysiert, einrichtet und damit animiert. Es ist zwar ein Microsoft-Format, also möchten Sie es vielleicht nicht verwenden :-)

Tonzuordnung und dergleichen hat absolut nichts mit Animation zu tun. Wenn Sie also wissen, wie man diese Technik verwendet, können Sie dies mit animierten Netzen tun.

Valmond
quelle