Blender-Serie Teil 6: Shading

  Ephraim   Lesezeit: 17 Minuten

Teil 6 der Blender Serie - Shading

blender-serie teil 6: shading

Mit diesem Teil wird es endlich bunt! Es geht um die Grundlagen des Shadings bis hin zu Nodes.

Das Shading ist der Arbeitsschritt, in dem die Oberflächengestaltung der Objekte vorgenommen wird. Die Farbe wird eingestellt, aber auch ob das Objekt leuchten soll und die Oberfläche Höhenunterschiede aufweist.

Materialien

Zu einem ersten Kontakt mit Shading kommen wir bereits mit dem Standardcube. Dieser besitzt nämlich bereits ein Material - so nennt man die einzelnen Oberflächen (blöde Beschreibung, ich Weiss).

Das ist das Material des Cubes:

Die Preview ist standardmässig zugeklappt, sie ist aber so praktisch, dass sie bei mir praktisch immer offen ist.

Darunter fangen dann die Eigenschaften des Materials an. Als erstes ist zu sehen, dass Nodes aktiv sind (was das ist erkläre ich gleich) und dass für die Surface (Oberfläche) ein Princibled BSDF zum Einsatz kommt. Dieser hat eine fast weisse Farbe, ist kein Metall und ist mittel rau.

Außerdem besitzt das Objekt einen IOR-Wert von 1.45, das ist aber in diesem Fall nicht wichtig, da es nicht transparent ist, was daran liegt, dass der Transmission Wert (wie stark das Licht durch das Objekt geht) weiter unten auf 0 steht. Der Alpha Wert würde das Objekt zwar auch transparent machen, das hat aber keinen Einfluss auf den IOR Wert, da der Alpha Wert einfach nur bestimmt, ob etwas vom Hintergrund zu sehen ist, oder nicht. Das Licht wird dadurch nicht in dem Objekt gebrochen.

Material Organisation

Mit einem Klick auf den Schriftzug "Material" lässt sich das Material umbenennen, mit der Schaltfläche daneben lassen sich andere bereits existierende Materials auswählen und dem Objekt hinzufügen. Über dem Schild Button lässt sich ein Fake User erstellen. Das muss gemacht werden, wenn ein Material gerade auf keinem Objekt liegt, es aber noch benötigt wird - Blender löscht es sonst beim schliessen.

Auf der Schaltfläche rechts daneben lässt sich ein Material duplizieren, auf der daneben wiederum lässt es sich vom Objekt entfernen.

Mit dem + Button lässt sich ein neuer Material Slot hinzufügen, der dann erst mal leer ist und in dem ein neues Material angelegt werden kann, bzw. ein bereits existierendes eingestellt werden kann. Das - darunter entfernt das Material dann logischerweise.

Das erste Material welches hinzugefügt wird, ist erst mal auf dem gesamten Objekt. Wenn man ein weiteres hinzufügt, muss man diesem erst Faces hinzufügen. Dazu wechselt man in den Edit Mode (Tab) und wählt die gewünschten Faces aus. In den Material Properties erscheint dann auch ein Assign Button. Dieser muss nur geklickt werden und schon wird das neue Material auf den gewählten Faces genutzt.

Neben der Assign Schaltfläche erscheinen im Edit Mode noch die beiden Buttons Select und Deselect. Diese wählen die Faces an bzw. ab, die dieses Material nutzen.

Shader Nodes

Endlich geht es mit Nodes los! Ein Node ist ein "Block", der gewisse Eigenschaften hat, die er an einen weiteren Node übergeben kann. Dadurch entsteht eine extrem große Vielfalt an Möglichkeiten.

Die Ein- und Ausgänge der Nodes (Input und Output, Sockets genannt) haben, wie im Bild zu sehen, verschiedene Farben. Jede Farbe transportiert unterschiedliche Informationen:

  • Gelb: Farbdaten, gegebenenfalls mit Alpha (Transparenz) Kanal.
  • Grau: Graustufen. Also alles von Schwarz bis Weiss.
  • Lila: Dreidimensionale Daten wie XYZ.
  • Grün: Shaderdaten. In diesen steckt praktisch alles davon drin.

