Forum: PC-Programmierung opengl: harter einstieg


von Patrick O. (sir-patrick)


Lesenswert?

Hallo

Seit einigen Tagen will ich mit OpenGL programmieren.
Tutorials behaupten von sich selbst alles ganz einfach zu beschreiben. 
Allerdings kam ich mit denen nicht ganz weiter, weil ich meistens schon 
Probleme mit den Bibliotheken hatte.

Frage: Liegt es jetzt an mir, dass ich nicht weiterkomme, oder gibt es 
Tutorials oder ähnliches, mit dem ich in die OpenGL Welt eurer Meinung 
wirklich leicht hineinkomme.

Habs inzwischen mit Jogl, Java3D, CsGL und Tao Framework probiert.

Bei Jogl und Java3D hatte er immer gemeldet, die Packages wären nicht 
da.
Bei CsGL hab ich immer nur Codeblöcke mit schlechter Beschreibung 
gefunden.

Und ob es mit Tao funktioniert weiß ich nicht, den bei dem einzigen 
gefundenen Beispiel war "using Tao.OpenGl" auskommentiert.

Es gibt zwar einige C++-Beispiel, nur funktionieren die nur mit VC++ 
6.0, da ich nicht weiß, wie man die verweiße auf die *.libs herstellt.

Ich hasse zwar Java, würd es aber neben C# und C++ auch damit weiter 
probieren.

Naja, danke.

von Stefan (Gast)


Lesenswert?

Probiers mal damit:

http://www.jogl.info/

von Rolf Magnus (Gast)


Lesenswert?

Schau dir mal die Tutorials auf http://nehe.gamedev.net/ an.

von Morin (Gast)


Lesenswert?

Ja, ich kenne das Problem von vermeintlich einfachen Tutorials. Die 
sagen nur zu oft "du brauchst die und die und die Bibliotheken / 
Programme / whatever, aber wir sagen hier nicht wie die installiert 
werden". Das soll man dann anscheinend erraten, wie das geht. War bei 
LaTeX so, bei DocBook, bei zig Bibliotheken, ... Bei OpenGL kann ich dir 
aber versichern, dass es sich lohnt, hartnäckig zu bleiben. Schließlich 
gibts danach auch richtig was fürs Auge!

Noch eine Java-Anbindung mit der ich ganz gute Erfahrungen gemacht habe: 
http://www.jausoft.com/gl4java.html

Leider ist die Anbindung an Java grundsätzlich an manchen Stellen 
grundsätzlich etwas umständlich, weil die OpenGL API für C geschaffen 
wurde. Beispiel z.B. wenn laut API ein Array oder erst recht ein Zeiger 
übergeben werden soll. Das kriegt man aber hin.

Ansonsten bleibt dir auch die Möglichkeit, es erstmal in C zu probieren. 
Mit der Zusatzbibliothek GLUT kriegst du dann auch in einem 10-Zeiler 
ein Bild zu sehen. Da du schon was von VC++ gesagt hast, nehme ich mal 
an, dass du auf Windows bist. Du könntest z.B. Cygwin als 
Programmierumgebung benutzen, das musst du zwar auch erst installieren, 
geht aber problemlos und du hast danach in nullkommanix was am laufen.

von Patrick O. (sir-patrick)


Lesenswert?

Hallo

Ich möchte mich schon mal für die Anworten bedanken.

zu Jogl:

Das Tutorial scheint gut zu sein, aller Dings* kann ich die Packages 
irgendwie nicht einbinden.

http://nehe.gamedev.net/

Das hab ich ebenfalls mal probiert. Der, der am Anfang die meisten 
Hoffnungen machte. Nur will ich nicht ein fertig durchdachtes Programm 
neu compilieren. Ich habs bis zum ersten Viertel durchgemacht, dann hats 
mir gereicht. Ich habs dann nurmehr 5 Minuten lang rein kopiert, bis ich 
dann am Schluss sah, dass der Code zum Runterladen zur Verfügung steht. 
Danke.

Was mir nicht klar ist. Was hat Cygwin mit der C-Programmierung zu tun? 
Ist das nicht ein Unix Emulator für Windows?

Vielen Dank für euer Bemühen
Ich seh mir dann mal gl4java an.

* Ich weiß, dass man normaler Weise* allerdings schreibt.
* Ich weiß, dass man normaler Weise* normalerweise schreibt.

von Stefan (Gast)


Lesenswert?

Dein Problem ist scheinbar nicht openGL-spezifisch sondern vielmehr das 
Problem dass du nicht ganz klarkommst wie man Bibliotheken in Java 
einbindet...

von Morin (Gast)


Lesenswert?

> Was mir nicht klar ist. Was hat Cygwin mit der C-Programmierung zu tun?
> Ist das nicht ein Unix Emulator für Windows?

