Portables OpenGL mit C++

aXiEd

aXiEd

Aktives Mitglied
Thread Starter
Dabei seit
01.08.2006
Beiträge
880
Reaktionspunkte
68
Hallo,

da ich in Zukunft kleine OpenGL Anwendungen schreiben will, wollte ich mal wissen in wie fern es möglich ist portablen OpenGL Code in C++ zu schreiben. Hier ein paar Fragen die damit verbunden sind:

- Welche Libraries brauche ich?
- Ist Xcode als Editor geeignet?
- Gibt es einfache Tutorials die unkompliziert anfangen?
- Kann ich die Versionen für andere Plattformen auf meinem Mac kompilieren, oder muss ich mich dafür auf meine Dose zwingen?
 
- Welche Libraries brauche ich?
GLUT
- Ist Xcode als Editor geeignet?
Ja
- Gibt es einfache Tutorials die unkompliziert anfangen?
http://nehe.gamedev.net/lesson.asp?index=01
- Kann ich die Versionen für andere Plattformen auf meinem Mac kompilieren, oder muss ich mich dafür auf meine Dose zwingen?
Radio Erewan Antwortet: Im Prinzip ja. ABER.

Das einrichten einer fremden (Windows, Linux) Toolchain für gcc unter OS X ist kein Spass. Gar kein Spass. Die meisten Leute bauen die executables für Windows dann doch lieber direkt unter Windows.

Alex
 
Hallo below.

Vielen dank für deine Antwort! Ich schaue mir das ganze dann mal an!
 
GLUT scheint doch etwas veraltet zu sein oder? Gibt es noch weiter portable OpenGL Libraries?
 
GLUT scheint doch etwas veraltet zu sein oder? Gibt es noch weiter portable OpenGL Libraries?

Da ich auch schon etwas veraltet bin, ist GLUT für mich halt Waffe der Wahl.

Warum findest Du es veraltet, und nicht portabel genug?

Alex
 
Das hier steht auf der englischen Wikipedia Seite:
The original GLUT library is no longer maintained, and since its license did not permit the redistribution of modified versions of the library, freeglut and its spin-off, OpenGLUT —free software alternatives to GLUT — reimplemented the API from scratch. freeglut attempts to be a fairly exact clone, OpenGLUT adds a number of new features to the API.

Dabei ist zu beachten dass die letzte Version von freeglut bereits fast 2 Jahre alt ist, was für mich bedeutet dass es sich nicht durchgesetzt hat. Somit müsste es doch bessere Alternativen geben, oder täusche ich mich da?
 
Das weiss ich nicht. Aber mit GLUT anzufangen kann nicht schaden, denn sowohl freeglut wie auch OpenGLUT sind ja gleich oder ähnlich.

Zu OpenGLUT: "The problem with OpenGLUT is that it uses X11 to create windows", d.h. bedeutet Du musst immer den X11 Server starten. Das ist für manche Leute ein Problem.

Aber mal im Ernst. Wenn Du Änfängertutorials suchst halte ich GLUT für nicht falsch.

Alex
 
Es geht mir nicht unbedingt um ein Anfängertutorial. Wichtiger ist mir dass mein OpenGL Code zu 100% portabel ist, am liebsten ohne X11!
 
Dann fällt mir ausser GLUT nichts ein.

Und da ich der einzige bin, der hier antwortet glaube ich auch nicht, dass da jemand anderem etwas einfällt :kopfkratz:

Das mit "100% portabel" ist im Übrigen ja auch immer eine Frage an Radio Erewan: "Im Prinzip, ja, aber .."

Alex
 
Vielleicht bin ich mit Java 3D besser bedient. Werde das mal genauer unter die Lupe nehmen...

Vielen dank für deine Antworten. ;)
 
Es gibt noch SDL. Ist aber etwas komplexer.
 
Veraltet ist bei GLUT relativ. Es stellt im Prinzip nur die "Verbindung" OpenGL und Windowmanagement-System her. Tastatur und Mausabfragen sind auch vorhanden. GLUT stellt OpenGL einen Kontext zur Verfügung.

Das ändert sich nicht von einem Tag auf den anderen. Manches ist nach Jahren noch gültig. Die OpenGL-Funktionen sind davon unbetroffen, da diese ja von der Grafikkarte bzw. dem Treiber abhängen. Um auf Funktionen plattformübergreifend zugreifen zu können möchte ich GLEW zu empfehlen.

Für plattformübergreifendes programmieren empfehle ich GLUT, GLEW und OpenAL für ev. Sound (ähnliche Syntax wie OpenGL).

Ein gewisses Problem gibt es beim Imageloading (Texturen). Eventuell Quicktimelibraries oder Devil verwenden. Da hab ich noch nicht so viel Erfahrung.

SDL hat auch viele der oben genannten Funktionen. Dazu kann ich aber nichts sagen, da ich damit noch nichts gemacht habe. Hört sich aber interessant an.

XCode ist ein brauchbarer Editor dafür. Unter MacOS programmiere ich damit.

Tutorials:
nehe ist sehr zu empfehlen -> wurde hier schon genannt
Lighthouse3D liefert weiterführendes Material
Unverzichtbar: das Redbook, immer offen beim programmieren
Google ist dein allerbester Freund :)
 
Also wenn es wirklich portabel sein soll, dann würde ich eher SDL vorschlagen, da dieses u.a. auch Routinen zum Laden von Bildern für Texturen mitliefert und noch vieles mehr.
 
Ahoi

Wir haben gerade ein Projekt an der FH (fast ;) ) erfolgreich abgeschlossen, in dem wir OpenGL in c++ geproggt haben, und das relativ portabel.

Was du wie nutzt, kommt ganz darauf an, was du denn genau machen willst.

Wir haben auf eine Qt Gui gesetzt und darin dann ein OpenGL Widget gehabt, in dem wir den GL Code anzeigen liessen.
OpenGL, sowie Qt gibt es für Mac, win und Linux, also ist der portabelität nicht viel entgegenzusetzen.
Die includes muss man zwar je nach Betriebsystem anpassen, aber es ist nunmal c++ und nicht java *g.
zbsp bindet man Open GL in Mac über <OpenGL/gl.h> ein, inux wills <GL/gl.h> und linken muss man in Mac über -framework OpenGL, und Linux will -lGL.
Und gerade die linkerei und einbindung der Sachen in OS X sind nich wirklich in vielen Tuts erklärt, da diese meist auf Windows abzielen.

Qt biete im übrigen auch Methoden zum laden von Bildern und texturen, und die trolltech seite bietet ne menge ziemlich gute Tutorials

*edit ich lese gerade OpenAL, das haben wir auch genutzt, auch Plattformübergreifend, aber ziemlich dumm ist der Fakt, das in der alut der befehl zum wave-file laden in jeder Plattform anders ist, das soll mal einer verstehen ;)
 
Ich habe mich mal ganz kurz mit Qt beschäftigt und habe da nicht ganz durchgeblickt.

Qt ist ja nur eine Bibliothek, Die man installieren muss (was nicht gerade einfach erklärt ist für Neulinge (hab da dann gleich aufgegeben)), oder?
 
Falls Du nicht unbedingt native OpenGL programmieren möchtest, wäre VTK (www.vtk.org) vielleicht noch eine Wahl für Dich, läuft auf sämtlichen bekannten Plattformen...

Just my two cents - Winn
 
Zurück
Oben Unten