Meistens verbindet man nur die Sockets gleicher Farben. Man kann zwar auch Sockets unterschiedlicher Farben verbinden, aber dabei kommt oft nichts sinnvolles bei raus. Bei manchen Verbindungen gibt Blender auch eine Warnung, da es nicht funktioniert, indem die Verbindung zwischen den Nodes rot eingefärbt wird (z.B. bei Grün-Lila).

Wenn man zwei Verbindungen trennen möchte, kann man die Strg Taste gedrückt halten und mit der Rechten Maustaste über eine der Verbindungen fahren.

Einen Zwischenpunkt in eine Verbindung setzen (kosmetisches Feature, kann aber viel ausmachen) funktioniert genau so, nur dass man die Shift Taste gedrückt halten muss.

Nodes lassen sich wie Objekte bewegen, dabei muss man aber bedenken, dass Nodes nur auf einem 2D Feld vorhanden sind - Die Achsen sind deshalb so angeordnet wie in einem normalen Koordinatensystem.

Wenn man die Umgebung (World) anpassen möchte, geht das zwar auch im Shader Editor, aber in einem anderen Bereich. Oben Links im Editor (direkt neben der Edit Auswahl), ist ein menü in dem zwischen "Object", "World" und "Line Style" gewählt werden kann. Das muss auf Worls stehen, damit diese bearbeitet werden kann.

Die einzelnen Nodes

Wie alles andere auch, sind Nodes im Add Menü zu finden - aber nicht im 3D-Viewport, sondern im Shader Editor. Eine Vorgefertigte Arbeitsumgebung ist im Workspace "Shading" zu finden.

Ich kann natürlich nicht alle Nodes aufzählen und genau beleuchten, weshalb ich mich auf die wichtigeren beschränke - Übung führt zum Ziel!

