Arbeiten mit SDF-Funktionen
In Version 16.0.0 hat Substance 3D Designer einen leistungsstarken Knotensatz für die Erstellung von SDF-Funktionen eingeführt, mit denen prozedurale 3D-Formen erstellt und bearbeitet werden können.
SDF-Funktionen sind Substance-Funktionsknoten, die in der Toolset verfügbare SDF-Graf kombinieren und auf dedizierte Parameter in Knoten angewendet werden, die SDF-Funktionen unterstützen.
Beachten Sie als Ausgangspunkt den grundlegenden Arbeitsablauf, der wie folgt aussieht:
- Erstellen Sie eine SDF-Funktion in einem 3D-Viewer-Knoten, um das Ergebnis zu visualisieren.
- Kopieren Sie den fertigen Funktionsknoten (oder instanziieren it) in den SDF-Funktion-Graf eines Knotens, der SDF-Funktionen unterstützt, wie z. B. Shape splatter v2.
Was ist eine SDF-Funktion?
Diese Funktionen haben viele Anwendungen in der Computergrafik, wie Zeichnungsflächen, Schatten-Wirf, Konturmaskierung, Kollisionserkennung und mehr.
In Substance 3D Designer werden SDF-Funktionen verwendet, um 3D-Formen auf prozedurale Weise zu erstellen und zu bearbeiten.
Ausgabe und beabsichtigte Verwendung einer SDF-Funktion
SDF-Funktion-Nodes geben einen einzelnen Gleitkommawert aus: der vorzeichenbehaftete Abstand zur nächsten Fläche.
Aber sie haben noch mehr zu bieten: sie intern die Werte von Variablen abrufen und festlegen, die die Hostknoten definieren und/oder wissen müssen, um die resultierenden Formen zu bearbeiten und zu zeichnen.
Dies bedeutet, dass diese Knoten im Kontext von Knoten verwendet werden müssen, die SDF-Funktionen unterstützen, da sie diese Variablen kennen und nativ integrieren.
Die Knoten enthalten Shape-Splatter v2 und 3D-Viewer.
Der Substance-Funktions-Graf
SDF-Funktion-Nodes sind für die Verwendung in speziellen Substance-Funktionsgraphen vorgesehen und sind daher nur in diesem Diagrammtyp verfügbar.
Knotenparameter, die als Funktion ausgedrückt werden sollen, verwenden einen ‘Edit function’-Button.
Was Sie über Substance-Funktionsdiagramme wissen müssen:
- Ähnlich wie Substance-Graphen sind Knoten-Connectors spezialisiert, d. h., sie können nur mit anderen Connectors von gleicher Farbe verbunden werden, die ihren Typ darstellen.
- Knoten haben keine Parameter, sie können nur Eingaben haben. (Mit einigen wenigen Ausnahmen)
- Das Diagramm hat einen einzelnen Ausgabeknoten. Klicken Sie mit der rechten Maustaste auf einen Knoten, und wählen Sie
Set as outputaus, um ihn als Ausgabeknoten festzulegen. - Ähnlich wie Substance-Graphen gibt es atomic Nodes - die Basisbausteine - und instance Nodes, die andere Substance-Funktionsgraphen darstellen.
- Es gibt separate Operatoren (algebraisch, logisch und Vergleich), mit denen Sie Vorgänge für die Werte im Diagramm ausführen können. SDF-Knoten verfügen jedoch über eigene Operatoren.
Erste Schritte
Um SDF-Funktionen zu erstellen, müssen wir sie zunächst visualisieren, damit wir die Auswirkungen der Knoten und Parameter verstehen können, die wir anpassen.
Der Knoten 3D viewer verfügt über einen speziellen Modus zum Visualisieren von Formen, die mithilfe von SDF-Funktionen erstellt wurden: Setzen Sie den Szenentyp des Knotens auf SDF function, und klicken Sie auf die Schaltfläche Funktion bearbeiten, um das Funktionsdiagramm zu öffnen, in dem die SDF-Funktion selbst gehostet wird.
Der Node bietet spezielle Funktionen zur Visualisierung von Aspekten der SDF-Funktion, mit denen wir sie intuitiver und effizienter erstellen können, z. B. ein Begrenzungsrahmen und Isolinien.
Der Knoten Physische Sonne/Himmel kann verwendet werden, um die Umgebungsbeleuchtung im 3D-Viewer schnell einzurichten.
| table 0-row-2 0-border-none 1-border-none 2-border-none html-authored no-header | |
|---|---|
|
Alle SDF-Funktion-Nodes sowie deren Eingabe-Connectors bieten QuickInfos, die Sie über ihren Zweck und ihre Verwendung informieren. Schauen Sie sie sich an! |
|
Knotenwerte festlegen
Wie bei allen Nodes in Substance-Funktionsgraphen verfügen SDF-Funktion Nodes nicht über Parameter, sondern nur über Eingangsanschlüsse, die als Parameter verwendet werden.
Um den Wert dieser Eingaben festzulegen, können Sie konstante Knoten verwenden, z. B. Float, Float3 und Integer3.
Sie können diese auf die übliche Weise über das Knotenmenü erstellen oder eine neue Verbindung aus den Connectors ziehen, um von einer gefilterten Liste von Knoten entsprechender Typen zu profitieren.
Die meisten Eingangsanschlüsse von SDF-Funktion-Nodes haben einen Standardwert, der in der QuickInfo angegeben ist.
| table 0-row-2 0-border-none 1-border-none 2-border-none html-authored no-header | |
|---|---|
|
Wenn Sie einige Werte nicht immer sichtbar halten müssen, docken Sie Knoten mit der Taste " Sie können die Werte auch mithilfe von Kommentaren verfolgen. |
|
Der Begrenzungs-Rahmen
Isolinien
SDF-Funktion Knotenkategorien
SDF-Funktionen-Nodes werden in der Bibliothek nach Funktion und Zweck kategorisiert.
Sie können beliebig viele Bibliotheksansichten erstellen, um Ihren Arbeitsbereich so zu organisieren, dass die Werkzeuggruppe “SDF-Funktionen” nach Kategorien geordnet ist, wobei alles griffbereit bleibt. Wechseln Sie zur Ansicht Windows > Neue Bibliothek, um separate, unabhängige Ansichten der Bibliothek hinzuzufügen.
Volumengrundkörper
Die grundlegenden Bausteine von SDF-Funktionen, mit denen Sie Grundformen wie Kugeln, Rahmen und Zylinder erstellen können.
Operatoren
Mit diesen Knoten können Sie Formen, die mit Grundformen erstellt wurden, kombinieren und ändern. Dazu gehören:
- Boolesche Operatoren wie Union, Intersection und Subtraktion, mit denen Sie Formen auf verschiedene Weise kombinieren können.
- Verformen boolescher Operatoren wie Abrunden und Morph, mit denen Sie Formen mit einem Fülleffekt kombinieren können.
- Andere spezialisierte-Operatoren wie Shell und Symmetrie, mit denen Sie eine Form ändern und/oder duplizieren können.
Transformiert
Formen können auf verschiedene Weise transformieren werden, z. B. Kamera bewogen, gedreht, skaliert, verdreht und mehr.
Mit diesen Knoten können Sie diese Transformationen durchführen, indem den Bereich selbst transformieren, in dem die Flächen definiert sind.
Dieser Bereich wird als P bezeichnet. Fahren Sie mit dem nächsten Abschnitt fort, um mehr darüber zu erfahren, was dies bedeutet und wie die Raumtransformation funktioniert.
Material
Grundlegende Materialverwaltung ist für Formen verfügbar, die mit SDF-Funktionen erstellt wurden.
Sie können grundlegende Materialattribute definieren: Farbe, Raueit und Metallität, zur direkten Visualisierung im 3D-Betrachterknoten oder als Basis für Materialarbeiten im Shape-Splater v2-Knoten.
Sie können auch Material-IDs verschiedenen Teilen einer Form zuweisen, um sie zu trennen.
Erfahren Sie mehr über Anwendungen dieser Knoten unten.
Die P-Eingabe
Wenn wir eine Transformation auf eine Form anwenden, wie z. B. einen Versatz oder eine Drehung, transformieren wir den Raum, in dem die Form definiert ist.
Wenn wir eine Transformation auf andere Formen übertragen wollen - wenn wir zum Beispiel mehrere Formen auf die gleiche Weise drehen wollen - müssen wir sicherstellen, dass sie alle den gleichen transformierten Raum verwenden.
Ein transformierter Space wird über Knoten gemeinsam genutzt, indem die dedizierten P-Eingaben verwendet werden, die Sie in den meisten SDF-Knoten finden.
Das ‘P’ steht für den Weltraum P position: Ein 3D-Vektor, der die Koordinaten eines Punktes im Weltraum darstellt.
Die Knoten Offset P und Rotate P transformieren den Raum und ermöglichen es Ihnen, diese Transformation auf alle Knoten zu übertragen, die ihn erben sollen.
Beispielsweise können mehrere Formen gemeinsam gedreht werden, indem ihre P-Eingabe mit demselben Knoten “P drehen” verbunden werden.
Dies ist nicht nur eine Frage der Bequemlichkeit, sondern stellt sicher, dass SDF-Knoten mit den gleichen Positionen im Raum arbeiten.
Hier ist ein Beispiel:
Eine Kugel wird wiederholt, um den Raum als 3D-Raster darzustellen. Sie wird durch Wiederholen des Leerzeichens wiederholt.
Ohne gemeinsam genutzte P-Elemente verwendet der gebogene Zylinder den von der Kugel verwendeten wiederholenden Raum.
Mit einem freigegebenen P können Formen in einem freigegebenen gedrehten Raum korrekt definiert werden.
Verwenden von SDF-Funktionen in den Knoten “Shape splatter v2”
Nachdem Sie eine SDF-Funktion im Kontext des 3D-Anzeigeknotens abgeschlossen haben, können Sie die gesamte Funktion kopieren und in den Knoten Shape splatter v2 einfügen, um sie als Formengenerator für diesen Knoten zu verwenden.
Setzen Sie den Shape type-Parameter auf SDF function. Wechseln Sie dann zum Pattern SDF-Funktion-Parameter, und klicken Sie auf die Schaltfläche Edit function, um das Funktionsdiagramm des Parameters zu öffnen.
Sie können dann die Funktion, die Sie vom 3D-Anzeigeknoten kopiert haben, in dieses Diagramm einfügen. (Vergessen Sie nicht, den Ausgabeknoten des Funktionsdiagramms erneut einzustellen!)
Stellen Sie sicher, dass Sie den Parameter SDF-Begrenzungsrahmengröße an den Begrenzungsrahmen anpassen, den Sie im 3D-Anzeigeknoten verwendet haben, und stellen Sie sicher, dass die Form ordnungsgemäß gezeichnet wird.
Form platzieren v2 mit einem Formentyp, der auf SDF function festgelegt ist. Beachten Sie, dass die Größe des SDF-Begrenzungsrahmensan die Form angepasst wurde.
- Alle Änderungen, die Sie an der Funktion vornehmen, werden in beiden Knoten widergespiegelt, ohne dass Sie sie erneut kopieren und einfügen müssen. Dies ist eine große Verbesserung der Lebensqualität für komplexe Formen.
- Das Diagramm kann einen beschreibenden Namen haben, der in den Instanzknoten sichtbar ist, was die Verwendung Ihrer eigenen Bibliothek von SDF-Formen viel einfacher und Ihre Diagramme besser lesbar macht.
- Sie können Eingaben für das Funktionsdiagramm erstellen, das Sie mit Get-Knoten verwenden können. Diese Eingaben werden als Eingangsverbindungen im Instanzknoten angezeigt und ermöglichen es Ihnen, ganz einfach Variationen Ihrer Formen zu erstellen.
Material-ID
Einer SDF-Form kann eine Material-ID zugewiesen werden. Dies ist ein ganzzahliger Wert, mit dem Teile der Form unterschieden und ihnen in den Knoten 3D viewer und Shape splatter v2 unterschiedliche Materialien zugewiesen werden können.
Beachten Sie, dass Flächen mit unterschiedlichen Material-IDs über angeglichene Formen hinweg mit einer harten Kante geteilt werden, wie im folgenden Beispiel zu sehen ist.
Verwenden Sie den Knoten Materialkennung einstellen nach dem Teil einer Form, der mit einer bestimmten Materialkennung markiert werden soll, und verwenden Sie einen konstanten Knoten Ganzzahl, um den gewünschten Materialkennungswert festzulegen.
Setzen Sie im 3D-Anzeigeknoten den Parameter Ausgabe auf Material ID, um die Material-IDs der Formen anzuzeigen.
Auf der rechten Seite werden die Ausgabe von zwei 3D-Anzeigeknoten zusammengestellt, um die Form (links) und ihre Material-IDs (rechts) anzuzeigen, um zu veranschaulichen, wie in gemischten Formen Materialien interpoliert werden, während Material-IDs geteilt werden.
Material IDs können von Shape splatter v2 Companion Nodes genutzt werden:
- Shape Splatter v2 Mapper Knoten können diese Material-IDs verwenden, um verschiedene Muster zuzuweisen.
- Formspritzer v2 auf Maske kann Teile von Formen gemäß ihrer Material-ID maskieren.
Farbe, Raueit und Metallität
Mit den Knoten Farbe einstellen, Raueit einstellen und Metalität einstellen können Sie diese Materialattribute für Formen in der SDF-Funktion definieren.
Wenn Sie diese SDF-Funktion dann als Formtyp im Knoten Shape splatter v2 verwenden, sind diese Materialattribute als Maps in den SDF-Farbausgaben, SDF-Raueit und SDF-Metalität des Knotens verfügbar. Diese Karten können als Grundlage für komplexere Materialarbeiten mit anderen Knoten dienen.
Beachten Sie, dass Werte, die sich deutlich von Material-IDs unterscheiden, als Farbverlauf interpoliert werden, wie in den folgenden Beispielen zu sehen ist.