Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog RSS

Aufgabe 1: Raytracer mit interaktiver Drehung

Schreiben Sie ein Java-Programm mit grafischer Ausgabe und einem interaktiv zu betätigenden Schiebegregler. Das Programm soll eine 3D-Szene aus zwei Würfeln perspektivisch auf dem Bildschirm darstellen. Mit dem Schieberegler soll die Szene um eine vertikale Achse gedreht werden.

Gehen Sie so vor:

Definieren Sie eine Klasse für Dreiecke mit folgenden Instanzvariablen: (x, y, z)-Koordinaten für jeden Eckpunkt, RGB-Werte für die Farbe des Dreiecks.

Legen Sie ein Array oder eine Liste aus Referenzen auf Dreieck-Objekte an, sodass insgesamt die Oberflächen zweier Würfel entstehen. Deren Größe und Anordnung im Raum ist Ihnen überlassen. Verwenden Sie pro Würfelfläche zwei Dreiecke; färben Sie jede Würfelfläche in sich einheitlich, aber die Würfelflächen voneinander verschieden.

Lassen Sie auf die (x, y, z)-Koordinaten die mit dem Schieberegler eingestellte Drehung wirken.

Geben Sie das Ergebnis per Raytracing aus der linearen Perspektive einer Kamera aus. Jedes Dreieck soll dabei einheitlich in der für es abgespeicherten Farbe gefärbt sein. Backface Culling ist nicht nötig, 3D-Clipping ebenfalls nicht. Generieren Sie per Raytracing Schatten passend zu einer Lichtquelle (Richtungslicht = parallele Strahlen), die relativ zur Kamera fest steht.

Beispiele für funktionale Ergänzungen, um vier Punkte für das Programm zu erreichen: