Blender-Serie Teil 7: Lighting und Rendering

  Ephraim   Lesezeit: 10 Minuten

Teil 7 der Blender Serie - Lighting und Rendering

blender-serie teil 7: lighting und rendering

Die letzten Schritte hin zu einem fertigen Bild: In diesem Teil geht es um Lighting und Rendering.

Zwar gibt es in der Standardszene beim öffnen von Blender bereits ein Licht, aber die ist mit den Einstellungen praktisch für nichts zu gebrauchen. Da muss man also selbst Hand anlegen. Wenn das gemacht ist, kann man den Rechner mit dem Rendern quälen.:)

Lighting

Wie ein ganz normales Objekt auch, werden Lampen über das Add Menü (Shift+A) hinzugefügt. Auch können sie ganz normal transformiert werden.

Es gibt vier verschiedene Lichttypen in Blender: Point, Sun, Spot und Area. Dabei sind die verfügbaren Einstellungen grundsätzlich recht ähnlich. Es kann die Farbe und die Helligkeit der Lampe eingestellt werden.

Der Radius der Lampe bestimmt, wie weich die Schatten sind. Bei der Area Light können ausserdem noch Form und Dimension angepasst werden.

Auch Nodes können für die Beleuchtung verwendet werden, damit sind dann der Kreativität keine Grenzen mehr gesetzt:

Eine Besonderheit stellt die Sun Lamp da. Die Helligkeit der Lampe wird nicht in Watt angegeben, sondern in Watt/m², was daran liegt, dass das Licht der Sun Lamp nicht abnimmt, wenn die Entfernung zu nimmt. Auch die Position der Lampe spielt keine Rolle, nur die Rotation. Aufgrund dieser Eigenschaften ist die Sun Lamp natürlich vollkommen ungeeignet in Innenräumen, aber perfekt um das geplante Einsatzgebiet (eine Sonne, für eine Landschaftsszene) abzudecken.

Wann man Lampen wo platziert muss man sich eigentlich selbst bei bringen. Es kann zum Beispiel manchmal Sinnvoll sein, ein Objekt noch ein wenig von hinten zu beleuchten (auch gerne nicht mit einer Weissen Lampe, sondern vielleicht orange oder blau), was dann zwar nicht unbedingt realistisch ist, aber die Szene deutlich stimmungsvoller machen kann.

Rendering

Um das Bild zu erstellen, muss es gerendert werden. Blender bietet dazu mehrere Renderer mit unterschiedlichen Stärken und Schwächen an.

Während EEVEE (ich werde ab jetzt nur noch Eevee schreiben, da es deutlich besser zu lesen ist) ein "Echtzeit" Renderer ist, der die Lichtstrahlen nicht in echt berechnet, ist Cycles ein echter Pathtracing Renderer, der zwar realistische Ergebnisse erzeugt, aber deutlich mehr Zeit zum berechnen benötigt. Dazu gibt es noch Workbench, aber der ist wirklich nur zum Preview gedacht und nicht um Rendern des finalen Bildes. Die Normale Ansicht im 3D-Viewport wird mit Workbench gerendert. Wirkliche Einstellungsmöglichkeiten hat der Render nicht, sie werden aber auch nicht gebraucht.

Die ganzen folgenden Einstellungen sind im Properties Editor (Der Editor unten Links) in den Render Properties (die Kamera) zu finden. gleich mit der ersten Einstellung kann man den Renderer auswählen.

Gerendert wird (egal mit welchem Renderer) mit der Taste F12, bzw. Strg+F12 wenn man eine Animation rendern möchte. Im Menü ist das ganze unter Render → Render Image (bzw. Animation) zu finden.

Wenn man beim arbeiten eine Preview des Ergebnisses haben möchte, kann man im 3D-Viewport auch in den Material Preview oder in den Rendered Modus schalten. Die Einstellungen dazu sind oben rechts zu finden, der Shortcut ist Z. Während der Modus "Solid" Workbench als Renderer nutzt, wird bei "Material Preview" auf Eevee gesetzt und "Rendered" nutzt den ausgewählten Renderer.

Einstellungen zum Speichern des Ergebnisses lassen sich in den Output Properties (ebenfalls im Properties Editor) finden.

Eevee

Ich fange mit Eevee an, da es der Standard Renderer ist, der gerade am Anfang vermutlich sehr häufig eingesetzt wird.

Da Eevee kein Raytracing Renderer ist, funktionieren manche Dinge (z.B. manche Shading Nodes) nicht. Dann muss man entweder diese durch etwas anderes ersetzten oder doch Cycles nutzen. Für viele Dinge reicht Eevee jedoch vollkommen aus und gerade bei Animationen ist der Vorteil bei der Geschwindigkeit nicht zu unterschätzen.

Das Grundsätzliche Problem eines Renderers ohne Raytracing ist aber, dass eine Strahlen verfolgt werden, und es deshalb keine Reflektionen gibt. Zwar kann man um dieses Problem zu beheben "Screen Space Reflections" aktivieren, aber das ist leider auch kein Allheilmittel:

Im ersten Bild ist Eevee mit den Standardeinstellungen zu sehen - Keine Spiegelung. Im Zweiten Bild wurden Screen Space Reflections aktiviert, weshalb eine Spiegelung zu sehen ist. Im Dritten Bild wurde die Ansicht so verschoben, dass der Cube fast nicht mehr im Bild ist - die Spiegelung verschwindet auch fast. Nur das Cycles Bild ist korrekt dargestellt, hat aber auch deutlich länger beim berechnen benötigt und sieht immer noch sehr verrauscht aus.

