Sven Forstmann, Andreas Schuster, Malte Pätsch, …

AQUARICON

Virtuelles 3D Enviroment

Aquaricon

Aquaricon

Inhaltliche Beschreibung

Zuerst werden die Fische zufällig im Aquarium verteilt und mit ebenfalls zufälligen Bewegungsvektoren versehen. Anhand dieser Vektoren können noch zwei weitere berechnet werden, die dann ingesamt die Basis bilden, um den Fisch darstellen zu können: Der erste Vektor liefert x, y und z.
Der 2. Vektor ist der 1. Vektor um 90° nach rechts (in der x-z-Ebene) gedreht, mit y=0. Der 3. Vektor ergibt sich jetzt aus dem Kreuzprodukt der ersten beiden Vektoren. Alle diese Vektoren zusammen bilden nun die Basis (d.h. Transformationsmatrix), die notwendig ist, um den Fisch darzustellen. Sie werden vorher normalisiert, damit der Fisch seine normale Größe behält. Der Fisch wird, nachdem er anfangs angestoßen
wurde, nun kontinuierlich langsamer, was echten Fischen nachempfunden wurde. Falls er stehen bleibt bzw. zu langsam wird, wird er erneut angestoßen. Damit die Fische nicht nur geradeaus schwimmen, wird ihnen zusätzlich noch eine zufällige Zielposition vorgegeben, auf die sie versuchen, zuzuschwimmen. (Der Bewegungsvektor wird während
des Schwimmens entsprechend angepaßt). Falls ein Fisch nun einem anderen zu nahe kommt, versuchen die Fische, sich gegenseitig auszuweichen. Zusätzlich wurden noch Prioritäten integriert, so dass die kleineren den größeren Fischen ausweichen müssen. Damit die Fische nicht allzuweit aus der Sicht des Betrachters verschwinden, ist der
Bewegungspielraum auf die Sichtpyramide und eine maximale z-Koodinate begrenzt. Eine andere Sache, die ebenfalls der Natur nachgebildet wurde, ist das Schwarmverhalten (im Aquarium die Guppys). Dies wurde so gelöst, dass der Schwarm einen Anführer hat, dem alle anderen Fische versuchen zu folgen.