# LWJGL: Fragen zum Verständnis



## Hoeze (17. Mai 2012)

Ich will jetzt mein erstes 3D-Spiel programmieren, ich hab schon einiges (größtenteils Bukkit-Plugins) programmiert und damit auch einigermaßen fundierte Java-Grundlagenkenntnis, außerdem kenne ich den theoretischen Aufbau eines Spiels.
Ich will dabei mit OpenGL arbeiten, deshalb hab ich mir gedacht, ich nutze LWJGL.

1. Ist es sinnvoll, von Anfang an neuere OpenGL-Versionen als 1.1 zu nutzen? Die meisten Tutorials arbeiten ja mit 1.1 ...

Als erste Aufgabe hab ich mir gestellt, ein  Programm zu schreiben, in dem man mit den Pfeiltasten einen Würfel auf einem großen Rechteck umher fahren kann. Wenn man die rechte Maustaste gedrückt hält soll man mit der Maus die Blickrichtung ändern und mit den Pfeiltasten die "Kameraposition" ändern können.
Die Eingabe ist kein Problem, die bekönne ich selber hin.
Soviel ich bis jetzt verstanden habe, beginnt man mit GL11.glBegin() ein Objekt zu zeichnen, mit GL11.glVertex3f() zeichnet man die Koordinaten jedes Eckpunktes und mit GL11.glEnd() beendet man das ganze.

2. Wenn ich jetzt den Würfel nicht bewege und lediglich die Perspektive ändere, ändere ich damit auch die Koordinaten der Objekte?

3. Wie ändere ich die Perspektive?


----------



## Runtime (17. Mai 2012)

Am besten ist, du benutzt die ältestmögliche Version, denn die maximale Version ist von den Grafikkarte abhängig.
In OpenGL hast du 2 Matrizen: die model- und die view-Matrix, aber wenn du das nicht weisst, schlage ich vor, du
arbeitest dich durch ein paar (mehr) Tutorials arbeitest. Eine sehr hilfreiche Website ist delphigl.com, da hat es ein
Wiki und Tutorials, alles auf Deutsch.


----------



## Spacerat (17. Mai 2012)

Also zumindest solltest du Anfangs erstmal mit älteren APIs arbeiten jedoch nur zu Übungszwecken, bis das Verständnis da ist. Ältere APIs (1.0 und 1.1) werden nämlich z.B. von OpenGLES (Android usw.) gar nicht mehr oder nur teilweise unterstützt. Dort kann man z.B. keine einzelnen Vertices mehr in die RenderPipe schreiben ([c]glVertex3f()[/c]). Zu Übungszwecken eignen sich z.B. auch die NeHe-Tuts (in Deutsch). Da gibt es teilweise sogar auf LWJGL zugeschnittene Beispiele jeweils unten auf den Tutorial-Seiten.


----------



## Guest2 (18. Mai 2012)

Moin,

der Vorteil von veraltetem OpenGL ist, das es sehr viel schneller Erfolgserlebnisse gibt, da es sehr viel einfacher ist, etwas auf den Bildschirm zu bekommen. Je komplizierter das Dargestellte jedoch werden soll, je unflexibler zeigt sich das alte OpenGL.

Mit aktuellem OpenGL ist es (sehr) kompliziert erste Ergebnisse zu erhalten. Sofern man das dahinterliegende Prinzip und die mathematischen Grundlagen jedoch verstanden hat, ist alles, was dann kommt relativ einfach.

Das, was man in den üblichen Tutorials zu veraltetem OpenGL lernt, kann man für aktuelles OpenGL getrost wieder vergessen. Das Einzige was man übernehmen könnte wäre die Theorie der fixed function Pipeline, diese wird jedoch üblicherweise in Tutorials kaum erklärt. Leider sieht es an Tutorials für aktuelles OpenGL sehr mau aus.

Viele Grüße,
Fancy


----------



## Kr0e (18. Mai 2012)

Die OpenGL Super Bible 5 fand ich als Einstieg damals super. Geht genau auf das moderne OpenGL und die Probleme davon ein.


----------



## Hoeze (18. Mai 2012)

Ich arbeite mich gerade dadurch:
Tutorial ? DGL Wiki
Das ist echt ein super Tutorial  , es erkärt alles und ist leicht verständlich.


----------



## Marco13 (18. Mai 2012)

Das sind wohl viele Tutorials - und ein paar entsprechend veraltete dabei. In ähnlichen Threads hatte ich mal nopper.tv - Norbert Nopper's Homepage erwähnt, was zwar keine echten "Tutorials" sind, aber aufeinander Aufbauende Codesnippets mit ziemlich aktuellem OpenGL und ohne "Altlasten".


----------



## Evil-Devil (21. Mai 2012)

Sonst für das neuere OpenGL die Lessons von Jason L. McKesson nutzen.
Learning Modern 3D Graphics Programming

Gibt dazu auch einen LWJGL Port 
https://github.com/rosickteam/OpenGL


----------

