Computergrafik-Uebung

Beleuchtung

?

Spezifizieren Sie die Oberflächennormale $\vec{n}$ der analytischen Funktion $f(x,y)$ als Vertexattribut bzw. Normalenarray.

Shot0

Die Normale $\vec{n}$ am Punkt $\vec{p}$ läßt sich mittels finiter Differenzen berechnen (für kleine $\Delta_x,\Delta_y$):

$ \vec{n} = \frac{\vec{n_0}}{|\vec{n_0}|}, \quad \vec{n_0} = \left( \begin{array}{c} \frac{f(\vec{p}-\Delta_x,\vec{p})-f(\vec{p}+\Delta_x,\vec{p})}{2\Delta_x} \\ \frac{f(\vec{p},\vec{p}-\Delta_y)-f(\vec{p},\vec{p}+\Delta_y)}{2\Delta_y} \\ 1 \end{array} \right)$

Schalten Sie eine direktionale Lichtquelle an und realisieren Sie damit eine ambiente und diffuse Beleuchtung, zum Beispiel ein blaues Headlight.

Options: