# Blender Dokumentation: Fortgeschrittene Fluidanimationen

| <<<Zurück | ↑ Inhaltsverzeichnis ↑ |
* Diese Seite bezieht sich auf Blender v2.45

## Die Domain
### Die Basiswerte

Wenn man ein neues Objekt als Domain definiert (siehe vorheriges Kapitel Die erste Fluidanimation) erscheint eine Tabelle mit Werten. Im letzten Kapitel wurden diese Werte ziemlich allgemein besprochen. Hier werden wir sie uns genauer angucken.
1 Resolution: Die Resolution gibt die Auflösung der Fluidsimulation an. Sie ist standardmäßig auf 50 gesetzt, was zwar sehr schnell zu berechnen ist aber sehr unecht wirkt. Um ein möglichst realistisches Ergebnis zu erzielen sollte man also eine höhere Auflösung wählen. Man muss dabei aber bedenken, dass sich dadurch auch die Berechnungszeit erhöht. Meist wird eine Resolution von 100 - 160 gewählt, was recht realistische Ergebnisse ergibt.
2 Preview-Resolution: Die Preview-Res. (Abk. für Preview-Resolution, also die Vorschau-Auflösung) gibt an wie hoch die Auflösung im Vorschau- bzw. 3D-Fenster ist. Sie kann nicht höher als die Resolution gesetzt werden und sollte die Hälfte der Resolution sein, denn so kann man zwar noch die Fehler in der Berechnung erkennen aber die Rechenzeit ist deutlich kürzer (bei großen Simulationen).
3 Start time: Die Start time (dt.: Startzeitpunkt) gibt an wann die Berechnung starten soll und wird in Sekunden angegeben. Dies kann z.B. nützlich sein, wenn man ein Objekt erst mitten im Film benutzen möchte. Wenn man es z.B. erst nach 10 Sekunden "einfließen lässt" kann man viel Rechenzeit sparen wenn man die Startzeit auf 10 setzt.
4 End time: Die End time (dt.: Endzeitpunkt) gibt an wann die Berechnung enden soll. Auch sie wird in Sekunden angegeben. Sie kann nicht vor der Startzeit liegen und auch sie kann die Rechenzeit deutlich verkürzen. Wenn man z.B. einen 2 Minuten langen Film hat aber nur in den ersten 30 Sekunden die Flüssigkeit vorkommt, so lohnt es nicht sie auch für den Rest der Zeit zu berechnen. Folglich setzt man sie auf 30.
5 Disp. -Qual.: Gibt an mit welcher Qualität: 1. die Fluidsimulation im 3D Fenster dargestellt werden soll (Preview, Final oder Geometry) und 2. die Fluidsimulation beim Rendervorgang dargestellt werden soll (Preview, Final oder Geometry). Man sollte sie bei den Standardwerten lassen, weil man so eine niedrige Rechenzeit hat, aber das Ergebnis eine höhere Qualität hat. Final und Preview werden in 1. und 2. gesetzt, Geometry stellt den Umfang der Simulation als Kubus dar.
6 Pfad: Im Pfad wird angegeben wo die Berechnungsdaten gespeichert werden und ist standardmäßig /tmp. Man sollte für jede Simulation einen anderen Pfad wählen, weil sonst die Ergebnisse alter Simulationen gelöscht werden. Allerdings sollte man nach einiger Zeit, wenn man die Simulationsergebnisse nicht mehr braucht diese dann auch löschen, weil sie zum Teil viel Platz auf der Festplatte einnehmen.

### Advanced - Weitere Werte

