OpenGL Source Code Generator
Konvertierung von 3D Formaten nach OpenGL
OpenGL Source Code Generator:
Es soll eine Applikation entwickelt werden, die verschiedene 3D Formate importiert und die gesamte Szene oder einzelne (Teil-)Objekte in OpenGL Source Code verwandelt. Der Benutzer soll die Möglichkeit erhalten, per Option zu entscheiden, welche Attribute/Eigenschaften eines Objektes/einer Szene auf welche Art und Weise exportiert werden soll.
Anmerkung:
Source Code zu erzeugen und hinterher in das ausführbare Programm zu kompilieren ist zwar nicht die "de facto" Methode in professioneller Software, aber das ist auch gar nicht die Idee dieses Programms. Es soll vielmehr OpenGL-Einsteigern die Möglichkeit bieten, mit eigenen Modellen zu experimentieren, als immer nur mit Dreiecken, Würfeln und glut*-Objekten zu arbeiten. Stattdessen kann der Benutzer leicht mit einem ihm zur Verfügung stehenden Modellierungsprogramm, wie z.B. 3D Studio MAX, Modelle erzeugen/ verändern und sofort das OpenGL Gegenstück dazu generieren. Das Programm wäre somit auch eine Art Tutorial, da man die Veränderungen, die man per Option einstellen kann, beobachten kann, als selber die 3D Daten mühsam in den Code "einzuhacken". Ist auch weniger fehleranfällig.
Vorraussetzungen:
Es wird angenommen, daß grundsätzliches OpenGL Verständnis vorhanden ist.
Funktionalität:
Importieren von mind. 3 verschiedenen 3D Formaten. Im folgenden eine kleine Liste, aus der gewählt werden könnte:
· Alias/Wavefront *.OBJ
· 3D Studio R4 *.3DS
· Lightwave *.LWO
· DirectX *.X
· Softimage *.HRC, *.DSC
· VRML *.VRML
· 3D Studio MAX *.MAX
· Maya *.???
· Truespace *.???
· Blender *.???
· Rhino *.???
· Cinema 4D *.???
· Houdini *.???
· POV Ray *.???
· Autodesk DXF *.DXF
· und viele andere
Exportieren zu C Source Code, evtl. auch anderen Sprachen. Folgende OpenGL-Primitive und -Daten sollen erzeugt werden können:
· Vertex-Daten
· Normale
· Farben
· Texturkoordinaten
· Materialien
· Lichter
· Texturen, plus evtl. automatische Konvertierung in entsprechendes Pixelformat
· Transformations-Matrizen
· evtl. Kameras (zumindest eine, ansonsten evtl. Default-View)
Außerdem sollen Objekte in verschiedenen Formen exportiert werden können:
· Direkte Funktionsaufrufe (z.B. glVertex3f(10.0, 5.0, 10.0);)
· Direkte Funktionsaufrufe in Vektorform (z.B. glVertex3fv(vertex_ptr);)
· Vertex Arrays (Compiled Vertex Arrays)
· evtl. Interleaved Vertex Arrays
· Display Lists
Optionales:
· Optimierungsfunktionen
· 3D-Ansicht, in der der Anwender die importierte Szene und/oder das Resultat anschauen kann
· Umwandeln der Daten in bestimmte andere Datentypen (glColor3f(); -> glColor3ub();)
· Indentierung/Darstellung
Programmiersprache:
100% Java, JDK 1.1/1.2, JFC Swing oder Tcl/Tk oder Python/TkInter oder ANSI/ISO C/C++ plus plattformunabhängiges GUI-Toolkit (z.B. FLTK), andere nach Absprache
Umgebung:
Applikation, Linux/Windows(/Mac), evtl. Laufzeitumgebung (je nach gewählter Sprache)
Werkzeuge:
evtl. OpenGL Bindungen, wenn im Programm OpenGL benutzt werden soll, z.B. für die 3D-Sicht.
Codebeispiele:
Ein paar Codebeispiele...
Es empfiehlt sich jedoch generell, die Computergrafik-Übung von Prof. Kolb besucht zu haben, da
diese Beispiele in keinster Weise den vollen Funktionsumfang dieses Programms abdecken.