Ja ist es. Wenn du den benutzt hast du aber auch die C-Toolchain wie 
unter Unix zur Verfügung, und mit GCC + OpenGL + GLUT hast du in 
kürzester Zeit ein lauffähiges OpenGL-Helloworld. Das geht meiner 
Erfahrung nach schneller und einfacher als das Äquivalent unter VC++ 
(*). Außerdem kriegst du unter Cygwin die nötigen Bibliotheken über 
denselben Installer wie auch den Rest von Cygwin mit wenigen Mausklicks 
installiert.

(*) Bei VC++ gab es soweit ich mich erinnere immer so ein Gefuddel von 
wegen Multithreaded libc oder Singlethreaded, und dann dynamisch oder 
statisch gelinkt und so weiter. Cygwin ist in der hinsicht näher an "es 
geht einfach". Der Nachteil ist dass du für die Automatisierung i.A. 
GNU-make benutzen solltest, und das kann wenn du es nicht kennst einige 
Einarbeitungszeit kosten. Das kommt aber erst zum Tragen, wenn du das 
Übersetzen größerer Programme vernünftig automatisieren willst. Bei 
kleinen Beispielen ist es wurscht, da tut es auch ein Shell-Script / 
Batch-File oder sogar copy&paste des Compileraufrufs.

von Rolf Magnus (Gast)


Lesenswert?

> http://nehe.gamedev.net/
>
> Das hab ich ebenfalls mal probiert. Der, der am Anfang die meisten
> Hoffnungen machte. Nur will ich nicht ein fertig durchdachtes Programm
> neu compilieren.

Du kannst es aber als Basis für eigene Sachen benutzen. So hast du 
erstmal was einfaches, das funktioniert. In den Tutorials steht ja auch 
nicht nur der Code, sondern auch noch eine Erklärung dazu.
Ansonsten, wenn du auch bereit bist, etwas Geld auszugeben, kannst du 
dir dir das "Red Book" (OpenGL Programming Guide: The Official Guide to 
Learning OpenGL, Version 2.1) kaufen. Ich habe es zwar selber nicht (als 
ich angefangen hab, kannte ich es noch nicht, jetzt brauche ich es nicht 
mehr), aber es soll sehr gut sein.

>> Was mir nicht klar ist. Was hat Cygwin mit der C-Programmierung zu
>> tun? Ist das nicht ein Unix Emulator für Windows?
>
> Ja ist es.

Naja, es ist ein Wrapper für Windows, um die Unix-Bibliotheken 
abzubilden, und darauf aufsetzend eine Sammlung der ganzen Tools, 
inklusive Compiler, Linker, Make u.s.w.
Aber mingw sollte da eigentlich auch reichen.

von Bartli (Gast)


Lesenswert?

Also zum Lernen kann ich die OpenGL Super Bible empfehlen. Glaub 
allerdings nicht, du könntest danach automagisch Quäk 5 oder sowas 
bauen.

Ausserdem würde ich zum Anfangen entweder SDL oder GLUT empfehlen. Beide 
machen es ziemlich einfach, plattformunabhängig ein Fenster zu öffnen 
und mit OpenGL darin rumzusauen. Wobei GLUT definitiv einfacher als SDL 
ist.

von Bartli (Gast)


Lesenswert?

Achjaa...vergiss nehe.gamedev.net. Vom Red Book oder der Super Bible 
hast du definitiv mehr.

von Morin (Gast)


Lesenswert?

> Ansonsten, wenn du auch bereit bist, etwas Geld auszugeben, kannst du
> dir dir das "Red Book" (OpenGL Programming Guide: The Official Guide to
> Learning OpenGL, Version 2.1) kaufen.

Oder online lesen:

http://www.glprogramming.com/red/

Früher gabs das glaub ich auch als PDF zum Download, vielleicht findest 
du das ja noch irgendwo.

von Markus B. (Firma: Embedit Mikrocontrollertechnik) (_mb_)


Lesenswert?

alternativ gibts auch noch Ogre 3d

http://www.ogre3d.org/

von Morin (Gast)


Lesenswert?

OGRE ist aber 1. was komplett anderes als OpenGL und 2. löst das nicht 
die Probleme des OP. Zum Beispiel die OpenGL-Bibliothek einbinden muss 
man bei OGRE ganz genauso.

von Patrick O. (sir-patrick)


Lesenswert?

Ein wunderschönen guten Abend

Als ich so durch www.opengl.org schlenderte stieß ich genau so auf
http://www.glprogramming.com/red/

Dieses mehr Dokumentation als Tutorial scheint genau das Richtige zu 
sein, wonach ich gesucht habe. Möchte mich aber trotzdem noch für die 
anderen Vorschläge bedanken und hoffe, dass ich damit meine 
Programmideen verwirklichen kann.

Hochachtungsvoll

sir patrick

von Patrick O. (sir-patrick)


Lesenswert?

Hallo nochmal

Ich wollte nur nochmal kurz was reinstellen, für die, die mal über 
diesen Eintrag drüberstolpern.

http://wiki.delphigl.com/index.php/Hauptseite

Könnte behilflich sein, sollte der OpenGl Programmierer von Übermorgen 
noch nichts von dieser Seite wissen.

Bleibt dran an OpenGL

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.