Direkt unter Enable befinden sich drei Buttons mit den Aufschriften St, Ad und Bn (Standard, Advanced und Boundary). Beim Klick auf Ad (advanced) erscheint ein ein Menü mit neuen Werten.
Als erstes sieht man den so genannten Gravity-Vektor, der die auf das Wasser wirkende Gravitation beschreibt. Er steht standardmäßig auf X = 0; Y = 0; Z = -9.81 was unserer normalen Erdanziehung entspricht, nämlich 9,81 m/s².
Danach folgt ein Dropdown-Menü. Hier kann man die Viscosity einstellen, was vor allen Dingen Auswirkung auf die (Zäh-)Flüssigkeit des Materials hat.
So fließt Wasser besser als Honig, ist also flüssiger (viskoser). Im Menü kann zwischen 4 Werten ausgewählt werden: Wasser, Öl, Honig und manuell. Wenn man manuell auswählt, erscheinen zwei neue Wertefelder in die man Werte eingeben kann. Einmal Value, der bei Wasser auf Eins steht und der Negative Exponent, welcher bei Wasser bei 6 steht. Daraus ergibt sich die Formel für die Viscosity von Wasser: 1 x 10$^{-6}$ was in etwa 0,000001 ist.
Die Standardformel für den Flüssigkeitsgrad ist also: Value x 10^$^{-Neg-Exp.}$. Werte für das Material Öl sind beispielsweise: Value = 5 und Neg-Exp. = 5.
Andere Werte sind:
* Honig: V = 2; NE = 2
* geschmolzene Schokolade: V = 3; NE = 3
* Ketchup: V = 1; NE = 1
* geschmolzenes Glas: V = 1; NE = 0
Danach ist der Wert Realworld-size zu sehen. Er bestimmt die Größe der Domain im realen Leben, wobei die längste Seite ausschlaggebend ist. Wenn man zum Beispiel ein Waschbecken berechnen möchte setzt man Realworld-size in etwa auf 0.40 (entspricht 40cm). Möchte man aber zum Beispiel ein Hafenbecken berechnen, mit den Wellen vor den Schiffen, so sollte man den höchstmöglichen Wert (10) einstellen. Es ist jedoch zu beachten, dass die Rechenzeit mit der Größe der Realworld-size stark ansteigt. Dieser Wert beeinflusst das Verhalten der Animation so: im wirklichen Leben fallen kleine Wassertropfen anders (schneller) als z.B. ein ausgekippter Wassereimer aus dem dritten Stock. Um dieser physikalisch bedingten Tatsache Rechnung zu tragen, verändert sich zum Beispiel auch die Animationsgeschwindigkeit.
Darunter sieht man den Wert Gridlevel. Er steht standardmäßig auf -1, was sinnvoll ist, da so das Gridlevel automatisch ausgesucht wird.
Danach ist nur noch der Wert Compressibility zu sehen, der angibt, wie stark das Wasser unter dem Einfluss von Schwerkraft gestaucht werden kann.

### Boundary - Werte

Wenn man in den Boundary-Reiter geht sieht man als erstes drei Buttons auf den "Noslip", "Part" und "Free" steht. Mit ihnen wird festgelegt, wie stark die Flüssigkeit am Rand der Domain haftet. Noslip ist starke Haftung, bei Part erscheint ein weiterer Wert bei dem man die Haftung regeln kann (wobei 0 Noslip und 1 free entspricht) und free was bedeutet, das die Flüssigkeit gar nicht am Rand der Domain haftet.
Dann kommt eine ganze Reihe an Werten.
Der erste ist Tracer-Particles. Er hat nur eine Auswirkung, wenn in der Domain ein Particle Objekt existiert. Man kann Tracer-Particle als die "weißen" Wassertröpfchen ansehen, die zum Beispiel an Wasserfällen zu sehen sind.
Der nächste Wert, Generate Particles, generiert "echte" Wassertropfen, die direkt aus dem Fluidobjekt spritzen (z.B. beim tropfen auf ein feste Oberfläche). Dieser Wert ist allerdings erst nutzbar, wenn Surface Subdivision auf mindestens 2 gesetzt ist.
Jetzt kommt der Wert Surface Subdivision an die Reihe. Er bestimmt wie stark die Flächen das Fluidobjekts unterteilt werden sollen, ist also für eine größere Genauigkeit zuständig. Er steht standardmäßig auf 1 was bedeutet, dass die Flächen nicht mehr unterteilt werden. Man sollte ihn jedoch mindestens auf 2 setzen, weil so Wasserspritzer (siehe oben) generiert werden können, was die realistische Wirkung stark steigert. Man sollte jedoch auch beachten, dass die Rechenzeit mit der Erhöhung dieses Wertes stark ansteigt.
Surface Smoothing ist der nächste nächste Wert, der bestimmt wie weich die Oberfläche sein soll. 1.0 ist hier normal.
Als letztes gibt es noch einen Button für die Speedvektoren. Standardmäßig werden diese mitgespeichert um zum Beispiel Motionblur zu ermöglichen. Wenn man allerdings nicht vorhat, das Wasser mit Motionblur verschwimmen zu lassen, so lohnt es sich, die Speedvektoren abzuschalten, da so Rechenzeit und Speicher gespart werden können.

## Das Fluidobjekt

Generell können beliebig viele Objekte als Flüssigkeiten definiert werden. Ein Objekt wird einfach als Flüssigkeit definiert indem man es im Fluidfenster auf Fluid setzt.
Bei Fluidobjekten muss festgelegt werden wie sie initialisiert werden sollen. Dafür gibt es 3 Möglichkeiten. 1. Init Volume: Das Volumen des Fluidobjekts werden als Flüssigkeit initiiert (Objekt darf keine Löcher haben). 2. Init Shell: Die Hülle des Fluidobjekts wird als flüssig initiiert (Objekt darf Löcher haben). 3. Both: Fast wie Init Volume, nur dass auch die Hülle mit initiiert wird, somit ist das objekt größer (Objekt sollte keine Löcher haben).
Fluidobjekte haben noch einen anderen Wert, die "Startgeschwindigkeit". Diese wird als Vektor festegelegt. Man kann das Objekt auch als animiert definieren, was allerdings fast nur bei Inflow und Outflow Objekten oder Obstacles sinnvoll ist.