Mit "Ambient Occlusion" lassen sich die Schatten simulieren, die in Ecken entstehen (in die ja weniger licht fällt). Das ist zwar leider auch nicht immer fehlerfrei, aber meistens trotzdem deutlich besser als ohne.

Da Eevee kein Raytracing benutzt, lassen sich allerlei andere Spielereien nutzen, die man bei Cycles nachträglich hinzufügen muss. So kann man Bloom aktivieren, welches alle hellen Oberflächen und Lichter "strahlen" lässt. In Cycles muss man das in der Nachbearbeitung machen.

Übrigens ist gerade "Eevee-Next" In Entwicklung, welches auch Raytracing benutzen kann. Mal schauen, wie das dann wird.

Cycles

Für das Endbild und vor allem ein realistisches Ergebnis ist der Renderer Cycles unabdingbar. Er nutzt Pathtracing, das heisst er sendet für jeden Pixel einen Strahl aus und schaut ob dieser irgendwann aufs Licht trifft: Wenn ja, wird die Stelle hell, wenn nein bleibt sie dunkel. Da aber ein Strahl pro Pixel nicht allzu genau ist, muss man diesen wert höher stellen. Hier ein Vergleich zwischen einem, zehn und hundert Pixeln:

Es hat also einen deutlichen Effekt. Da aber ein Bild aus (z.B.) 1920x1080 Pixeln besteht (FullHD), sind das bei 10 Samples bereits 20.736.000 Strahlen, die verfolgt werden müssen - 10 Samples sind allerdings fast immer viel zu wenig. Das ist der Grund, warum das Rendern so lange braucht: Es muss einfach extrem viel berechnet werden.

Da CPUs nicht besonders gut für solche Berechnungen geeignet sind, kann Cycles auch auf GPUs Rendern, um den Renderprozess teils deutlich zu beschleunigen. Dafür muss die GPU in den Einstellungen aktiviert werden: Edit → Preferences → System. Dort finden sich die unterschiedlichen Systeme der Grafikkartenhersteller. Dabei ist es nicht immer zu empfehlen die CPU mit beim Rendern zu nutzen, da es manchmal langsamer wird dadurch. Das Problem ist den Entwicklern bekannt, aber es gibt wohl keine einfache Lösung dafür. Auch werden viele z.B. iGPUs (diese sind besonders in laptops oft anzutreffen) gar nicht unterstützt.

  • CUDA ist für Nvidia Karten, ist aber nur entweder für Spezialfälle oder für ältere Karten (keine RTX Karten) zu empfehlen.
  • OptiX Ebenfalls von Nvidia und deutlich schneller als CUDA. Kleinigkeiten werden noch nicht unterstützt.
  • HIP ist für AMD Karten, diese sind leider im Vergleich mit GPUs von Nvidia und Intel deutlich langsamer.
  • oneAPI ist für Intel Karten.
  • Metal: Apples eigenes System, funktioniert nur auf MacOS.

Tipps zum verbessern der Bildqualität

Da man nicht immer (nie?) Stundenlang warten möchte, bis das gewünschte Bild fertig ist, gibt es viele Möglichkeiten, um die Bildqualität zu verbessern, damit weniger Samples benötigt werden, was wiederum die Renderzeit verkürzt:

  • Noise Threshold: Mit diesem Wert kann man einstellen, wann Blender aufhört an einer Stelle weiter zu rendern, je nachdem wie Stark die Stelle noch verrauscht ist. Das ist auch der Grund, warum am Anfang "langsamer" gerendert wird, wie später: Manche Teile des Bildes sind "fertig", weshalb für die anderen mehr Leistung zur Verfügung steht.
  • Denoising: Beim Denoisen wird versucht das Bild zu entrauschen. Bereits in der Standardeinstellung hat Cycles einen Denoiser aktiv. Dieser nutzt den OpenImageDenoiser, kann aber auch auf OptiX umgestellt werden, was nur auf Nvidia Karten läuft, dafür aber schneller ist. Ich persönlich nutzte beim finalen Render immer den Compositor (dazu im nächsten Teil mehr) zum denoisen. Gefühlt ist da das Ergebnis besser, obwohl es theoretisch kein Unterschied sein sollte.
  • Path Guiding: Diese relativ neue Technik bietet zwei Vorteile: Erstens hilft es bei der Lichtberechnung bei transparenten Objekten und zweitens wird die Qualität pro Sample deutlich verbessert. Gute Beispiele dafür sind in den Releasenotes zu Blender 3.4 zu finden, in dem die Technik eingeführt wurde: https://wiki.blender.org/wiki/Reference/Release_Notes/3.4/Cycles. Die Einstellung ist in den Render Settings unter "Sampling" zu finden.
  • Light Bounces: Wie weiter oben erläutert, springt ein Strahl beim Rendern ja von Oberfläche zu Oberfläche, bis er auf eine Lichtquelle trifft. Die Anzahl wie oft der Strahl abprallen soll, lässt sich natürlich auch einstellen und damit Zeit zu sparen bzw. um den Realismus zu erhöhen. Die Einstellungen dazu sind hier zu finden: Render Settings → Light Paths → Max Bounces.
  • Weitere Hinweise sind im Offiziellen Blender Handbuch zu finden: https://docs.blender.org/manual/en/latest/render/cycles/optimizations/index.html

Schlusswort

Mir hat dieses Kapitel beim Schreiben wirklich Spaß gemacht, ich hoffe beim Lesen war es genau so.

Hier der Link zum ersten Teil, in dem eine Übersicht über alle Teile vorhanden ist: https://gnulinux.ch/blender-serie-teil-1-einfuehrung-und-uebersicht.

Tags

Blender, Artikelserie

Es wurden noch keine Kommentare verfasst, sei der erste!