Blender 3D/ Tutorials/ Licht/ Beleuchtung optimieren
Diese Seite bezieht sich auf Blender v2.37a |
Wir werden auf dieser Seite einige Beispiele für Lichtsetup ohne Raytracing durchsprechen. Zunächst eine Beleuchtung, die sich insbesondere für Innenszenen eignet, am Ende eine Methode, das Licht der Himmelskugel realistisch zu simulieren - so wie es in Abbildung 1 gezeigt wird.
Unsere Szene wird dabei bewußt einfach gehalten, denn es soll hier um die Beleuchtung, nicht um Modell oder Materialien gehen. Die Datei mit der Kirche können Sie sich von Blendpolis herunterladen.
Einfaches Spotlicht
[Bearbeiten]Unsere Szene besteht aus Cornelius in einem Braunton, einer blauen Platte, auf der er steht, sowie einem Spotlicht und einer Kamera. Die Welt ist schwarz.
- Cornelius: R=0.8, G=0.704 B=0.584, Ref=0.7, Spec=0.444, Hard=32
- Platte: R=0.275, G=0.5, B=1.0, Ref=0.8, Spec=0.5, Hard=50
- Spot: Energy=1.0, R=G=B=1.0, SpotSi=45.0, SpotBl=0.15, ClipSta=0.1, ClipEnd=100, Samples=3, Soft=3, Bias=1.0, BufSize=512
Wird das Bild jetzt gerendert, mit OSA=8 und Shadow in den Render Buttons angestellt, erhält man das Ergebnis in Abbildung 3. Die Schatten sind völlig falsch, Cornelius schwebt irgendwie in der Luft und im Mund ist es reichlich hell.
Die wichtigste Methode die Schatten zu verbessern, ist ClipSta und ClipEnd anzupassen. Sie sollten so genau wie möglich zur Szene passen. Mit ClipSta=3, ClipEnd=11 wird das Ergebnis deutlich besser (Abbildung 4). Allerdings ist der Schatten unrealistisch schwarz.
Um für das Clipping die richtigen Werte zu finden hier ein nützlicher Trick: In Blender kann jedes Objekt zur Kamera werden. Wählen Sie die Lampe an, und wechseln Sie in die Kameraansicht der Lampe (Strg-Num0). Am besten in der Shaded Ansicht können Sie nun ClipSta und ClipEnd anpassen. In Abbildung 5 von links nach rechts aus Sicht der Lampe: ClipSta zu groß, Cornelius ist angeschnitten. In der Mitte richtige Clipping Werte, rechts ist ClipEnd zu klein.
Alles, was näher als ClipSta am Spot oder weiter weg liegt als ClipEnd wird nicht angezeigt. Man kann so also genau überprüfen, dass alle gewünschten Schatten sichtbar sind.
Abbildung 4 ist natürlich unrealistisch. Man würde (selbst wenn ein Raum sonst völlig schwarz ist) erwarten, dass z.B. der Boden Licht auf Cornelius diffus reflektiert. Daher sind auch Schatten eigentlich nie vollkommen schwarz.
Um diesen Effekt zu erzielen gibt es im Prinzip zwei Möglichkeiten.
Beide sind Methoden der sogenannten Global Illumination (GI), die in Blender am leichtesten mit Yafray zu erreichen ist, obwohl man in Blender natürlich Radiosity und Ambient Occlusion einsetzen kann. Der Nachteil daran ist, dass das Rendern eines Bildes dann verhältnismäßig lange dauert, und außerdem wird man auch mit GI nicht mit einer einzigen Lampe auskommen.
Wir werden daher hier weitere Lichtsetups besprechen, wobei diese zunehmend komplexer werden.
Drei Punkt Beleuchtung
[Bearbeiten]Die Drei Punkt Beleuchtung ist ein klassisches, sehr einfaches Setup um eine bessere (sanftere) Beleuchtung zu erzielen. Wie der Name schon sagt, gibt es drei Lichtquellen in der Szene:
- Das "Key Light" ist das wichtigste. Das "Key Light" wirft die Schatten und macht die Hauptbeleuchtung. Dazu wird man in Blender im wesentlichen einen Spot verwenden.
- Das "Back Light" beleuchtet die Figur von hinten. Es steht also hinter und üblicherweise über der Figur, dem "Key Light" gegenüber. Das "Back Light" hebt die Figur vom Hintergrund ab. Dadurch gewinnt die Szene an Tiefe. Das "Back Light" ist so stark wie das "Key Light", häufig sogar stärker. Es darf allerdings keine Schatten werfen. Hier werden wir eine Lamp mit Energy 1 einsetzen, das Setup sehen Sie in Abbildung 6. Es eignet sich aber auch ein Spot.
- Das "Fill Light" zur Aufhellung der Schatten. Dazu eignet sich eine Lamp mit geringerer Energy als die beiden anderen Lampen.
Je nach gewünschtem Effekt sollten Sie überlegen, ob Sie Specular für das "Back Light" ausstellen, oder mit unterschiedlichen Ebenen arbeiten, damit die Umgebung nicht zuviel Spec erhält. In Abbildung 7 haben wir tatsächlich drei Lampen benutzt, das "Back Light" gibt es zweimal. Einmal mit Specular auf dem gleichen Layer wie Cornelius, das zweite mal ohne Specular auf dem gleichen Layer wie der Fußboden.
Das Ergebnis ist bereits viel besser. Als drittes Licht setzen wir jetzt das "Fill Light" (eine Lamp) ein. Hier positionieren wir das "Fill Light" direkt an der Position der Kamera. Die Energie ist kleiner als die der anderen Lichter. In Abbildung 8 habe ich eine Energie von 0.5 benutzt.
Das "Fill Light" macht Bereiche des Modells sichtbar, die vorher vollständig im Dunkeln lagen.
Color leakage [Farbeinstrahlung]
[Bearbeiten]Das 3-Punkt Licht Setup kann durch ein viertes farbiges Licht ergänzt werden, insbesondere wenn sich eine große, farbige Fläche (Fußboden) direkt neben dem Objekt befindet. Dann simuliert man mit dem vierten Licht die diffuse Reflexion der farbigen Fläche, d.h. das farbige Licht das von der Fläche auf das Objekt geworfen wird.
Um diesen Effekt zu erzeugen, platzieren wir einen weiteren Spot spiegelsymmetrisch zum "Key Light", wobei in diesem Fall am Fußboden gespiegelt wird. Da sich der "Boden" bei Z=0 befindet, das "Key Light" bei (-5, -1, 3), muss die vierte Lampe auf die Position (-5, -1, -3).
Die Energie dieses Lichtes sollte niedriger sein als die des "Key Light" (hier auf 0.3), die Farbe sollte so wie die des Bodens sein (R=0.25, G=0.5, B=1.0).
Da wir einen Spot benutzt haben, muss der Schatten für diesen Spot allerdings ausgeschaltet sein, sonst würde er ja vollständig von der Ebene geblockt werden. Oder setzen Sie den Spot auf die gleiche Ebene wie Cornelius und rendern wieder mit Layer Only. Der Effekt kann verstärkt werden, wenn der Spot auch Schatten wirft. Neben der Layer Only Technik können Sie einfach den CpliStart Wert so hochstellen, dass er von der Ebene nicht mehr geblockt wird.
Drei Punkt Beleuchtung für Außenszenen
[Bearbeiten]Da wir einen Spot als "Key Light" benutzt haben, ist die vorgestellte Methode auf Innenraumbeleuchtungen bzw. Nachtszenen beschränkt. Das "Key Light" hat eine bestimmte (endliche) Entfernung von der Szene, der Strahl divergiert (läuft auseinander) und der Boden wird nicht gleichmäßig beleuchtet.
An einem klaren Tag draußen wäre der Boden gleichmäßig beleuchtet und man würde deutliche, relativ scharf begrenzte Schatten sehen (wobei die Schärfe der Begrenzung des Schattens von der Entfernung zum Boden abhängt).
Um den Boden gleichmäßig zu beleuchten, ist eine Sun gut geeignet. Eine Hemi Lampe ersetzt das Himmelslicht. Die Schatten werden mit einem Shadow Only Spot erzeugt. Die Sun ist hier also unser "Key Light", das Hemi Licht sowohl "Fill" als auch "Back Light".
Das Lichtsetup sehen Sie in Abbildung 10. Und hier die Einstellungen für die einzelnen Lampen.
- Sun: Energy=1, RGB=(1.,0.95,0.8), Rot=(135, 135, 0)
- Hemi: Energy=0.5, RGB=(0.64,0.78,1.0), Rot=(0,0,0)
Der schattenwerfende Spot wird genau auf die Sonne platziert, der Spot zeigt in die gleiche Richtung wie die Sonne. SpotSi muss so hoch gestellt werden, dass alle von der Kamera erfassten Objekte auch Schatten werfen. Dadurch wird der Rand des Schattens etwas unschön, man sieht blockartige Artefakte.
Um diese Artefakte zu verbessern, muss der BufSize und der Samples Wert erhöht werden. Stellen Sie den BufSize auf 2560, Samples auf 6 und Bias auf 3.
Flächenlicht [Area Light]
[Bearbeiten]Wir benutzen hier keine wirklichen Area Lights, da schattenwerfende Area Lights Raytracing erfordern.
Flächenlichter entsprechen einer natürlichen Beleuchtung viel mehr als Punktlichter. Licht wird immer von einer Oberfläche, nicht von einem Punkt emittiert. Besonders deutlich wird das bei Fenstern, oder bei dem diffusen Licht der Himmelskugel.
Dadurch verändern sich insbesondere die Schatten:
- Es gibt keine Schatten mit scharfen Rändern.
- Die Schärfe des Schattenrandes hängt von den Positionen und Größen des Lichtes, des Objektes, und des beschatteten Objektes ab.
Den ersten Punkt berücksichtigen wir durch die Einstellung Soft des Spots (stellen Sie Samples und Bias ebenfalls höher ein). Der zweite Punkt lässt sich so aber nicht berücksichtigen. Um ihn klarer zu verstehen, stellen Sie sich einen von der Sonne beleuchteten, senkrecht stehenden Stab auf einer Ebene vor.
Die Sonne ist kein Punkt, sondern erscheint uns von der Erde als Fläche, mit der Größe von ungefähr einem halben Grad. Der Schatten des Stabes ist an der Basis sehr scharf begrenzt, je weiter wir nach oben gehen, desto unschärfer wird er. Ist der Stab dünn und lang genug, verschwindet der Schatten schließlich.
Um ein Flächenlicht zu simulieren benutzen wir mehrere Spots, ersetzten das Flächenlicht also durch eine Reihe von Punktlichtern. Damit der Schatten dabei schön verläuft, benutzen wir weichen Schatten bei den Spots. Man könnte die Spots von Hand platzieren, einfacher ist es, wenn wir DupliVerts benutzen.
Fügen Sie an die Stelle des Spots (zunächst den Cursor auf den Spot platzieren) ein 4x4 Mesh Grid ein (Space->Add->Mesh->Grid). Wenn Sie den Spot zunächst zur Kamera machen, und das Grid in der Kameraansicht platzieren, hat es schon die richtige Orientierung. Sie müssen nun nur noch sicherstellen, dass die Normals in die richtige Richtung zeigen. Stellen Sie die Normals Anzeige an, und flippen die Normals wenn es notwendig ist.
Machen Sie nun das Grid zum Parent des Spots (erst Spot, dann mit Shift-RMT Grid auswählen, Strg-P). Wählen Sie nun das Grid alleine aus, und drücken im Object Kontext (F7) auf dem Panel Anim settings die Buttons DupliVerts und Rot. Rot ist nicht unbedingt notwendig, ist aber hilfreich, wenn Sie das Flächenlicht später anders platzieren wollen. Das Ergebnis ihrer Arbeit sollte so aussehen wie in Abbildung 13.
Die Energie des Spots ist noch zu hoch. Wenn ein einzelner Spot eine bestimmte Energeieinstellung braucht, teilen Sie diese durch die Anzahl der Duplikate. Da wir hier also 16 Spots benutzen, teilen Sie die Energie durch 16 (also stellen Sie sie auf 0.0625). Je höher die Energie des Spots ist, desto dunkler wird der Schatten.
Wenn Sie nun rendern, stellen Sie fest, dass der Schatten noch zu ungleichmäßig ist. Das könnten wir durch mehr Spots beheben, dann steigen allerdings die Renderzeiten weiter an. Benutzen Sie besser weiche Spots, also setzen Sie die Spoteinstellungen auf SpotBl=0.2, Sample=5, Soft=14 und Bias=1.5.
Diese Beleuchtung ist schon viel besser, die Renderzeiten sind allerdings auch nicht zu vernachlässigen. Man kann insbesondere den Samples Wert noch weiter verringern, um die Renderzeit zu beschleunigen.
Vielleicht doch Raytracing?
Wenn Sie doch Raytracing einsetzen möchten und können, benutzen Sie Ambient Occlusion und eine Sun mit RayShadow.
Global Illumination (und Global Shadowing)
[Bearbeiten]Die oben beschriebenen Techniken funkionieren gut, wenn es nur eine, oder zumindest nur eine sehr begrenzte Anzahl an Lichtquellen gibt, die abgegrenzte Schatten werfen.
Eine Ausnahme ist das Setup der Außenbeleuchtung, wo das Hemi Licht das Himmelslicht, und das Flächenlicht eine Lichtquelle mit begrenzter Ausdehnung simuliert. Das Hemi Licht wäre für eine realistische Außenbeleuchtung geeignet - wenn es Schatten werfen könnte.
Um eine realistische Beleuchtung für Außenszenen zu erzeugen, insbesondere an einem wolkigen Tag, benötigt man Licht das aus allen Richtungen kommt, aber trotzdem Schatten wirft. Wir benutzen hierfür eine Technik die dem Flächenlicht Setup sehr ähnlich ist, aber eine Halbkugel als Parent benutzt. Auch hier handelt es sich wieder um eine Technik, "Global Illumination" (GI) zu simulieren.
Als Himmelskugel können Sie entweder eine UVSphere oder eine IcoSphere benutzen, wobei bei der IcoSphere die Vertices gleichmäßig verteilt sind, bei der UVSphere befinden sich viele Vertices an den Polen. Benutzt man daher eine IcoSphere als Parent, ergibt sich eine gleichmäßigere Lichtverteilung, da die Himmelskugel über die gesamte Fläche gleichmäßig leuchtet. Eine UVSphere leuchtet entsprechend an den Polen stärker. Hier werden wir eine IcoSphere benutzen.
Zunächst stellen wir einige Grundkörper auf eine Ebene, damit wir die gegenseitige Beschattung beobachten können. Wechseln Sie in die Draufsicht (Num-7) und fügen Sie eine IcoSphere hinzu. Ein Subdivision Level von 3 führt in der Regel zu akzeptablen Ergebnissen, aber das hängt natürlich von der Geometrie der Szene ab. Skalieren Sie die IcoSphere so weit, dass sie die ganze Szene einschließt. Wechseln Sie in die Frontansicht (Num-1) und löschen Sie im Edit Mode die untere Hälfte der IcoSphere. Flippen Sie die Normals der verbliebenen Flächen, so dass sie nach innen zeigen. Unsere Himmelskugel ist fertig (Abbildung 16), an diese werden wir nun die Spots "hängen".
In Draufsicht fügen Sie einen Spot hinzu, und parenten ihn an die halbe IcoSphere. Stellen Sie für die IcoSphere wieder DupliVerts und Rot an, so wie es im vorhergehenden Setup bereits beschrieben wurde.
Um ein gutes Beleuchtungsergebnis zu erhalten, wählen Sie den Spot aus, und ändern Sie dessen Parameter. Wir benötigen Spots mit großem Öffnungswinkel und weichen Übergängen.
SpotSi=70.0; SpotBl=0.5; angepasste ClipSta und ClipEnd Werte (hier 5 und 30). Erhöhen Sie Samples auf 6 und Softness auf 12. Verringern Sie die Energie auf 0.05. Die benötigte Energie hängt natürlich wieder von der Anzahl der Spots ab. Mit einigen zugewiesenen Materialien und einer Welt, sollte das Ergebnis etwa so aussehen wie in Abbildung 17.
Das Ergebnis zeigt weiche Schatten und eine gleichmäßige Beleuchtung. Allerdings geht die Renderzeit hier schon deutlich in die Höhe.
Möchte man die Beleuchtung nicht so einheitlich gestalten, kann man eine Sonne entweder durch einen einzelnen Spot, oder durch ein Flächenlicht simulieren. Oder unterteilen Sie eine Fläche der IcoSphere, um die Zahl der Dupliverts dort zu erhöhen. Dazu wählen Sie einige Flächen aus, unterteilen Sie einmal, nehmen einen kleineren Bereich, unterteilen diesen noch einmal usw. (Abbildung 18)
Als Ergebnis erhält man eine nicht isotrope Himmelskugel, mit einem sehr weichen, gerichteten Licht (Abbildung 19). Diese Lösung ist für einen bewölkten Himmel gut geeignet.
Links
[Bearbeiten]Die englischsprachige Vorlage dieses Textes
Das alte Handbuch, aber mit guten Tips
Erläuterung der 3-Punkt Beleuchtung