Diese Seite bezieht sich auf Blender v2.45

Glaseffekt mittels Nodesetting

Bearbeiten

Das 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.

 
Abbildung 1: Gaseffekt mittels Nodes
 
Abbildung 2: Das Nodesetup in der Übersicht


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  ]
 
Abbildung 3: Vorbereitungen in den Materialeinstellungen und Renderlayer


Analyse des Nodesetups

Bearbeiten

Die Oberflächennormalen weichzeichnen

Bearbeiten

Beginnen 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.

 
Abbildung 4: Normals bluren und per Alpha Maske schärfen


Lichtbrechung und Dispersion

Bearbeiten

Diese 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.

 
Abbildung 5: Das Kerngeschehen
 
Abbildung 6: so verändert sich das Bild


Überblendung von Bild und Zerrbild

Bearbeiten

Die Ergebnisse von Funktionsgruppe eins werden mit den originalen Bildinformationen verrechnet.

 
Abbildung 7: erste Überblendung



Die Glasfarbe nachbearbeiten

Bearbeiten
 
Abbildung 8: erste Überblendung

Durch 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

Bearbeiten
 
Abbildung 9: Caustic Setting

 1  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.

 
Abbildung 9: Kaustik Setting
 
Abbildung 10: Endergebnis