Blender Dokumentation: Buffer-Schatten

Aus Wikibooks
<<<Zurück
Volumetrisches Licht
Inhaltsverzeichnis

Handbuch durchsuchen

Weiter>>>
Raytracing-Schatten


Diese Seite bezieht sich auf
Blender vpre2.43
Archiv-Version(en) verfügbar für:
2.37

Schatten[Bearbeiten]

Die Schattenfunktionen in Blender sind sehr vielfältig und insbesondere für den Einsteiger schwer zu überblicken. Trotz der Vielfalt können alle Methoden aber auf nur zwei Basisanwendungen zurück geführt werden, die Buffer-Schatten und Raytracing-Schatten. In beiden Gruppen gibt es jeweils die Möglichkeit, harte, weiche, deckende und nicht deckende Schatten zu erzeugen. Ein wesentliches Unterscheidungsmerkmal zwischen beiden Methoden besteht darin, dass die Berechnung der Buffer-Schatten weniger Rechenleistung erfordert als die Raytracing-Schatten.

Lampentyp Buffer Schatten Raytracing Schatten
Lamp  Nein  Ja
Area  Nein  Ja
Spot  Ja  Ja
Sun  Nein  Ja
Hemi  Nein  Nein

Vorbemerkung für die Anwendung von Schatten[Bearbeiten]

Die Einstellungen für die Schatten müssen in Bezug auf folgende Parameter vorgenommen werden, die über die Einstellungen der Lampe hinaus gehen:

  • eine schattenwerfende Lampe in passender Positionierung.
  • ein schattenwerfendes Objekt.
  • ein schattenempfangendes Objekt.
  • welche Aspekte sollen gerendert werden?

Dies klingt banal und hinterlässt vielleicht den Eindruck, dass hier eine einfache Angelegenheit unnötig kompliziert gemacht wurde, hat aber seinen tieferen Sinn darin, dass an jeder Stelle des Prozesses Schatteneigenschaften speziell aktiviert oder definiert werden können und nur die unbedingt notwendigen Objekte in den Rechenprozess einbezogen werden.

Die Einstellungen des Spots[Bearbeiten]

Der Pufferschatten[Bearbeiten]

Aktivieren Sie im Panel "Shadow and Spot" den Button BufShadow.

Für die Berechnung der Pufferschatten werden zwei Distanzwerte berechnet. Zum einen der Abstand Spot-Objekt und zum anderen der Abstand Kamera-Objekt. Aus dem Vergleich dieser Daten wird nun der Schatten errechnet und in einem Puffer gespeichert. Da dieser Schattentyp eine sehr lange Entwicklungsgeschichte in Blender hat, gibt es mittlerweile drei Berechnungsmethoden für die Pufferspeicherung.

Abbildung 1: Shadow and Spot-Panel für eine Spot-Lampe.
Classical
Der bis zur Version 2.42a allein vorhandene Buffer-Schattentyp. Sehr schnell zu berechnen. Es kommt aber manchmal vor, dass der Schatten nicht direkt am Objekt beginnt, oder Artefakte auftreten. Er besitzt mehrere Einstellungsmöglichkeiten, um diese Probleme in den Griff zu bekommen. Es kann nicht mehr empfohlen werden, diesen Schattentyp einzusetzen.
Classic-Halfway
Eine Verbesserung des Classical-Schattens, wobei versucht wird, automatisch die besten Einstellungen zu finden. Kann auch noch von Hand beeinflusst werden. Daher Voreinstellung. Unter Umständen Probleme mit Halo-Step, daher (und wegen der Abwärtskompatibilität) ist der Classical-Schatten erhalten geblieben.
Irregular
Benötigt in normalen Fällen erheblich weniger Speicher beim Rendern, was sich bei großen Szenen sehr positiv bemerkbar machen kann. Guter Schattenwurf. Es müssen noch einige Punkte beim Einsatz dieses Schattens berücksichtigt werden: die Transparenz des Materials muss gesondert gesetzt werden. Raytracing ignoriert diesen Schatten vollkommen (z.B. Spiegelungen), wenn viele teiltransparente Strands (Haare) gerendert werden, kann die Rechenzeit sehr stark ansteigen.