## Das Obstacle

Ein Obstacle (Hindernis) ist ein Gegenstand, durch den die Flüssigkeit nicht durchfließen kann.
Auch beim Obstacle muss festgelegt werden wie sie initialisiert werden sollen. Dafür gibt es 3 Möglichkeiten. 1. Init Volume: Das das Volumen des Obstacles wird als blockend initiiert (Objekt darf keine Löcher haben). 2. Init Shell: Die Hülle des Obstacles wird als blockend initiiert (Objekt darf Löcher haben, wenn Flüssigkeit drinnen ist wird sie auch von innen geblockt). 3. Init Both: Fast wie Init Volume, nur dass auch die Hülle mit initiiert wird, somit ist das Obstacle größer (Objekt sollte keine Löcher haben).
Außerdem gibt es wieder die drei Buttons auf denen "Noslip", "Part" und "Free" steht. Auch mit ihnen wird festgelegt, wie stark die Flüssigkeit am Rand des Obstacles haftet. Noslip ist starke Haftung, bei Part erscheint ein weiterer Wert bei dem man die Haftung regeln kann (wobei 0 Noslip und 1 free entspricht) und free was bedeutet, dass die Flüssigkeit gar nicht am Rand des Obstacles haftet.
Auch hier kann man das Objekt wieder als animiert definieren. Wenn es nur per IPO curve animiert wurde braucht man dies nicht, nur wenn es mit Shape Keys, Armatures oder anderen deformierenden Objekten animiert wird.
Außerdem kann man den Impact Factor setzen. Dieser gibt an, wieviel Flüssigkeit bei Kollision aus der Domain genommen wird, bzw. wieviel dazu kommt.

## Das Inflow Objekt

Das Inflow Objekt erfüllt die Funktion eines Wasserhahns. Die ganze Zeit läuft Flüssigkeit aus ihm heraus.
Auch hier beginnt je nach Setzen der Init Buttons der Zufluss.
Je nach Setzen der Vektoren fließt die Flüssigkeit in eine Startrichtung (wird jedoch natürlich sofort von der Gravitation beeinflusst).
Es ist nur sinnvoll den nächsten Button zu aktivieren, wenn sich das Objekt zum Beispiel dreht, weil sich so auch die Einflussrichtung relativ auf das Objekt bezogen ändert und nicht relativ zur Welt.
Als letztes kann man noch das Objekt als animiert definieren, was auch wie bei Obstacles nur Sinn bei Shape Keys, Armatures oder anderen deformierenden Objekten macht.

## Das Outflow Objekt

Das Outflow Objekt ist das genaue Gegenteil des Inflow Objekts. Es ist wie das Abflussloch in der Badewanne.
Hier kann man nur zwei Werte setzen, erstens wie das Objekt initialisiert werden soll und zweitens ob es mit Shape Keys, Armatures oder anderen deformierenden Objekten animiert ist.

## Particle

Mit Particle hat man die Möglichkeit, seine Flüssigkeit mit einem oder mehreren Partikelsystemen zu erweitern. Dabei muss der Pfad unten im Fenster genau dem bei Domain angegebenem Pfad entsprechen, da man sonst keine Ergebnisse bekommt.
Ganz oben sind drei Buttons zu sehen. Auf ihnen steht "Drops", "Floats" und "Tracer". Sie sind unabhängig voneinander, können also in Kombination aktiviert und deaktiviert werden.
* Drops: Wasserspritzer, die nur aus winzig kleinen Wassertropfen bestehen.
* Floats: Größere und schwerere Tropfen die schneller wieder ins Wasser fallen als die "Drops".
* Tracer: Wie der Sprühnebel eines Wasserfalls schweben diese Partikel über dem Wasser.
Alle drei Partikelarten werden als echte Partikel und somit als Halos dargestellt. Man kann auch ihre Materialfarbe im Material-Reiter ändern.
Als nächster Wert ist Size Influence zu setzen. Ist er auf null bleiben alle Partikel gleich groß. Ansonsten wird ihre z.B. je nach Wucht des Einschlages berechnet.
Außerdem gibt es noch den Wert Alpha Influence. Dieser bestimmt je nach Größe den Alphawert, also die "Durchsichtigkeit" der Partikel.
[Wenn du das Ordnungssystem mit den Zahlenpunkten im Bild aufnehmen willst, dann musst du es auch konsequent durchziehen. Es hat nämlich den Vorteil, das du nicht ständig im Text schreiben musst, was man auf dem Bild sieht. Das machen die Zahlen für dich. Auch brauchst du dann nicht mehr ständig «und dann und dann und dann» zu schreiben. Die Überschriften sagen ja schon, was kommt, die Zahlen weisen auf das Bild hin. Falls du Firefox hast, lade dir doch bitte das AddOn Wörterbuch (https://addons.mozilla.org/de/firefox/browse/type:3), dann klappt es auch besser mit der Rechtschreibung :-D ]