Aufgabe 4.1 (25 Punkte)
Laden Sie sich das Projekt von
/home/cg/2012/Uebung/Blatt4/Aufg/CG12Blatt4.zip
und
binden Sie es in Ihre bevorzugte Entwicklungsumgebung ein. Öffnen
Sie die Klasse main.TranslateNGon. Diese soll folgende Features
bereitstellen:
- Es sollen die Ecken eines regelmäßigen 12-Ecks als Punkte auf dem
Bildschirm dargestellt werden.
- Der Benutzer soll die Möglichkeit haben, das 12-Eck mittels der Tasten
, , und zu translatieren.
Punkt 1.) ist bereits implementiert.
- Erweitern Sie die Klasse um eine Klassenvariable translation
vom Typ org.lwjgl.util.vector.Vector3f, in der die aktuelle
Translation des 12-Ecks vermerkt ist.
- Füllen Sie die Methoden handleInput() und updateUniforms(),
in denen folgendes passieren soll:
- In handleInput() soll geprüft werden, ob die Tasten ,
, oder gedrückt sind und die Variable translation
entsprechend verändert werden.
- In updateUniforms() soll aus der Variable translation
eine Translationsmatrix erzeugt werden und diese als uniform
Variable translate dem Shaderprogramm übergeben werden.
- Verändern Sie den Vertexshader MainT_VS.glsl, sodass er
eine uniform Variable translate vom Typ mat4
bereitstellt und mit dessen Hilfe die Position des Vertex verändert.
Musterlösung vom 23.05.2012:
Die Quellen finden sich hier:
/home/cg/2012/Uebung/Blatt4/Lsg/CG12Blatt4.zip