• Keine Ergebnisse gefunden

Aufgabe2(Texturkoordinaten, 15Punkte ) Aufgabe1(TextureMapping, 5Punkte ) AbgabeamMontag,dem21.06.2007,13:00Uhr ¨UbungenzuComputergraphikII-Blatt4

N/A
N/A
Protected

Academic year: 2021

Aktie "Aufgabe2(Texturkoordinaten, 15Punkte ) Aufgabe1(TextureMapping, 5Punkte ) AbgabeamMontag,dem21.06.2007,13:00Uhr ¨UbungenzuComputergraphikII-Blatt4"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. G. Zachmann

R. Weller

TU Clausthal Institut f¨ur Informatik

15. Juni 2007

Sommersemester 2007

Ubungen zu Computergraphik II - Blatt 4 ¨

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

Aufgabe 1 (Texture Mapping, 5 Punkte )

Auf der Vorlesungshomepage finden Sie das Framework zum aktuellen Aufgabenblatt. Starten Sie das Framework und laden Sie die Dateihand/hand.obj bzw.Mann/ben.obj. Es stehen sowohl die Normalen als auch Texturkoordinaten incl. Textur(en) f¨ur die Objekte zur Verf¨ugung gestellt. Per default werden in OpenGL die Farbwerte in einer Textur mit den entsprechenden Farbwerten der Fragmente multipliziert (GL_MODULATE).

Verwenden Sie die OpenGL-RoutineglTexEnvum die Kombinationsart von Fragment- und Textur- farben zu ¨andern. Testen sie die Modi GL_REPLACE, GL_BLEND und GL_ADD. GL_BLEND interpoliert zwischen der Fragmentfarbe und einer Konstante die mit GL_TEXTURE_ENV_COLOR ver¨andert wird.

Der Aufruf vonglTexEnvsollte in der KlasseGLwidgetin der RoutineinitializeGL()erfolgen.

Aufgabe 2 (Texturkoordinaten, 15 Punkte )

Im Unververzeichnismodels des Frameworks finden Sie einige Meshes. Die Dateien enthalten keine Texturkoordinaten. Erg¨anzen Sie die Routinen

• generateSphereTexCoords()und

• generateCylinderTexCoords()

die f¨ur ein beliebiges Mesh eine Kugel- bzw. Zylinder-Parametrisierung generieren. W¨ahlen Sie als Ursprung fur die Parametrisierung die Mitte der BoundingBox, abzufragen ¨uber die Instanzvariablen bminundbmaxder KlasseMesh. Testen Sie die Routinen mit den Texturen ausdata/textures/.

Texturiert man z.B. eine Ebene mit der Texturcheckerboard.png, hat man nur ein 2x2 Feld. ¨Andern Sie die obigen Routinen so ab, dass mehr Felder dargestellt werden, z.B. 10x20, ohne die Bilddatei selbst zu ¨andern.

1

Referenzen

ÄHNLICHE DOKUMENTE

Erweitern Sie das Framework dahingehend, dass das Histogram Equalization f¨ ur alle Komponenten des HSV- und RGB-Raumes berechnet wird. Hierf¨ ur m¨ ussen Sie

Vergleichen Sie die lineare, binäre und exponentielle Suche sowie Interpolation Search miteinander. Implementieren Sie dazu die Suchalgorithmen in Python und fügen Sie

b) Erweitern Sie die Methode void GLWidget::drawCube(), so dass ein W¨ urfel mit ausgef¨ ullten Seiten- fl¨ achen gezeichnet wird. Jede Seitenfl¨ ache soll eine andere Farbe haben.

Nehmen wir nun an, wir h¨atten einen Monitor, dessen Pixel keinen RGB-Wert entgegennehmen, sondern eine Frequenz (wieder pro Frame). jeder Pixel ist eine frei konfigurierbare

Beim Zur¨ uckwechseln in den STATE_FREELOOK -Modus sollen die Spotlights, wieder in einer kurzen Animation, in ihre urspr¨ ungliche Lage zur¨ uck gefahren werden. Wie man

In der Funktion Raytracer::render() werden die Strahlen f¨ ur die einzelnen Pixel erzeugt und mittels der Funktion Raytracer::traceRay() durch die Szene verfolgt.. Die von Ihnen zu

zu (iii): Generieren Sie in der Funktion Raytracer::render() statt lediglich eines Strahls pro Pixel mehrere Strahlen und mitteln Sie das Ergebnis. Auch hier gilt: Nat¨ urlich d¨

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