Blender 3D/ Tutorials/ Material/ Glaseffekt mit Nodes
Diese Seite bezieht sich auf Blender v2.45 |
Glaseffekt mittels Nodesetting
BearbeitenDas Nodesetup in diesem Artikel basiert auf einer Idee, die von Locutus auf blend.polis vorgestellt wurde. Die Grundidee, Glasbrechungen mittels Nodes zu simulieren beruht darauf, die sichtbaren Glaseffekte als reine Vorgänge der Oberfläche anzusehen, ohne die Brechungsprozesse "im inneren des Objekts" zu berücksichtigen. Deswegen wird Raytracing in diesem Fall nicht benötigt und die Berechnung erfolgt sehr schnell. Umgesetzt wird der Effekt dadurch, dass ein Hintergrundbild genau an der Stelle verzerrt wird, wo sich das Vordergrundobjekt befindet und diese verzerrte Darstellung als Textur verwendet wird. Die Verzerrung beruht auf den Informationen der Oberflächennormalen dieses Vordergrundobjekts.
Vorbereitungen
Bearbeiten- Legen Sie zwei Renderlayer an. Renderlayer eins soll alle Hintergrundobjekte beinhalten, Renderlayer zwei alle Glasobjekte. Möchten Sie den Objekten verschiedene Glassorten zuweisen, müssen Sie für jedes "Glasmaterial" einen eigenen, separaten Renderlayer anlegen.
- Legen Sie ein Glasmaterial an, setzen die Farbe auf schwarz 1 , stellen den Alpha-Wert auf 0.5 2 und aktivieren ZTransp 3 . Der Alpha-Wert von 0.5 sorgt dafür, dass auch verdeckte Reflexionen sichtbar sind.
- Um den Effekt möglichst realistisch wirken zu lassen, fügen Sie eine Environment-Textur ein. Damit werden die Umgebungsreflexionen der Oberfläche simuliert. [ 4 + 5 ]
Analyse des Nodesetups
BearbeitenDie Oberflächennormalen weichzeichnen
BearbeitenBeginnen möchte ich mit der Funktionsgruppe drei (Abb.1 3 ). Hier werden die Informationen der Normalen aus Renderlayer zwei weichgezeichnet. Dabei entstehen verschwommene Kanten, die das Objekt beim Rendern unscharf erscheinen lassen würden. Um dem entgegen zu arbeiten wird der Alphakanal von Renderlayer zwei als Maske verwendet. Die Weichzeichnung findet jetzt nur noch innerhalb der weißen Bereiche der Maske statt. In Abb.4 rechts sehen Sie die Bildinformationen, die diese Funktionsgruppe ausgibt.
Lichtbrechung und Dispersion
BearbeitenDiese Ergebnisse ( Abb.5 7 ) werden nun in die nächste Funktionsgruppe eingespeist ( Abb.5 4 ).
1 Renderlayer 1, auf dem alle Hintergrundinformationen liegen.
2 Dieser MixNode fügt Kaustiken in die Bildberechnung ein. Siehe weiter unten Die Kaustiken
3 Die Bildinformationen werden in die einzelnen Farbkanäle aufgespalten.
4 In dieser Gruppe wird der eigentliche Glaseffekt berechnet. Dabei sind zwei Aspekte zu unterscheiden.
- Mit den Disp Werten wird der Brechungsindex simuliert. Hohe -negative- Werte erzeugen einen hohen Brechungsindex.
- Zum anderen können für die Farben voneinander abweichende Werte eingestellt und damit die Lichtaufspaltung (Dispersion) simuliert werden. Je stärker die Werte voneinander abweichen, um so stärker macht sich der Effekt bemerkbar.
5 In diesem Node werden die einzelnen Farbaspekte zusammen geführt. Abb.6 zeigt die Auswirkungen dieser Funktionsgruppe.
Überblendung von Bild und Zerrbild
BearbeitenDie Ergebnisse von Funktionsgruppe eins werden mit den originalen Bildinformationen verrechnet.
Die Glasfarbe nachbearbeiten
BearbeitenDurch die zweite Funktionsgruppe kann die Ausgangsfarbe verändert werden. Die Basisfarbe wird aber weiterhin durch die Col-Werte im MaterialPanel gesetzt. Damit ist das Nodesetup "eigentlich" beendet, kann aber noch durch die Simulation von Kaustiken durch die vierte Funktionsgruppe ergänzt werden.
Die Kaustiken
Bearbeiten1 Die Alphamaske des zweiten Renderlayers wird um den eingestellten Wert in seiner Position verschoben.
2 und stark weichgezeichnet.
3 Durch den ColorRamp wird die Fläche verkleinert.
4 noch einmal weichgezeichnet
5 - 7 in die Einzelfarben aufgespalten, diese gegeneinander verschoben und wieder zusammen gefügt.
Dieses Ergebnis wird in Funktionsgruppe eins eingespeist.