Computergrafik-Uebung

Tesselierung

?

a) Stellen Sie die Funktionswerte der Funktion

$\displaystyle{ f(x,y) = \frac{50(sin(\frac{x}{20})cos(\frac{y}{20})+2)}{3+(x^2+y^2)^{0.4}} \cdot }$
$\displaystyle{ \cdot (2+sin(\frac{\sqrt{x^2+y^2}}{5}))+\frac{\sqrt{x^2+y^2}}{20} }$

auf dem Bereich [−100,100]x[−100,100] als Höhenwerte dar. Verwenden Sie dazu das Programm gnuplot mit dem Befehl:

splot [-100:100][-100:100] f(x,y)

b) Verwenden Sie Quads zur Darstellung des Funktionsplots mit OpenGL.

Tasten Sie dazu die Funktion zeilen- und spaltenweise alle 2 Einheiten auf dem Bereich [−100,100]x[−100,100] ab. Pro Abtastpunkt soll ein Quad erzeugt werden.

Hinweis: Transformieren Sie die xy-Ebene der Funktion durch Rotation um die X-Achse in die XZ Ebene von OpenGL.

c) Legen sie die Abtastpunkte in einem Vertex-Array ab. Verwenden Sie ebenfalls ein entsprechendes Array für die Farbe, deren RGB-Komponenten Sie jeweils durch eine geeignete lineare Abbildung aus den Funktionswerten berechnen (z.B. $\frac{1}{25}f(x,y)$).

c) Verwenden Sie Quad- oder Triangle-Strips.

Hinweis: Verwenden Sie nur einen einzigen Strip zur Darstellung des gesamten Funktionsbereiches mittels Punktverdoppelung.

tessel shot1 tessel shot2

Zusatzaufgabe: Nebeleffekt einschalten.

Options: