2010-01-07 12 views
12

Ich nehme einen OpenGL-Kurs und wir haben die Möglichkeit, Modelle zu erstellen, die in unseren Zuweisungen mit einer 3D-Modellierungsanwendung wie Maya oder Blender verwendet werden können.Importieren von Modellen in ein OpenGL-Projekt

Ich bin nicht Ich freue mich auf die Eingabe von Koordinaten manuell, so war ich neugierig, welche Ressourcen ich für das Schreiben von OpenGL-Code und das Importieren von Modellen suchen sollte. (Texturen kommen später). Ich bin auch besorgt über die Größenordnung, in die ich importiere, aber vielleicht ist es dumm, sich an dieser Stelle Sorgen zu machen.

Danke für alle Ressourcenvorschläge. OpenGL hat so viel da draußen, dass ich manchmal überwältigt werde, wenn ich nach dem googlen muss, was ich brauche.

EDIT: Dies ist, was ich am Ende verwendet. http://www.spacesimulator.net/tut4_3dsloader.html Ich habe die "Windows" -Version heruntergeladen und mit einigen Pfadänderungen zu den Includes, stand auf und läuft. Es behandelt nicht OBJ-Dateien, sondern 3DS. Cheetah 3D exportiert auch zu diesem Typ.

+0

Ich glaube nicht, dass das hier auf SO gehört, SU wäre besser. –

+8

@Maxim Warum sollte SU besser nach Bibliotheken fragen, um Modelle in etwas zu laden, das mit OpenGL gezeichnet werden kann? Scheint ziemlich Programmierung mit mir verwandt. –

Antwort

8

Blender kann Dateien im OBJ-Format speichern, und eine einfache Google-Suche zeigt mehrere Bibliotheken an, um diese in OpenGL zu laden. Here ist eins.

2

Ich würde sagen, dass das Obj-Format eine gute Balance für Lesbarkeit und Funktionalität ist, wenn Sie es selbst analysieren möchten.

http://en.wikipedia.org/wiki/Obj

Der einfachste Weg wäre zu sein, eine Bibliothek zu finden, die für Sie tun, aber die Möglichkeiten würden zu Ihrer gewählten Sprache beschränkt werden.

Sie sollten sich keine Sorgen über die Skalierung machen. OpenGL-Matrizen können Scheitelpunkte problemlos neu skalieren.

4

Ich würde vorschlagen, keine Sorgen über die Größe der Objekte für jetzt.

Jetzt müssen Sie sich auf ein Format für die 3D-Datei festlegen. Es gibt viele Optionen beim Export von einem 3D-Programm wie Maya oder Blender.

Darf ich einen einfachen COLLADA-Importeur empfehlen? Spezifikationsinformation ist hier: http://www.khronos.org/files/collada_spec_1_4.pdf

Eine andere Spezifikation, die ich in letzter Zeit benutzt habe, würde wahrscheinlich auch dafür passend sein, ist OBJ.

Die Spezifikation für OBJ befindet sich hier: http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/

Auch gibt es einige kostenlose Probe 3D-OBJ-Dateien here entfernt. Dadurch können Sie das Format der Dateien sehen und sehen, wie einfach es ist, sie zu parsen.

Denken Sie daran, OBJ kann Animation nicht unterstützen, und es ist ziemlich ineffizient für das Rendern großer Szenen.

+0

Animation ist kein Problem. Ich habe Cheetad3D und ich habe gerade überprüft und gesehen, dass es Obj-Dateien tun kann, was super ist. – bobber205

5

Eines der einfachsten Formate, die zum Exportieren von Meshes verwendet werden können, ist Wavefront OBJ (bitte suchen Sie bei Wikipedia nach, da ich nur einen Link im Moment veröffentlichen darf). Es ist im Grunde eine Textdatei, die nicht zu schwer zu parsen sein sollte.

Oder eigentlich sind, wenn Sie verwenden GLUT erlaubt, Sie könnten versuchen, und Boot-Loader verwenden (wie in OpenGL FAQ 24.040 beantwortet)

Sorgen Sie sich nicht über das Objekt Skala zur Zeit, können Sie immer Ihre maßstabs Objekt später. Stellen Sie nur sicher, dass Sie es mit lokalen Koordinaten exportieren, nicht global (z. B. [0,0,0] sollte die Mitte des Objekts sein, nicht die Welt, die Sie modellieren).

+0

GLUT ist erforderlich (oder zumindest stark empfohlen) für den Kurs so genial Link! – bobber205

+0

Ich verwende FreeGLUT. Habe ich kein Glück, ohne die GLUT zu wechseln, die ich benutze? :( – bobber205

+0

@ bobber205 Soweit ich weiß, ob Freeglut auf einer Maschine vorhanden ist, importiert die Schwemme einfach den gesamten Freeglut in sich selbst und ist nichts anderes als eine symbolische Kopie. Zumindest sagen mir das freeglut.h und glut.h Ich benutze eine Linux-Box, und das ist vielleicht anders für Sie. Ich schlage vor, Sie suchen die Quelle der glut.h und Freeglut.h in Ihrem Include-Pfad zu bestätigen. Prost! ---- Ich denke, ich antwortete ein wirklich veralteter Beitrag, aber ich hoffe, dass dies die Angemessenheit meines Kommentars nicht beeinträchtigt. – ffledgling