|
Gewelltes Wasser |
|
Bumpmaps im Allgemeinen
Bumpmaps sind fast genau dasselbe, wie Texturen. Nur, dass die Oberfläche hier nicht mit einer Farbe belegt wird, sondern
mit einer Struktur. Dabei wird der Normalenvektor auf die Oberfläche abhängig von der Position im Raum verändert. Obwohl die
Objektoberfläche in Wirklichkeit völlig glatt ist, hat die Oberfläche an verschiedenen Punkten eine verschiedene Ausrichtung.
Dadurch kann man z.B. Wasserwellen erzeugen, ohne den Rechenaufwand dabei wesentlich zu erhönen (wenn man die Wasserwellen
z.B. als Funktionsplot darstellen würde, würde die Rechenzeit direkt wahnsinnig lang werden).
Da die Bumpmaps den Texturen so ähnlich sind, habe ich sie auch fast genauso implementiert. Außerdem benutzen Bumpmaps und Texturen
dieselben Modifiers. Damit kann man theoretisch Bumpmaps skalieren, rotieren und verschieben, und sie insbesondere mit Turbulenz
verwirbeln. Das Rotieren sollte man allerdings besser weglassen; da muss ich mir nämlich nochmal genauer überlegen, was man vorher und
hinterher mit dem Normalenvektor so alles machen muss, bis das richtig funktioniert.
[nach oben]
|
|
Bumpmap Basisalgorithmus: Wasserringe |
|
Basisalgorithmus: Wasserringe
Hierbei wird der Normalenvektor abhängig vom Abstand zum Mittelpunkt so verändert, dass diese Ringe entstehen. Dabei lässt man die y-Komponente
unverändert und addiert auf die x- und z- Komponente die Komponenten eines Vektors, der in der xz-Ebene vom Mittelpunkt weg zeigt, und
dessen Länge im Wesentlichen der Sinus des Abstandes zu Mittelpunkt ist. Danach muss man den Normalenvektor natürlich wieder auf Einheitslänge
bringen. Die Wasserringe werden auch nach außen gedämpft, das heißt, die Intensität nimmt nach außen exponentiell ab.
[nach oben]
|
|
Bumpmap Basisalgorithmus: Sinus |
|
Basisalgorithmus: Sinus
Hier addiert man auf x- y- und z- Komponente des Normalenvektors jeweils den Sinus der entsprechenden Komponente.
Dieser Algorithmus eignet sich dazu, um mit etwas Turbulenz eine gekräuselte Wasseroberfläche darzustellen, allerdings auch nur
bedingt. Am besten ein wenig ausprobieren.
[nach oben]
|