Zur Verdeutlichung der Probleme mit dem Buffer-Shadow ein sehr einfaches Setup.

Abbildung 2a: Raytracing-Schatten. Renderzeit 4-fach größer als mit Classic-Halfway, trotz der einfachen Scene.
Abbildung 2b: Classical Schatten. Der Schatten reicht nicht bis an das Objekt heran.
Abbildung 2c: Classic-Halfway. Ohne weitere Einstellungen vornehmen zu müssen, deutlich verbesserter Schatten.
Abbildung 2d: Irregular. Schöner, allerdings unnatürlich scharfer Schatten.

Classic-Halfway[Bearbeiten]

Abbildung 3a: Kirjuri aus Elephants Dream. Classic-Halfway Schatten mit den voreingestellten Werten.

Da dieser Schattentyp einfacher funktioniert, aber die gleichen Einstellungsmöglichkeiten bietet wie der Classical-Schatten, sollen an ihm die verschiedenen Optionen besprochen werden.

  • ShadowBufferSize: Dieser Pufferspeicher speichert den Abstand der Objekte von der Lampe. Mit diesen Werten wird berechnet, ob ein Objekt im Schatten liegt oder nicht. Je größer der Speicher ist, desto genauer kann der Schattenwurf berechnet werden, dafür wird mehr RAM zur Berechnung benötigt. Sie sollten diesen Wert auf den voreingestellten Werten lassen, vergrößern Sie den Speicher, sofern Sie eine große Szene rendern müssen und/oder der Schatten fehlerhaft ist, z.B. Aliasing auftritt (Treppcheneffekt).
  • Box/Tent/Gauss: Optionen zur Berechnung des Antialiasing für den Schatten. Tent und Gauss schärfen den Verlauf.
  • Samples: Um weiche Schatten zu bekommen, wird ein Durchschnittswert aus leicht versetzten Schatten berechnet. Der Samples-Wert bestimmt die Größe des Bereiches, der zur Berechnung dieses Durchschnitts herangezogen wird. Bei Erhöhung des Samples-Wertes steigt die Rechenzeit, der Schattenverlauf wird aber weicher und das Aliasing wird verringert.
  • Soft: Kontrolliert die Größe der Schattenränder. Um einen weichen Schattenverlauf zu erhalten, sollte der Soft-Wert höchstens doppelt so groß wie der Samples-Wert sein.
  • Halo step - Die Abstufung der halo samples für volumetrische Schatten bei eingeschaltetem volumetrischem Licht. Das wird im Kapitel Volumetrisches Licht erklärt.
  • Bias: Der Bias-Wert verhindert die Selbstbeschattung von Flächen. Es ist bei Classical-Schatten notwendig ihn einzustellen, kleine Bias-Werte verhindern den Schattenfehler aus Abbildung 2b. Bei Classic-Halfway hat er kaum noch Auswirkungen (sehen Sie dazu auch die Releasenotes). Ein Bias von 1 entspricht bei Classical- und Classic-Halfway-Schatten dem 0,01ten Bruchteil von ClipEnd - ClipSta.
  • ClipSta, ClipEnd: Statt den ShadowBuffer zu vergrößern oder den Bias zu verkleinern, kann der Bereich eingeschränkt werden, in dem er berechnet wird. Dieser Bereich beginnt bei ClipSta, welcher näher beim Spot liegt und geht bis zu ClipEnd welcher sich weiter entfernt vom Spot befindet (Abbildung 1 im Kapitel Spot-Lamp). Alle Objekte, die sich näher als ClipSta befinden werden nie auf Schatten überprüft und sind immer beleuchtet. Objekte, die weiter entfernt sind als ClipEnd werden nie auf Licht geprüft und sind immer im Schatten. Die "Auto"-Buttons setzen automatisch passende Start- und Endwerte.


Abbildung 4a: Viel Aliasing: Samples 1.
Abbildung 4b: Weicher Schatten (Soft 12), aber zu wenig Samples (3).
Abbildung 4c: Weicher Schatten (Soft 12), mit vielen Samples (12).
Abbildung 4b: Weicher Schatten (Soft 12), mit vielen Samples (12). Option Gauss schärft den Schatten.

Irregular[Bearbeiten]

