OpenGL#
http://de.wikipedia.org/wiki/OpenGL
Grundsätzlich muss OpenGL vom X-Server unterstätzt werden. Um dies zu testen, benutzt man das Programm glxinfo. Dies hat bei mir bisher immer Version 1.2 (oder in einem Fall gar kein OpenGL) ausgegeben.
verschiedene Versionen #
OpenGL 1.2 kam unter anderem mit dem Support für dreidimensionale Texturen. Ihr kennt dies vielleicht von Povray - dort ist z.B. die Holztextur dreidimensional. Dies bedeuet, dass für ein Vector (x,y,z) eindeutig ein Farbwert ermittelt werden kann. Da dreidimensionale Texturen enorm viel Speicher fressen werden sie nicht viel verwendet - doch aufgrund der Fähigkeit mit ihnen besondere Effekte zu erzeugen und des wachsenden Grafikkartenspeichers werden sie zunehmend attraktiver.
OpenGL 1.3 brachte Multitexturing - dies ist ein wichtiges Feature wenn man z.B. Lightmaps benutzen möchte. Dies bedeutet dass eine Textur eine Wand enthalten kann und die andere Textur einen weissen Punkt der nach aussen dunkler wird. Kombiniert man beide übereinander sieht es so aus als würde die Wand von einem Scheinwerfer angestrahlt.
OpenGL 1.4 enthält erweiterte Funktionen für Nebel - und man kann Depth-Texturen definieren. Diese sind soweit ich weiß für Shadowmaps nützlich.
OpenGL 2.0 bringt nun auch Support für Vertex- und Fragmentprogramme mit. Dies sind Programme die auf der Grafikkarte laufen können und entweder die Geometrie selbst (Vertices) oder die erzeugten Pixel (Fragmente) verändern können. Mit diesen Techniken werden z.B. Wasseroberflächen, Spiegelungen, Pixelbasierte Beleuchtung und inzwischen auch das Skinning (animieren von Charakteren über die Knochen) realisiert.
Als absolute Grundlage für ein Spiel mit der OpenGL würde ich die Version 1.3 sehen - denn hier kann man die Beleuchtung schon richtig gut implementieren und diese trägt enorm zu der Gesamtstimmung eines Spiels bei. Es ist aber kein Problem das Spiel später auf einem Rechner laufen zu lassen der nur eine ältere OpenGL-Version hat - es genügt im Programm auf "#define GL_VERSION_1_3 1" abzufragen. Wie das in JOGL realisiert ist, weiß ich allerdings nicht. --StefanGaffga
Programmierung von OpenGL #
Auf http://opengl.org gibt es einige Doku zum Thema. Darüberhinaus kann man das NeHe-Tutorial empfehlen.
OpenGL in Java #
Auf der Seite JavaGrafik stehen einige Bemerkungen hierzu.
OpenGL unter Python #
- Python OpenGL in der Uni Oldenburg
- kurzes Tutorial (Handbuch)
- Leuchtturmtest Demo (begleitend zum Handbuch)
- Geschwindigkeitstest verschiedener Darstellungsformen
- Möblieren mit OpenGL - siehe Anmerkungen
- PyOpenGL-Dokumentation
- Texturen erstellen mit Gimp
- Crystal Space
- Panda3D
- OOMadness