prev up next


Aufgabe 9.1 (10 Punkte)

Machen Sie sich mit der erweiterten Funktionalität der Klasse Geometry vertraut. Das Vertexlayout kann nun dynamisch festgelegt werden. Dazu dienen die Methoden addVertexAttribute(...) und clearVertexAttributes(). Die erste Methode muss für jedes Attribut aufgerufen werden. Die Reihenfolge ist dabei entscheidend. Beispielsweise erzeugen folgende Aufrufe das Layout von Aufgabe 8.1.

Beachten Sie, dass insbesondere das Attribut stride der Methode glVertexAttribPointer(...) automatisch berechnet wird.

Erweitern Sie das Programm um das Vertexattribut ATTR_TEX, welches an die in Variable texCoords des Vertexshaders gebunden wird.

Implementieren Sie die Methode createSphere(float r, int n, int k) der Klasse GeometryFactory, sodass sie Vertices des folgenden Layouts erzeugt.

\begin{displaymath}
\left\{ p_{x},\, p_{y},\, p_{z},n_{x},\, n_{y},\, n_{z},\, t_{s},\, t_{t}\right\}
\end{displaymath}

Hierbei sind $\left(\begin{array}{c}
p_{x}\\
p_{y}\\
p_{z}
\end{array}\right)$ die Koordinaten, $\left(\begin{array}{c}
n_{x}\\
n_{y}\\
n_{z}
\end{array}\right)$ die Normale und $\left(\begin{array}{c}
t_{s}\\
t_{t}
\end{array}\right)$ die Texturkoordinaten des Vertex.

/home/cg/2012/Uebung/Blatt9/Lsg/CG12Blatt9.zip


prev up next