Abbildung 5: Noch einmal zum Vergleich der Irregular-Schatten.

Der Irregular Schatten ist sehr scharf und ähnelt dem Raytracing-Schatten (Abbildung 5), wird aber deutlich schneller berechnet, wenn auch langsamer als Classic-Halfway. Er besitzt neben ClipSta und ClipEnd nur noch einen einstellbaren Parameter, das Bias.

In Abbildung 6a ist das Bias zu groß, der Schatten reicht nicht bis an das Objekt heran. Das erkennt man in der Scene aber nur deswegen, da der Würfel vollständig transparent ist. In Abbildung 6b ist das Bias auf 0.01 verkleinert, der Schatten ist so gut. Warum man nicht einfach immer so einen kleinen Bias nimmt, sieht man in Vergrößerung der Kugel (Abbildung 6c) - ein Renderfehler wo Flächen fehlerhaft Schatten werfen. Ein Bias von 1 entspricht bei Irregular-Schatten dem 0,0005ten Bruchteil von ClipEnd - ClipSta. Verkleinert man diesen Bereich (vergößert also ClipSta und verkleinert ClipEnd) kann man mit größeren Bias-Werten rechnen. Dann verschwinden sowohl die Renderfehler, als auch die Schattenfehler.

Abbildung 6a: Der Würfel hat einen Alpha-Wert von 0, Shad A ist 0.5. Bias ist 1.
Abbildung 6b: Bias auf 0.01 behebt das Schattenproblem.
Abbildung 6c: Ein Renderfehler bei zu kleinem Bias am Pol der Kugel. Größer gerendertes und vergrößertes Bild von Abbildung 6b.
Abbildung 6d: Diese Einstellungen verhindern sowohl den Schatten- als auch den Renderfehler.


Die Materialeinstellungen des schattenwerfenden Objekts[Bearbeiten]

Abbildung 8a: Verschiedene, den Schattenwurf beeinflussende Materialeinstellungen.
Abbildung 8b: Den Schattenwurf beeinflussende Materialeinstellungen auf dem Links and Pipeline Panel.

Verschiedene Material- und globale Einstellungen beeinflussen den Schattenwurf.

  • Damit der Schatten überhaupt gerendert wird, muss das Material Schatten empfangen (Button Shadow auf dem Shaders-Panel der Material-Buttons, Abbildung 8a) und in den Scene Buttons (F10) muss der Shadow-Button aktiviert sein. Auf dem Links and Pipeline-Panel muss die Option Shadbuf aktiv sein (Abbildung 8b).
  • Die Option OnlyShad auf dem Shaders-Panel rendert nur den Schatten auf dem Objekt, das Material selbst ist transparent. Dann wird der Schatten auch dann gerendert, wenn die Option Shadow ausgestellt ist.
  • Der Irregular-Schatten kann einen gesetzten Transparenzwert für das Material (Shad A) berücksichtigen.
  • Die Option OnlyCast auf dem Links and Pipeline-Panel rendert nicht das Material, sondern nur den Schatten.

Für Buffer-Schatten spielt die Option TraShad keine Rolle, nur für Raytracing-Schatten.

Abbildung 7: Nur bei Irregular-Schatten: ein Schatten kann einen gesetzten Transparenzwert (ShadA) berücksichtigen.

Die Materialeinstellung ShadA in den Material-Buttons (Abbildung 8a) setzt einen Transparenzwert für das Material. Dieser ist unabhängig von der sonstigen Transparenzeinstellung, also dem Alpha-Wert, Fresnel-Einstellungen oder Texturen. Mehrere transparente Flächen können übereinandergelegt werden, einen Maximalwert gibt es nicht.

Die Materialfarbe wird für die Schattenfarbe nicht berücksichtigt (es gibt kein transparentes Filtern).




Links[Bearbeiten]

Die englischsprachige Vorlage dieses Textes
Das Blender Buch
Shadow buffer, Halfway average (engl. Releasenotes zu v2.43)
Irregular Shadow Buffer (engl. Releasenotes zu v2.43)


<<<Zurück

Volumetrisches Licht

Inhaltsverzeichnis
Glossar
Weiter>>>

Raytracing-Schatten