Hallo,
Mir geht es einfach darum, dass ich vorhabe ein OpenGL-Programm zu entwickeln, dass sowohl unter Linux als auch Windows laufen muss. Das ist nur ein Aspekt.
Andere Fragen sind mindestens genauso wichtige Frage wÀre:
Welche Art von Programm willst Du entwickeln? * eine kleine (weitgehend nicht interaktive) 3D-Visualisierung (Àhnlich glxglears) * eine 3D-Visualisierung innerhalb einer komplexeren GUI-Anwendung ("3D Fenster" in einer GUI-Applikation) * eine 3D-Visualisierung einer komplexen 3D-Simulation (z.B. "Simulator", 3D-Games o.À.)
Tja es soll schon eher eine 3D-Simulation werden, in der sich 3D-Wesen bewegen können. Andererseits sollte auch noch eine Möglichkeit zur Texteingabe bestehen.
Wo liegt der Schwerpunkt? Reichen Wire-Frames und Solid-Models, brauchst Du Texturen, 3D-Schriften oder sind Photorealismus und Effekte (z.B. Nebel, Wassereflexe o.À) gefragt?
Dementsprechend müssten die Modelle schon Solid mit Texturen und Beleuchtung sein. So Specials wie Nebel, Wasserreflexe oder so etwas muss nicht sein.
Wie komplex sind die zu visualisierenden Strukturen? Handelt es sich um eine handvoll 3D-Primitive (Kugeln, Quader, Meshes o.À.) oder es komplexe Objekte (z.B. CAD-Modelle).
Also es sollen Wesen sein und dementsprechend große Meshes werden es dann auch. Ziel ist es, Modelle aus Blender oder ähnlichen Programmen zu nehmen und die sich dann in der Welt bewegen lassen.
Was ist das Ziel des Programmes? Statische Bilder (Fotos), Animation (Filme), Interaktion (Simulationen/Games)?
Ja es soll auf jeden Fall eine Simulation sein. Etwas zwischen Spiel und Simulation. Also es soll kein Ego-Shooter sein.
Je nachdem wo die Schwerpunkte liegen sind andere Tools sinnvoll.
1. Statische Bilder: OpenGL wÀre nur eine Möglichkeit unter vielen. Andere Tools (RayTracer o.À.) reichen meist aus.
2. Visualisierung von statischen Scenen. Zum Einstieg wÀren GLUT oder einer der GLUT-Clones in Kombination mit reinem OpenGL keine schlechte Wahl.
3. Einbindung in ein GUI. Sowohl QT als auch Gtk besitzen geeignete Bibliotheken, die die Kopplung von OpenGL mit den GUI-Toolkits ermöglichen.
Ist hier das Signal/Slot-Konzept von Qt eher förderlich oder störend? Und wie sieht es mit der Lizenzseite bei Qt aus? Es wird auf jeden Fall kein komerzielles Programm.
4. Komplexe Modelle, dynamische Szenen. An dieser Stelle ist es sinnvoll die reine OpenGL-Programmierung zu verlassen und auf "Höhere 3D-Libs" zu setzen.
Ich verwende OpenInventor, das im Original auf SGI zurÃŒckgeht und von dem es verschiedene kommerzielle und freie Clones gibt. Frei verfÃŒgbar sind SGI's Original (LGPL'd) und dessen Clone Coin (GPL'ed). SGI's Original ist ziemlich schwierig zu ÃŒbersetzen und zu installieren, Coin ist deutlich einfacher.
FÃŒr Coin gibt es brauchbare Qt und Win Anbindungen, sowie weniger brauchbare Gtk und Motif Anbindungen. Bestandteil von SGI's OpenInventor ist das Original aller GUI-Toolkit-Anbindungen: SGI's Motif Anbindung SoXt.
Beide OpenInventor-Toolkits sind resourcen- und featuremÀssige Schwergewichte. Ein schneller "Einstieg" ist relativ einfach, die Details zu verstehen, kann jedoch Jahre dauern.
Gibt es da Alternativen zu? Und meinst Du mit resourcenmäßiges SChwergewicht, dass es sehr hohe Ansprüche an Rechenzeit hat?
Ralf
philipp