Filter
Zunächst wundern Sie sich nicht, dass die diversen Filter hier alle in einem Dokument beschrieben sind. Es handelt sich dabei um ein und dasselbe Objekt, aufgerufen nur mit jeweils verschiedenen Einstellungen.
Wie von Parametern des Namens Stärke gewohnt, ist das ein allgemeiner Regler, der die Stärke des Filters reguliert.
Typ Distanzfeld (SDF)
Hier finden Sie die Typen für den Volumentyp Distanzfeld (SDF)beschrieben.
Beachten Sie, dass die Glättenfilter von ihren Einstellungen her für Distanzfeld (SDF), Nebel und Vektoren identisch sind und deshalb auch hier auftauchen.
Der Glättenfilter glättet die Voxelwerteübergänge.
Je nach negativem oder positivem Offset verschieben sich die Oberfläche nach innen bzw. außen.
Je nach positivem oder negativem Offset verschieben Sie die Außenfläche erst nach innen und dann um den gleichen Betrag nach außen (schließt z.B. Löcher und ebnet Details ein) bzw. erst nach außen und dann um den gleichen Betrag nach innen (verbindet nahe beieinander liegende Objekte).
Die Filter können sehr interessante Resultate ergeben. Deswegen gilt wie so oft: experimentieren Sie. Verwenden Sie z.B. Hair (das Haar-Objekt kann sowohl Splines als auch Polygone generieren) im Volumenerzeuger. Mit Hilfe der Filter können sich interessante Strukturen ergeben:
Zur Berechnung des aktuellen Voxels werden:
- Gauß: die benachbarten Voxelwerte anhand einer Gauß’schen Kurve herangezogen.
- Mittelwert: der Mittelwert der benachbarten Voxelwerte herangezogen (entspricht einem Rechteckfilter).
- Zentralwert: der Zentralwert (mittlerer Wert der geordneten Voxelwertliste) der benachbarten Voxelwerte herangezogen. Hierbei werden lokale Maxima (Spitzen) außer Acht gelassen.
- Durchschnittliche Krümmung (nur SDF): an jeder Position wird die durchschnittliche Krümmung ermittelt und angelegt. In der Realität verhalten sich z.B. Seifenhäute entsprechend. Damit lassen sich kleine Unebenheiten gut einebnen.
- Laplace-Fluss (nur SDF): Maxima werden mit wachsender Iterations-Anzahl bei weitgehend gleichbleibendem Volumen zunehmend abgebaut. Verhält sich ähnlich wie Durchschnittliche Krümmung.
Das ist alles ist eher unanschaulich. Da die Ergebnisse darüber hinaus oft ähnlich sind, bleibt nur zu sagen: probieren Sie aus, was bei Ihrer Szene die besten Ergebnisse bringt.
Dieser Wert kann nicht für alle Filtertypen eingestellt werden.
Er gibt an, wie viele Nachbarvoxel (in alle 6 Richtungen) in Form eines Kubus zur Werteberechnung des Einzelvoxels verwendet werden. Je größer der Wert, desto weiträumiger wirkt die Glättung.
Die Rechenzeit steigt mit zunehmenden Werten stark an!
Dieser Wert wird zu jedem Voxelwert addiert. Hier sind auch negative Werte möglich. Praktisch bedeutet das für die meisten Filtertypen: die Oberfläche wird angehoben bzw. abgesenkt.
Hier kann eingestellt werden, wie oft der Filter angewendet werden soll. Die Rechenzeit wird mit zunehmenden Wert natürlich länger und die Filterwirkung stärker.
Sie haben hier die Auswahl unter 5 Filtern. Diese definieren, wie genau oder präzise die Berechnungen erfolgen. Die 5 Filter sind geordnet: von oben nach unten nimmt die Präzision (damit auch die Rechenzeit) pro Typ (Bias oder Weno) zu. Testen Sie hier für sich, welcher Filter in welchem Anwendungsfall die besten Ergebnisse liefert.
Mit diesen beiden Einstellungen erzeugen Sie mehr Volumen, damit der Filter besser arbeiten kann. Es handelt sich dabei um die hier beschriebene Problematik. Beachten Sie die Hierarchie und Reihenfolge, in der der Filter in der Objektliste (Abarbeitung von unten nach oben!) des Volumenerzeugers angeordnet ist. Die Volumenvergrößerung erfolgt nur für das unter ihm liegende Volumenkonglomerat. In der Liste erst später folgende Objekte bleiben davon unbetroffen.
Allerdings werden mit Voxelbereich sowohl Voxelschichten unter, als auch über der ursprünglichen Oberfläche erzeugt. Im Volumenerzeuger kann das getrennt voneinander eingestellt werden, was zu schnelleren Berechnungen führen kann (was jedenfalls auch die empfohlene und präzisere Methode ist).
Typ Nebel
Der Glättenfilter glättet die Voxelwerteübergänge (s.o. bei "Distanzfeld (SDF)").
Dieser Filter multipliziert den aktuellen Voxelwert mit einem unten einzustellenden Multiplikator.
Dieser Modus spiegelt den Voxelwertebereich um das Wertemittel oder einen frei definierbaren Mittelpunkt.
Hiermit addieren Sie die Voxelwerte mit dem dann eingeblendeten Parameter Addieren.
Funktioniert wie der XPresso-Node Bereichswandler. Ein Voxelwertebereich wird linear in einen anderen Wertebereich konvertiert (s.u.).
Hiermit kann der Wertebereich im Gegensatz zur vorherigen Option nicht linear, sondern mit Hilfe eines Splines gewandelt werden.
Geben Sie hier die Werte für die oben beschriebenen Modi Multiplizieren und Addieren ein.
Für Typ Invertieren finden Sie diese beiden Parameter eingeblendet. Wertemittel finden ermittelt aus dem größten und dem kleinsten Voxelwert den Mittelwert, anhand dessen der Wertebereich gespiegelt wird. Deaktivieren Sie diese Option, um mit Spiegeln den Spiegelmittelwert frei einzustellen.
Wenn als Typ Bereichswandeln eingestellt wurde, wird der Voxelwertebereich durch einen neuen ersetzt (ähnlich wie der XPresso-Node Bereichswandler arbeitet). Mittels der Minimum- und Maximum-Werte können diese genau eingestellt werden.
Beispiel: es liegen z.B. diese 4 Voxelwerte vor: 0, 1, 4, 5.
- Geben Sie jetzt für Eingang Min. 0 und Eingang Max. 5, sowie Ausgang Min. 0 und Ausgang Max. 10, so ergäben sich 0, 2, 8, 10
-
Geben Sie jetzt für Eingang Min. 0 und Eingang Max. 5, sowie Ausgang Min. 2 und Ausgang Max. 8, so ergäben sich 2, 3.2, 6.8, 8
Die Voxelwerte werden also proportional auf den neuen Wertebereich übertragen.
Das ist immer dann praktisch, wenn ein Wertebereich inkompatibel zu einem anderen ist. Beispiel: Die Voxelwerte eines Gitters bewegen sich von 0.1-0.2. Ein Shader funktioniert beispielsweise am besten mit Werten von 0-100. Indem Sie genau diese 4 Werte eintragen, erhalten Sie das best mögliche Ergebnis.
Wenn als Typ Kurve eingestellt wurde, wird der Voxelwertebereich anhand dieses einzustellenden Splines (und nicht linear wie bei Typ Bereichswandeln) gewandelt.
Typ Vektor
Für den Volumentyp Vektor gibt es diese 6 Typen, die auf Volumenvektoren zuvor angeordneter Listeneinträge wirken:
- Glätten: gleicht die Vektorenrichtungen innerhalb Voxeldistanz aneinander an.
- Rotor: rechnet das vorhandene Vektorfeld in ein spezielles neues um (s.u. "Rotor").
- Normalisieren: setzt alle Richtungsvektoren auf die konstante Länge 1.
- Invertieren: dreht alle Richtungsvektoren um 180 Grad, damit drehen Sie die Wirkung also in entgegengesetzte Richtung.
- Skalierung: skaliert die Richtungsvektorlängen mittels eines mit Skalierung einstellbaren Wertes.
- Drehung: dreht alle Vektoren um eine einstellbare Achse (s.u. "Drehung").
Rotor
Der Typ Rotor (Engl. "Curl")) konvertiert die bestehenden Volumenvektoren in einer speziellen Weise. Dies im Detail zu erklären, würde zu weit in die Mathematik führen. Deshalb wird hier lediglich der Haupteinsatzzweck dieses Filters erwähnt: Er macht aus den Vektoren eines Zufallsfelds (Noise), die stets auf die Nullbereiche des Noise zielen – zu steuernde Partikel können dort stecken bleiben – Vektoren, die zu schleifenförmigen Bewegungen führen, die kreisen bzw. wirbelähnliche Bahnen ziehen (s.a. Kraftfeldobjekt).
In der Abbildung oben sehen Sie das ganz gut. Linker Hand bleiben die Partikel in bestimmten Bereichen stecken, während sie rechts immer weiter ziehen.
Drehung
Für den Typ Drehung wird jeder einzelne Vektor (stellvertretend für alle Vektoren pro Voxel) um die (im folgenden Abschnitt beschrieben) Achse gedreht.
Legen Sie hier die Drehachse ausgehend vom Objektkoordinatensystem des Volumenerzeugers fest. Bei Manuell kann ein eigener Vektor definiert werden:
Legen Sie hier den Vektor fest, der die Achsenrichtung, um die gedreht werden soll, festlegt. 1,0,0 stellt einen Vektor parallel zur X-Achse und 0,1,0 einen parallel zur Y-Achse dar. Bezugssystem ist das Objekt-Koordinatensystem des Volumenerzeugers.
Legen Sie den Winkel fest, um den die Vektoren gedreht werden sollen.
Skalierung
Für den Typ Skalierung gibt es folgende Einstellung:
Hiermit skalieren Sie die Richtungsvektorlänge. Gäben Sie hier -1 ein, entspräche das dem Typ invertieren.