Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog
Aufgabe 2: Textur-Projektion, prozedurale Texturen
Schreiben Sie ein Java-Programm mit grafischer Ausgabe und einem interaktiv
zu betätigenden Schiebegregler, an dem man einen Winkel phi = 0°
... 180° einstellen kann. Das Programm soll das Dreieck mit den Eckpunkten
(200, 10, 100), (200, 200, 100), (10, 200, 100) generieren, um den Winkel
phi um seine vertikale Kante drehen und parallel projiziert auf dem Bildschirm
darstellen (Ursprung: linke obere Fensterecke).
Auf dem Bildschirm soll das Dreieck dabei mit einer Textur versehen
werden. Dabei soll der Benutzer zwischen der Projektion eines geladenen
Bilds oder einem prozeduralem Muster wählen können. Das Bild
soll von links parallel projiziert werden;
mit Hilfe von Kachelung soll es den ganzen Raum ausfüllen. Das prozedurale
Muster soll ein interpoliertes 3D-Gitterrauschen (lattice noise) mit einem
Gitterabstand von 20 Einheiten sein; das Rauschen soll Grauwerte zwischen
Schwarz und Weiß liefern.
Beispiele für funktionale Ergänzungen, um vier Punkte für
das Programm zu erreichen:
-
Bauen Sie die Texturierungsfunktionen in Ihr Programm für z-Puffer
oder für Raytracing ein. Die hier beschriebene vereinfachte Lösung
mit einem einzelnen drehbaren Dreieck ist dann nicht nötig.
-
Mischen Sie das Rauschen über mehrere Oktaven. Erzeugen Sie außerdem
aus den Grauwerten bunte Muster.
-
Erzeugen Sie ein 3D-Zebra-Marmor-Muster, indem Sie ein ein dreidimensionales
Muster aus schwarzen und weißen Streifen mit Rauschen lokal deformieren.
Tipp für das ungestörte Muster: Benutzen Sie zu dessen Herstellung
den gebrochenzahligen Anteil des Skalarprodukts aus dem Ortsvektor mal
einem festen Vektor.
Skizzen zum Funktionsprinzip und zum Aussehen siehe benachbarte Bilddatei
in diesem Verzeichnis.