Die Kategorien und deren wichtigsten Nodes:

  • Input: Unterschiedliche Nodes, die nur Output Sockets haben.
    • Attribute: Mit diesem Node lassen sich vorher festgelegte Attribute nutzen - z.B. von einem Ocean Modifier.
    • Object Info: Mit diesem Node lassen sich verschiedene Angaben nutzen, die mit (mehreren) Objekten zu tun haben. z.B. kann man jedem Objekt eine unterschiedliche Farbe geben, wenn man den "Random" Socket als Input nimmt. Damit muss man nicht jedem Objekt einzeln ein Material hinzufügen um die Farbe zu ändern, sondern nimmt einfach für alle dieses Material.
    • Texture Coordinate: Dieser Node gibt Koordinaten für Texturen mit, nachher geht es noch genauer um das Thema.
  • Output: In dieser Kategorie sind die zwei verfügbaren Output Nodes zu finden.
  • Color: In dieser Kategorie sind verschiedene Nodes zum ändern von Farben enthalten, z.B. lassen sich diese aufhellen oder sättigen.
  • Converter: In dieser Kategorie sind verschiedene Nodes zum beeinflussen von Graustufen und Farbwerten zu finden.
    • Color Ramp: Mit diesem häufig benutzten Node lassen sich viele unterschiedliche Dinge machen: Graustufen in Farben umwandeln, Kanten verschärfen und vieles mehr. Der Node ist relativ simpel, das einzige, was mir komplizierteres bekannt ist, ist das "Interpolation" Menü. In diesem lässt sich einstellen, wie die Übergänge zwischen zwei Farben verlaufen sollen - z.B. auch mit einer harten Kante.

    • Math: Mit diesem Node lassen sich allerlei Mathematischen dinge tun. z.B. hat der Node auch eine "grösser als" und "kleiner als" Funktion.
    • Mix: Dieser Node ist auch relativ selbsterklärend. Er ist in der Lage mehrere Werte (Vector (XYZ), Graustufen oder Farben) miteinander zu vermixen.
    • Vector Math: Dieser Node kann Vectordaten miteinander vermixen.
  • Shader: In dieser Kategorie sind die ganzen Shader zu finden. Diese haben jeweils die entsprechenden Eigenschaften, nach denen sie benannt sind, weshalb ich sie hier nicht aufzählen werde. Ein paar Ausnahmen gibt es aber:
    • Add Shader: Dieser Node mixt zwei Shader zusammen, ohne weitere Optionen zu bieten.
    • Principled BSDF: Der Universalshader. Er bietet für fast alle Oberflächeneigenschaften eine Option an und ist dadurch sehr praktisch, wenn man schnell etwas ändern will. Dafür hängt er aber bei genaueren Dingen etwas zurück, da er halt nicht darauf spezialisiert ist.
    • Principled Volume: Dieser Node ist der "alles Node" für Volumetrische Dinge wie Rauch.
  • Texture: Alle Texturen sind hier zu finden - Von der Image Texture zur Sky Texture
    • Environment Texture: Über diesen Node lassen sich 360° Bilder einfügen, die als Hintergründe genutzt werden können. Am besten eignen sich dazu HDRi Bilder, die auch als Beleuchtung funktionieren.
    • Sky Texture: Der Name sagt bereits alles. Mit diesem Node lässt sich ein Himmel erstellen. Dieser ist zwar leider ohne Wolken, aber ansonsten perfekt: Die Position und Intensität der Sonne lässt sich einstellen, die Menge des Staubs in der Luft und vieles mehr. Da auch dieser Node animierbar ist, kann man damit einen perfekten Sonnenaufgang oder Sonnenuntergang darstellen. Wenn man richtig die "Scheibe" der Sonne sehen möchte, muss man Cycles aktivieren (dazu in einem späteren Teil mehr), das wird aber auch als Warnung im Node angezeigt.
    • Voroni Texture: Dieser Node ist nur für einen Tipp in dieser Auflistung zu finden: Wenn man nicht den "Color" sondern den "Distance" Socket benutzt, entsteht eine gepunktete Oberfläche. Gepaart mit einer Color Ramp kann man z.B. einen Sternenhimmel machen.
  • Vector: In dieser Kategorie finden sich viele Nodes um Dreidimensionale Oberflächeneigenschaften zu bearbeiten.
    • Bump: Dieser Node nimmt Graustufendaten als Basis für Höheninformationen. Allerdings faked dieser Node die Höhen nur. Wenn man von einem flachen Winkel auf das Objekt schaut, ist zu sehen, dass es in Wirklichkeit immer noch flach ist.
    • Displacement: Dieser Node ist ein etwas spezieller. Er funktioniert nur in Cycles und man muss seine Funktionalität erst aktivieren. Die Einstellung dazu liegen dort: Properties Editor → Material Properties → Settings → Displacement (nur mit Cycles zu sehen). "Displacement" muss entweder auf "Displacement only" oder auf "Displacement and Bump" gestellt werden. Wenn das gemacht ist (und das Objekt ausreichend unterteilt ist) kann man den Node an den "Displacement" Socket des Output Nodes anschliessen und schon lassen sich die Höhen auf der Oberfläche bearbeiten. Hier ein Beispiel, was damit möglich ist, Im Kasten ist der Node Aufbau dazu zu sehen:

  • Script: Mit diesem Node (in der Kategorie ist nur ein Node), kann man eigene Shader erstellen. Dafür wird Open Shading Language verwendet. Ziemlich cool, aber leider habe ich keine Ahnung davon und für gewöhnlich reichen mir die bereits vorhandenen Möglichkeiten vollkommen aus.
  • Group: Node Gruppen können erzeugt werden, wenn mindestens ein Node ausgewählt ist und man Strg+G drückt, im Menü unter Node → Make Group zu finden. Nodes wieder aus der Gruppe zu entfernen geht theoretisch mittels Strg+Alt+G, aber irgendwie passiert dabei (auch wenn ich den Menüpunkt auswähle) bei mir gerade nichts. Wenn man dann Groups hat, können diese in jedem Material der Blender Datei hinzugefügt werden.
  • Layout: Zwei nette Kleinigkeiten für die Übersicht.
    • Frame: Ein Rahmen, in den Nodes gezogen werden können um den Node Tree (also alle Nodes eines Materials) übersichtlicher zu gestalten. Dieser Rahmen kann umbenannt werden (F2, bzw. in der Sidebar (N) unter Node → Label oder im Menü unter Node → Rename) und auch die Farbe kann geändert werden (In der Sidebar unter Node → Color).

