Echtzeitgraphik VU WS 03/04

Gruppe Distortion

Mitrovic Dalibor 	9925385 532 mitrovic@ims.tuwien.ac.at
Rhemann Christoph 	9925853 932 chr_rhe@chello.at
Zeppelzauer Matthias    9926063 932 e9926063@student.tuwien.ac.at


Dokumentation

Effekte:

Im Vertex Programm haben wir zwei verschiedene Effekte implementiert. Der erste Effekt ist eine simple lineare Verzerrung. Die Vertices werden zu einem bestimmten Punkt hingezogen (abhängig von ihrer relativen Position zu einem Effektzentrum (kurz EZ). Dabei kommt es zu einer Kontraktion in der einen Richtung und einer Streckung in der anderen Richtung. Der zweite Effekt rotiert die Vertices in Form eines Twists (nicht linear) abhängig von ihrer relativen Position vom EZ einmal um 360°. (Um diesen Effekt zu sehen muss man die Kamera ein wenig drehen.)
Die Effekte werden nun doch direkt in Weltkoordinaten berechnet. Nach langem hin und her haben wir es schließlich geschafft, getrennte stacks für Model- und View-Matrix zu implementieren.
Bei beiden Effekten werden die Normalen verändert. Es sei angemerkt, dass die Normalen nicht "korrekt" sprich realistisch verändert sondern zur Lichtquelle gedreht werden, wodurch die Flächen heller werden die gerade vom Effekt beeinflusst sind.


Darüber hinaus ist per-fragmet lighting implementiert.

Für lange Winterabende ist im Vertex Programm der Sourcecode für per-vertex lighting enthalten, der hineinkommentiert werden muss. Man beachte, dass dann auch das Fragment Programm angepasst werden muss.

Bedienung:
Mit der Maus kann der Blickwinkel angepasst werden.
Mit F3 und F4 kann man Wireframe-Kugeln, die den Einflussbereich der Effekte darstellen ein und ausblenden.

Voraussetzungen:
- beliebeige GeForce FX Karte

Zur Inspiration dienten uns:
Lesson 47 von den nehe tutorials (Shaderanbindung)
sowie 
der per-fragmet lighting shader aus dem CG Tutorial Buch Seite 125
