Blender Dokumentation: Glanzlichter
Diese Seite bezieht sich auf Blender v2.42 |
Glanzlichter (Specular Light) sind etwas, was es in Wirklichkeit so nicht gibt. Aber sie lösen ein großes Problem. Mit Glanzlichtern werden die Spiegelungen der Lampen auf Oberflächen simuliert.
Das ist aus zwei Gründen notwendig:
- In Blender ist eine Lampe unsichtbar. Richten Sie die Kamera auf die Lampe, können Sie sie nicht sehen. Sie müssten eine Lampe modellieren, und ihr das richtige Material, eventuell mit entsprechendem Emit Wert zuweisen.
- Oberflächen spiegeln ihre Umgebung nicht wider. Sie müssen RayMirror oder Environmentmaps benutzen, damit Oberflächen spiegeln. Dann wird das Material aber insgesamt spiegelnd, was häufig nicht erwünscht ist, außerdem werden die Renderzeiten stark verlängert.
Daher benutzt man Specular Shader, um diese Reflexionen vorzutäuschen.
Anders als bei diffuser Reflexion sind Glanzlichter vom Blickwinkel abhängig, da es sich um die Simulation von Spiegelungen handelt. Nach dem Reflexionsgesetz [1] wird Licht, das eine spiegelnde Oberfläche trifft, unter dem selben Winkel reflektiert (Einfallswinkel = Ausfallswinkel). Das macht den Blickwinkel sehr wichtig. Entweder sieht man die Spiegelung, da das Licht in die Kamera gespiegelt wird, oder man sieht die Spiegelung nicht.
Specularity ist bei erstaunlich vielen Materialien zu beobachten, auch wenn wir diese sicher nicht als spiegelnd bezeichnen würden. Stoffe zeigen beispielsweise häufig recht große Spec Werte, genauso Plastik oder Holzoberflächen. In der Regel ist aber die Härte (Hardness) der Glanzlichter klein.
In der Realität werden diffuse Lichtstreuung und Glanzlichter durch genau den selben Prozess erzeugt. Diffuse Lichtstreuung dominiert auf Oberflächen, die winzige Unebenheiten aufweisen. Das Licht wird in viele verschiedene Richtungen von jedem Punkt der Oberfläche mit kleinen Winkeländerungen reflektiert (unter Umständen in Abhängigkeit der Wellenlänge, aber das kann man in Blender noch nicht simulieren).
Glanzlichter, auf der anderen Seite, dominieren auf glatten Oberflächen. Das heißt, dass die zerstreuten Strahlen eines jeden Punktes der Oberfläche fast alle in dieselbe Richtung reflektiert werden, statt, wie bei der Diffusion in alle Richtungen. Wobei das eigentlich nur eine Frage des Maßstabs ist. Wenn die Unebenheiten der Oberfläche kleiner als die Wellenlänge des einfallenden Lichtes sind, erscheint sie flach und fungiert als Spiegel.
Da Glanzlichter nur ein Fake eines ziemlich komplexen physikalischen Vorganges sind, sollte man nicht allzu viele Erwartungen an ihre Realitätsnähe stellen. Erfreulicherweise ist das aber nicht so schlimm, da es nicht auffällt. Zum Beispiel sind Glanzlichter in Wirklichkeit nicht nur rund, sondern entsprechen der gespiegelten Form der Lichtquelle (des Fensters, der Neonröhre, ...). Da die Sonne und Glühbirnen aber rund sind, passt das runde Glanzlicht für viele Beleuchtungssituationen. Echte Glanzlichter ändern ihre Stärke außerdem bei transparenten Gegenständen unter sich ändernden Blickwinkeln, zeigen also auch den "Fresnel-Effekt".
Wie die Diffusion, haben auch die Glanzlichter eine ganze Reihe von Implementierungen oder " Shadern ". Wieder teilt jede dieser Implementierungen zwei Standardparameter: die Glanzfarbe und die Stärke des Glanzes, in einem Bereich von 0 bis 2. Dies erlaubt es einem, dem Glanz mehr Energie zuzuweisen, als eigentlich einfällt. So hat ein Material mindestens zwei verschiedene Farben, die von der Diffusion und die vom Glanz. Die Glanzfarbe steht standardmäßig auf Weiß, was allerdings geändert werden kann, um interessante Effekte zu erhalten.
Die fünf Glanzshader sind:
- CookTorr - Das war Blenders einziger Glanzshader bis zur Version 2.27. Außerdem war es bis zu dieser Version nicht möglich den diffusen Shader und den Glanzshader getrennt von einander einzustellen, es gab nur eine einzige Materialimplementation. Neben den zwei Standardparametern benutzt dieser Shader noch einen dritten, bezeichnet mit hardness (Härte), mit welchem sich der Durchmesser der Spitzlicher einstellen lässt. Je tiefer die hardness Einstellung, um so breiter die Lichter.
- Phong - Das ist ein anderer mathematischer Algorithmus zur Berechnung von Glanzlichtern. Er unterscheidet sich nicht sehr stark vom CookTorr und wird von den selben Parametern gesteuert.
- Blinn - Dies ist - eher - ein realitätsnaher Shader, der gut zu dem diffusen Oren-Nayar Shader passt. Er wirkt echter wegen seines vierten Parameters, dem index of refraction (IOR zu deutsch: Brechungsindex) zusätzlich zu den drei oben erwähnten. Dieser Parameter wird nicht für die Berechnung der Strahlenbrechung benutzt (hierfür wird ein Raytracer benötigt), sondern um die Intensität und Ausdehnung von Glanzlichtern mittels des Snell Gesetzes zu berechnen. Härte- und Glanz-Parameter geben hier einen zusätzlichen Grad von Freiheit.
- Toon - Dieser Shader ist das Gegenstück zum diffusen mit selbem Namen. Er wurde entworfen um scharfe, gleichmässige Glanzlichter, wie im Zeichentrick üblich, zu produzieren. Er hat keinen Härteparameter, dafür aber einen für Size (Größe) und einen für Smooth (Feinheit), mit denen sich die Ausdehnung und die Schärfe der Glanzlichter einstellen lässt.
- Wardlso - "Ward isotropic gaussian specular shader", besonders für Plastik geeignet.
Die Implementierung in Blender trennt diffuse Reflexion und Glanzlichter. Daher kann sehr einfach kontrolliert werden, wie viel des einfallenden Lichtes diffus reflektiert, als Glanzlicht reflektiert oder absorbiert wird.
Farbe
Die Materialfarbe ist nur ein Element während des Renderns. Die letztendliche Farbe setzt sich aus der Material- und Lichtfarbe zusammen. Die Spec-Farbe ist bei Nicht-Metallen weiß, d.h. Nicht-Metalle ändern die Lichtfarbe bei gerichteter Reflexion nicht.
Metalle dagegen ändern die Lichtfarbe bei gerichteter Reflexion, das gilt für die Spec Farbe wie auch für RayMirror.
Links
BearbeitenDie englischsprachige Vorlage dieses Textes