UV Mapping

Damit die Texturen richtig dargestellt werden, müssen sie entsprechende Koordinaten haben. Das ist besonders bei Image Texturen wichtig, aber auch bei prozedualen Texturen kann es bereits ein Problem werden, wenn die UV-Map (so nennt sich das) nicht richtig ist. Dazu stellt Blender einige Tools bereit, aber es ist dennoch meistens mit einigem Aufwand verbunden die UV-Map vernünftig zu setzen. Letztlich hilft da leider nur viel Übung, damit es leichter wird.

Leider stecke ich in diesem Thema auch nicht allzu tief drin, so dass ich es vermutlich nicht besonders gut erläutern kann. Bei weiterem Interesse verweise ich auch hier wieder auf eine gewisse grosse Videoplatform, auf der es wirklich viele gute Tutorials zu so etwas gibt.

So sieht die UV-Map eines normales Cubes aus, zu sehen sind alle sechs flächen, auf einer Zweidimensionalen Fläche:

Im Prinzip geht es darum, ein Abbild des Meshes an verschiedenen stellen "durchzuschneiden", so dass es auf eine 2D Oberfläche (was für eine Textur benötigt wird) gelegt werden kann.

Um die UV-Map anzupassen bietet sich der Workspace "UV Editing" bestens an, da er bereits den UV Editor und den 3D-Viewport nebeneinander offen hat.

Die Verschiedenen Optionen für das UV Editing sind im UV Menü (des 3D-Viewports) zu finden, welches auch über den Shortcut U geöffnet werden kann.

Hier die wichtigsten Optionen daraus (teilweise funktionieren diese nur dann sinnvoll, wenn das gesamte Mesh ausgewählt ist, was mit dem Shortcut A geht):

  • Unwrap: Blender versucht die UV Map zu erstellen, es wird natürlich besser, je mehr Seams (Cuts) gesetzt sind. Hat fast immer Probleme, wenn es zu wenige davon gibt.
  • Smart UV Project: Wie der Name schon sagt, versucht Blender hier ein möglichst nutzbares Ergebnis zu erstellen. Das Tool kann aber natürlich auch nicht zaubern und benötigt deshalb auch eine gewisse Anzhl an Seamen.
  • ... Projection: Mit diesen Tools lässt sich eine UV-Map auf die entsprechende Form projizieren.
  • Project from View: Erstellt eine UV-Map aus der aktuellen Perspektive. Das "(Bounds)" Tool darunter macht diese so groß, wie auch der Bereich für die UV-Map ist (der durch die ausgewählte Textur beeinflusst wird).
  • Mark Seam: Dieser Button markiert die ausgewählten Edges als Seamen, also als Stelle, an der die Kanten der UV-Map nicht aufeinander treffen. Clear Seamen dagegen entfernt Seamen von Edges.

Die UV-Map lässt sich auch mit den normalen Transform Tools per Hand bearbeiten, was natürlich auch nicht gerade spassig ist.

Schlusswort

Ich hoffe das Lesen hat euch mindestens genau so viel Spass bereitet, wie mir das Schreiben. Zum UV-Unwrapping kann ich nur nochmal betonen, dass es hier sehr viel Übung bedarf und ich leider nicht wirklich der beste darin bin (ich pfusche mir das immer zurecht).

Hier wieder der Link zum ersten Teil, in dem die Übersicht über alle Teile steht: https://gnulinux.ch/blender-serie-teil-1-einfuehrung-und-uebersicht

Tags

Blender, Artikelserie

Es wurden noch keine Kommentare verfasst, sei der erste!