Im Rahmen der siebten Einsendeaufgabe soll eine Szene mit mindestens drei, sich überschneidenden Grundkörpern erstellt und deren Tiefe visualisiert werden.

Innerhalb der Anwendung sind eine Kugel, welche von einem sich drehenden Torus umgeben ist, sowie ein Kegel zu sehen, der sowohl den Torus als auch die Kugel durchsticht. Um das Bild etwas interessanter zu machen, wurde die Grundseite des Kegels auf einer Achse gestreckt. Die Tiefe der Körper wird durch den Helligkeitswert des Grautons visualisiert. Hierbei ist der Ton umso dunkler, je näher ein Körper der Kamera kommt.

Durch Bewegen in der Horizontalen oder Vertikalen (Tasten ADWS) sowie mit Drehbewegungen (Pfeiltasten) ändert sich die Grauwerte je nach Ausrichtung. Ein Zoomen hat hingegen hier keine Auswirkung.

Bei starker Neigung sieht man zum einen die nicht sichtbaren Rückseiten im innern des Kegels als Netzlinien vor der Kugel. Zum anderen erkennt man die Grenzen der Berechnung. Hier werden keine Farben gesetzt, weshalb die Bereiche schwarz erscheinen. Über die weiter unten sichtbare Checkbox kann die Animation der Szene ein- und ausgeschaltet werden.

Der gesamte Code kann auf GitHub eingesehen werden . Als externe Bibliothek zur Berechnung der Matrizen und Vektoren kommt glMatrix zum Einsatz.

Folgende Tastenaktionen sind möglich:

  1. Die Kamera kann mit den Pfeiltasten um die Szene bewegt werden
  2. Die Tasten w, s, a, d bewegen die Kamera nach oben, unten, rechts und links
  3. Die Tasten z, Z (shift-z) zoomen in bzw. aus dem Bild heraus
  4. Die Tasten n, N (shift-n) verringern bzw. vergrößern den Radius beim Kreisen der Kamera

Projektionstyp: