OpenGL + Linux
-
Abend,
Ich suche ein Online Buch oder Tutorial für OpenGL Programmierung mit C++.
Es kann in English oder Deutsch sein.
Über Google habe ich codeworks gefunden, jedoch ist dies ziemlich mit Windows zeugs vermischt.Danke für eure Aufmerksamkeit
-
Ich mag diese Bücher nicht, wo man mehrere Sachen auf einmal lernen soll.
Es wird zwangsläufig immer nur gekürzt worden sein der Stoff.
Also, wenn ich was empfehlen soll, dann bring das Rumpfgerüst mit den Nehe Tutorials von http://nehe.gamedev.net/ zum laufen und hole dir dann die ganzen Informationen über OpenGL direkt vom Erfinder:
http://www.opengl.org/documentation/blue_book/
http://www.opengl.org/documentation/red_book/
http://www.opengl.org/documentation/implementations/
http://www.opengl.org/registry/So bist du nicht nur auf das angewiesen, was irgendein Autor für wichtig hält, sondern hast Zugriff auf die gesamte Information.
-
Danke für die Links,
leider ist bei Setting up bei nehe alles dabie außer Linux
Oder kann ich da das Setup für Solaris nutzen, da sich die systeme am ähnlichsten sind.
-
Probier doch mal zuerst das Example02. Da sind auch Varianten für GNU/Linux dabei.
Wenn du Glück hast, ist schon alles installiert und es geht gleich beim ersten make Aufruf.
-
Meine Empfehlung (zumindest zum Lernen und Üben) wäre, Glut zu verwenden. Bei modernen Distributionen sollte das meist in Form von freeglut dabei sein.
So kannst Du OpenGL-Programme erstellen, ohne Dich mit der plattformabhängigen Initialisierung rumärgern zu müssen.
-
Hi,
Ich werde dann wohl mit freeGLUT arbeiten, da es für fast alle BS gibt und man kann es ja statisch dazu linken damit der Anwender es nicht installieren muss.Nur gibt es irgendwo eine Anleitung für freeGLUT? Im prinzip brauch ich ja nur eine Einleitung da es ja nur für die Intalisierung und für die Ein- und Ausgabe von Eingabegeräten zuständig ist?!?!
Wo liegt den eigentlich die lib von freeGlut unter Linux? Habe die dev Files über die Packetverwaltung installiert und muss sagen das ich Linux noch nicht so lange als Desktop system habe.
:schland:
-
Dann schreib mal, was du für eine Distribution benutzt. Dann kann der erstbeste, der sich mit dieser Distribution und glut auskennt, dir das konkrete Paket nennen, wenn er hier vorbeikommt.
Und freeglut ist möglichst kompatibel zu glut, also suchst du am besten für Anleitungen dafür.
-
Ich nutze Debian Etch.
-
Hier steht, wo hininstalliert wird
http://packages.debian.org/etch/i386/freeglut3-dev/filelist
-
Hi,
Ich wollte nun aber trotzdem mal die lib selber bauen.
Ich habe mir dazu die neuste version von sf gezogen und den Inhalt des src Ordners in CodeBlocks hinzugefügt.
Wenn ich das nun Compiliere, läuft er durch, jedoch kommt am Schluss die Meldung "You must select a host application to "run" a library".
Was muss ich da tun?
Ich will ja nur die .a .so in dem Release verzeichnisses meines Projects.
Ach ja ich mache das weil ich freeglut gern statisch dazulinken möchte (damit die Anwender es nicht installieren müssen)
-
Deine IDE will irgendetwas Ausführbares. Hast ihr vermutlich gesagt, dass sie das Projekt ausführen soll. Und eine Library ist eben keine vollwertige Anwendung sondern nur ein Rumpf, der in eine "Host Application" eingelinkt werden muss.
-
HI,
Ja es gab da noch einen Hacken den man setzen konnte, nun funktionierts.Noch eine letzte Frage:
Ist es sinnvoller es statisch zu linken oder es dynamisch und die .so dann dem Programm beilegen.
Denn installieren muss er ja so bei beiden varianten nichts.
-
Auch wenn Du unbedingt statisch linken willst, ist es zumindest im Falle des Debian-Pakets nicht notwendig, Freeglut selber zu bauen, da ja dort auch eine libglut.a dabei ist.
Und ich halte zumindest bei Bibliotheken, die sehr weit verbreitet sind (und da gehört Freeglut bzw. allgemein eine Glut-Implementierung dazu) immer dynamisches Linken für sinnvoll. Zum einen werden kann dann die Bibliothek aktualisiert werden, ohne dass Dein Programm beeinflusst wird und zum anderen ist Dein Programm dann auch nicht auf Freeglut beschränkt, sondern läuft(*) mit allen Bibliotheken, die die GLUT-Schnittstelle implementieren. Auch würde ich die .so nicht beilegen, sondern darauf verweisen, dass Freeglut benötigt wird. Vor allem bei Linux ist es Aufgabe des Paketmanagers, solche Bibliotheken verfügbar zu machen, wenn jede Anwendung ihre eigenen Bibliotheken mitbringt, wird das ganze Konzept eines Paketmanagers ad absurdum geführt.
(*) Es startet zumindest...
-
Ich habe mit http://glfw.sourceforge.net/ sehr Guter erfahrungen gemacht. Ich arbeite auch immer noch damit.
-
Tag,
Hab grad meine Probleme bei der Umsetzung der Nehe Tutorials und zwar kann es sein das OpenGL kein C++ unterstützt?
Da so fehlermeldungen wie:error: argument of type ‘GLvoid (grafik::)()’ does not match ‘void (*)()’
Aber wie kann ich das effektiv lösen? Ich will ja schon OOP nutzen.
-
Casten.
-
Sry, aber ich weiß nicht genau wie du das meinst.
Also C kann ja nicht mit dem this Zeiger umgehen, aber den kann ich ja nicht einfach weglassen.