• Keine Ergebnisse gefunden

Aufgabe2(Raytracing, 14Punkte ) Aufgabe1(Raytracing, 6Punkte ) AbgabeamMontag,dem21.05.2007,13:00Uhr ¨UbungenzuComputergraphikII-Blatt2

N/A
N/A
Protected

Academic year: 2021

Aktie "Aufgabe2(Raytracing, 14Punkte ) Aufgabe1(Raytracing, 6Punkte ) AbgabeamMontag,dem21.05.2007,13:00Uhr ¨UbungenzuComputergraphikII-Blatt2"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. G. Zachmann

R. Weller

TU Clausthal Institut f¨ur Informatik

7. Mai 2007

Sommersemester 2007

Ubungen zu Computergraphik II - Blatt 2 ¨

Abgabe am Montag, dem 21. 05. 2007, 13:00 Uhr

Aufgabe 1 (Raytracing, 6 Punkte )

Wir haben das mittlerweile wohlbekannte Raytracing-Framework um eine Funktion zum Laden von Dreiecksnetzen erweitert. Dazu wird dasOBJ-Format verwendet. Auf der Vorlesungshomepage finden Sie einen Link zu einer genaueren Beschreibung dieses Formats, was f¨ur das L¨osen dieser Aufgabe allerdings nicht von Bedeutung ist. Die Dateienspaceship.xmlundchicken.xmlenthalten Szenen mit solchen Dreiecksnetzen.

Implementieren Sie in der FunktionTriangle::intersect()inTriangle.cppeinen Strahl-Dreieck- Schnittest.

Hinweis: Schauen Sie sich in Ihren Computergraphik-I-Unterlagen noch einmal das Kapitel ¨uber baryzentrische Koordinaten an.

Aufgabe 2 (Raytracing, 14 Punkte )

Implementieren Siezwei(7+7 Punkte) der folgenden Methoden des Distribution Ray Tracings:

(i) Antialiasing (ii) Weiche Schatten (iii) Tiefensch¨arfe (iv) Spekulare Reflexion

odereine(14 Punkte) dieser Distribution Ray Tracing-Techniken:

(v) Effiziente Soft Shadows (vi) Motion Blur

Hinweise:

zu (i): Generieren Sie in der FunktionRaytracer::render()statt lediglich eines Strahls pro Pixel, mehrere Strahlen, und mitteln Sie das Ergebnis.

zu (ii): Verfolgen Sie in der Raytracer::shade()mehrere Schattenstrahlen. Gehen Sie dabei von einer festen Gr¨osse der Lichtquelle aus. (Wenn Sie viel Zeit und Lust haben, d¨urfen Sie das Framework nat¨urlich auch gerne um eine flexible Klasse f¨ur Fl¨achenlichtquellen erweitern, bei der man die Gr¨osse variabel einstellen kann. Wenn Sie eine solche Klasse implementieren, m¨ussen Sie keine zweite Distribution Ray Tracing-Technik mehr implementieren, um volle Punktzahl f¨ur diese Aufgabe zu erhalten).

1

(2)

zu (iii): Generieren Sie in der FunktionRaytracer::render()statt lediglich eines Strahls pro Pixel mehrere Strahlen und mitteln Sie das Ergebnis. Auch hier gilt: Nat¨urlich d¨urfen Sie das Framework auch gerne um eine KlasseLensCameraerweitern. Wie bei dem Algorithmus f¨ur weiche Schatten m¨ussen Sie in diesem Fall keine zweite Technik mehr implementieren.).

zu (iv): Generieren Sie in der FunktionRaytracer::traceRay()mehrere reflektierte Strahlen und addieren Sie die einzelnen Beitr¨age gem¨aß dem Phong-Modell auf.

zu (v): Erweitern Sie die FunktionRaytracer::shade()um das Verfahren f¨ur effiziente Soft Sha- dows. Sie k¨onnen hier von einer festen Gr¨osse der Lichtquellen ausgehen.

zu (vi): Erweitern Sie die einzelnen geometrischen Objekte um einen Start- und Zielpunkt und legen Sie eine Zeit fest, die diese Objekte f¨ur diese Strecke ben¨otigen (Bei Kugeln k¨onnen Sie beispielsweise Start- und Zielposition des Mittelpunktes angeben. Die Dreiecksnetze k¨onnen mittels der FunktionmoveTo()bewegt werden). W¨ahlen Sie inRaytracer::render()einen zuf¨alligen Zeitpunkt f¨ur jedes Pixel, und interpolieren Sie die Bewegung linear zwischen Start- und Zielpunkt.

Auf der Vorlesungshomepage steht ein neues Framework mit den oben beschriebenen Erweiterungen bereit. Dieses Framework enth¨alt noch keine Funktionalit¨at zur Berech- nung der gebrochenen Strahlen, der reflektierten Strahlen, usw...., da dieses Bestandteil des 1. ¨Ubungszettels war, dessen Abgabe bekanntlich auf kommenden Donnerstag ver- schoben wurde. An diesem Donnerstag wird es durch ein neues Framework ersetzt, welches auch die L¨osungen des 1. ¨Ubungszettels enth¨alt. So k¨onnen auch Gruppen, die den ersten ¨Ubungszettel nicht gel¨ost haben, den 2. ¨Ubungszettel bearbeiten.

Schauen Sie sich das neue Framework bitte VOR! der n¨achsten ¨Ubungsstunde genau an, so dass Sie dort dann eventuelle Fragen formulieren k¨onnen.

2

Referenzen

ÄHNLICHE DOKUMENTE

Kann man mit der Breitensuche (Algo- rithmen 3.2 und 3.3) auch einen (gerichteten, einfachen, schwach Zusammenh¨ angenden) Graphen G = (V, R) in einen Wald aus Wurzelb¨ aumen

Eine Kamera sammelt Licht über einen endlichen Zeitraum hinweg (Belichtungszeit). Dies führt

 Zentrale Idee: ersetze ausgedehnte Lichtquelle und Objekte mit harten Kanten durch Punktlichtquelle und Objekte mit weichen Kanten.. bei Bbox-Berechnung).  Macht Ray-Tracing

Die Methode intersect() der BDSen wird anstelle der momentan verwendeten intersect()- Methode von SurfaceList aufgerufen und soll nat¨ urlich den Schnitt des Strahls mit dem

Per default werden in OpenGL die Farbwerte in einer Textur mit den entsprechenden Farbwerten der Fragmente multipliziert (GL_MODULATE).. Verwenden Sie die OpenGL-Routine glTexEnv um

b) Erzeugen Sie mittels eines Vertexshaders einen Morphingeffekt zwischen der Geometrie eines Ob- jektes und einer Kugel. Interpolieren Sie dazu, in Abh¨ angigkeit von der Zeit,

Verwenden Sie eine Funktion f¨ ur die Umwandlung der Buchstaben, welche einen Buchstaben und den Verschiebewert k als Parameter erh¨ alt und den verschl¨ usselten Buchstaben als

Schreiben Sie ein Programm, das ein Labyrinth als array ([y Dimension][x Dimension]) nach Bild A enth¨ alt und eine Funktion druckeLabyrinth benutzt, um das Labyrinth auf dem