prev up inhalt next

Programmbeispiele

Auf den folgenden Seiten werden einige durch deutsche Kommentare erweiterte OpenGl-Beispiele vorgestellt, die alle dem bei Addison-Wesley erschienenen Buch OpenGL Programming Guide entnommen wurden. Das Copyright für diese Programme liegt bei der Firma Silicon Graphics. Aus Platzgründen wurde auf eine explizite Wiederholung der Copyright-Klausel im jeweiligen Quelltext verzichtet. Eine komplette Sammlung aller Beispiele findet sich unter http://trant.sgi.com/opengl/examples/redbook/redbook.html .
hello.c
zeigt in Orthogonalprojektion ein rotes Rechteck auf blauem Hintergrund. Es wird zunächst um eine Einheit in x-Richtung verschoben und danach um 45 Grad gedreht.
wire-cube.c
zeigt in perspektivischer Projektion einen gelben Drahtgitterwürfel vor blauem Hintergrund. Der Würfel ist um 5 Einheiten nach hinten verschoben, in y-Richtung um den Faktor 1.5 skaliert und um 30 Grad bzgl. der y-Achse gedreht.
wire-prop-cube.c
zeigt in perspektivischer Projektion einen gelben Drahtgittelwürfel vor blauem Hintergrund. Die Kamera wurde um 5 Einheiten nach hinten verschoben. Bei Verändern des Ausgabefensters durch den Benutzer wird die Funktion reshape aufgerufen, die eine Neuberechnung des Viewports durchführt.
click.c
zeigt die Interaktion durch die Maus für den Farbwechsel eines Dreiecks. Die globale Variablen g wird durch den linken Maus-Button auf 1, durch den rechten Mausbutton auf 0 gesetzt. In der Funktion display wird dadurch entweder ein gelb oder ein rot erzeugt.
key.c
zeigt die Interaktion durch die Tastatur für den Farbwechsel eines Dreiecks. Die globalen Variablen r,g und b werden durch Betätigen der gleichnamigen Tasten entsprechend gesetzt. In der Funktion display wird dadurch das RGB-Tripel auf rot, grün oder blau gesetzt.
planet.c
zeigt die Interaktion durch die Tastatur für das Fortschalten einer Rotationsbewegung. Durch Drücken der d-Taste wird die Rotation der Erde um sich selbst um 10 Grad angestoßen, durch Drücken der y-Taste wird die Rotation der Erde um die Sonne um 5 Grad angestoßen.
smooth.c
zeigt ein Dreieck mit Farbverlauf. Erreicht wird dies im Smooth-Shading-Modus durch Interpolation von RGB-Werten, welche an den Ecken des Dreiecks vorgegeben sind.
list.c
zeigt eine Anwendung von Display-Listen. Unter dem Namen listName wird ein rotes, gefülltes Dreieck zusammen mit einer Translation hinterlegt. Ein wiederholter Aufruf dieses Namens erzeugt eine Sequenz von nebeneinander platzierten Dreiecken.
bezier-curve.c
zeigt eine durch vier zwei-dimensionale Kontrollpunkte definierte Bezier-Kurve. Zur besseren Sichtbarkeit werden die Kontrollpunkte mit 5-facher Stärke platziert. Die Kurve entsteht durch Auswertung eines Evaluators längs eines von 0 nach 1 in 30 Schritten wandernden Parameters.
bezier-surface.c
zeigt ein durch 16 drei-dimensionale Kontrollpunkte definiertes Bezier-Gitter. Das Gitter entsteht durch Auswertung eines Evaluators längs eines von 0 nach 1 in 8 Schritten und von 0 nach 1 in 30 Schritten wandernden Parameters.
teapot.c
zeigt den klassischen Utah-Teapot in photo-realistischer Projektion. Berücksichtigt werden Reflektionskoeffizienten für diffuses und spekulares Licht, erzeugt von einer Lichtquelle.
teapot-rotate.c
zeigt den klassischen Utah-Teapot in Bewegung. Erreicht wird dies durch eine 1-Grad-Drehung in der Funktion display, welche immer dann aufgerufen wird, wenn keine anderen Events zur Abarbeitung anstehen (Registrierung durch glutIdleFunc).
hello.c: Rotes Quadrat, gedreht und verschoben, auf blauem Hintergrund

wire-cube.c: Perspektivische Projektion eines Drahtgitterquaders, ohne Reshape

wire-prop-cube.c: Perspektivische Projektion eines Drahtgittelquaders, mit Reshape

click.c: Interaktion durch Maus zur Farbwahl

key.c: Interaktion durch Tastatur zur Farbwahl

planet.c: Interaktion durch Tastatur zur Rotationsbewegung

smooth.c: Dreieck mit Farbverlauf durch Interpolation

list.c : Dreiecke definiert durch Display-Liste

bezier-curve.c: zweidimensionale Bezier-Kurve

bezier-surface.c : dreidimensionale Bezierkurve

teapot.c: Teekanne mit Beleuchtung

teapot-rotate.c: rotierende Teekanne


prev up inhalt next