Dieses kleine, aber feine Schmuckstück stellt anisotrope, wie z. B. gebürstetes Metall oder Satin dar. Es ist eine 1:1-Umsetzung des Ward-Beleuchtungsmodells1. Das Ganze habe ich in RenderMonkey als GLSL-Shader implementiert.
Stilsicherer Schädel mit kreisrund gebürstetem Metalleffekt

Effekte

Insgesamt gibts es drei Abwandlungen von dem Shader. Die erste Variante ist die isotorpe Variante des Ward-Beleuchtungsmodell ohne weitere Effekte. Die zweite Variante stellt anisotrope Oberflächen dar. Außerdem verwendet sie zusätzlich eine Textur, die den Schliff des Materials wiedergibt und so den Eindruck einer frein geschliffenen Oberfläche verstärkt.
Teapot mit gebürstetetem Metall

Die Richtung des Schliffs ergibt dabei aus der Oberflächentangente, welche analog zur Normalen für jeden Eckpunkt des 3D-Modells definiert ist. Sie lässt sich aus den Texturkoordinaten und erhält dann für jeden Eckpunkt die Richtung, in welche die horizontale Texturachse (meist mit u bezeichnet) zeigen würde. Die dritte Variante vwendet nicht die Tangente als Schliffrichtung, sondern verwendet eine Textur, in der für jeden Texel Tangenten als 2D-Vektor kodiert sind:
Tangent-Map für kreisrunden Schliff

1 Gregory J. Ward: Measuring and modeling anisotropic reflection (1992)

Download

  1. BrushedMetal.zip (511.10kB): Rendermonkey-Projekt mit Shader für anisotrope Materialien, 74 Download(s)
  2. Wardmodell_Praesentation.pdf (484.76kB): Präsentation "Shader für anisotrope Materialien", 331 Download(s)