Licht-Maps
Allgemeines
Die Licht-Map-Methode funktioniert vereinfacht gesagt folgendermaßen: Von der Kamera aus werden eine Reihe von Sehstrahlen in die Szenerie geschossen. Diese Sehstrahlen werden oft reflektiert (abhängig von Maximale Tiefe und ob der Strahl nicht vorher den Himmel oder ins Leere trifft) und die berechneten Farben beim Auftreffen auf Geometrie ausgewertet. Es ergeben sich hierbei ganze Strahlenketten, die prinzipbedingt sehr viel schneller (auch für viele Reflexionen) und unter Berücksichtigung anderer Strahlenketten berechnet werden können. Die berechneten Farben werden in einem Zell-Muster gespeichert (auf Wunsch auch in einer Datei, die später wieder verwendet werden kann) und dann in einem 2. Schritt der Primären GI-Methode zur Verfügung gestellt, die dann ihrerseits die Licht-Map beim Einsammeln von Licht ("samplen") höherer Strahltiefe als 1 heranzieht.
Beachten Sie, dass durch die im Vergleich zu andere GI-Methoden hohe Strahltiefe das gerenderte Bild meist heller ausfällt; das können Sie durch Verringerung von Sekundäre Intensität ausgleichen.
Diese Methode hat wie immer Vor- und Nachteile:
Vorteile:
- sehr schnelle GI-Berechnung (mit sehr hohen Strahltiefen).
- Licht-Maps können gespeichert und bis zu einem gewissen Grad wieder verwendet werden (sie sind allerdings blickwinkelabhängig).
Nachteile:
- Es können Lichtlecks entstehen (diese lassen sich allerdings durch kleine Samplegrößen und Verzicht auf Interpolation minimieren. Auch größere Wandstärken statt einpolygonalen Flächen sind hilfreich).
Parameter
Zunächst dürfte interessant sein, wie eine gute Licht-Map aussieht (indem Sie Modus auf Visualisieren stellen, können Sie eine Licht-Map sichtbar machen):
Sie sehen oben links und oben rechts schlechte bzw. bessere Licht-Maps. Gute Licht-Maps zeichnen sich durch einen möglichst homogenen Lichtverlauf aus, während schlechte sehr inhomogen erscheinen. Gerendert sieht das ganze allerdings etwas undramatischer aus, weil die Primäre GI-Methode die Licht-Map wiederum mit vielen Strahlen "abtastet" und daraus Mittelwerte bildet. Trotzdem kann eine Primäre GI-Methode selbst mit den besten Einstellungen nur suboptimale Ergebnisse liefern, wenn die zuerst berechnete Licht-Map von schlechter Qualität ist. Sie sehen das in der Abbildung links unten, wo es im Bereich um das Fenster und unter der linken Kugel zu Flecken kommt.
Sie finden in den folgenden Einstellungen unter "Vorfilter" und "Interpolationsmethode" noch Funktionalitäten, um das Zell-Muster aufzulösen und zu glätten (beide sind sehr schnell in der Berechnung), um der Primären GI-Methode möglichst homogene Lichtverteilungen vorzugeben.
Um Licht-Lecks zu vermeiden, s.a. Licht-Maps optimieren.
Dieser Parameter ist neben der Samplegröße der wichtigste, um die Qualität einer Licht-Map zu regeln.
Die Pfadanzahl (der Wert hier wird übrigens intern mit 1000 multipliziert) gibt die Anzahl der Strahlen an, die in der Szenerie insgesamt berechnet werden. Dabei besteht eine Strahlenkette aus bis zu einer Maximale Tiefe entsprechenden Anzahl.
Je höher hier die Anzahl, desto homogener ist die Lichtverteilung, aber auch länger die Rechendauer, da pro Zell-Element mehr Sehstrahlen verwendet werden und damit zufällige Farbabweichungen (ein Strahl trifft beispielsweise zufällig oben im Bild eine schwarze Fuge) benachbarter Zellen kleiner werden.
Hiermit definieren Sie die Größe der Zellen. Je kleiner die Zellen, desto akkurater bzgl. Details ist das Ergebnis. Zu große Zellen führen dagegen leicht zu Lichtlecks und sind insgesamt unpräziser bzgl. Details, d.h. der ein oder andere Schatten fällt weg.
Je nachdem, was Sie bei Skalierung definieren, kann die Samplegröße absolut (Welt) oder relativ (Bildschirm) angegeben werden.
Unterscheiden Sie zwischen:
- Welt: hier können die Werte bei Samplegröße als absolute Werte im Weltkoordinatensystem angegeben werden, dann stellt Samplegröße in etwa den Durchmesser einer Zelle dar, d.h. bei weit entfernter Geometrie erscheint die Zelldichte größer als bei naher.
- Bildschirm: hier wird der Zelldurchmesser in Bruchteilen der Ausgabegröße definiert, d.h. ein Wert von 0.1 entspricht 10 Zellen in der Breite. Hierbei sinkt die Zelldichte bei weiter entfernter Geometrie.
Über diese Regelung überlagert sind noch einige andere Algorithmen, die anhand anderer Kriterien (z.B. ergeben sehr niedrige Samplegrößen größere Zellen oder Geometrien wie Kugeln bekommen kleinere verpasst) dynamisch über die Zellgröße entscheiden.
Die Aktivierung dieser Option ist ein spezieller Kniff, um die Renderzeit für Projekte mit sehr vielen echten Lichtquellen zu beschleunigen. Es werden dabei für die GI-Berechnung (und nur für diese!) die von Lichtquellen beleuchteten Flächen direkt mit in die Licht-Maps aufgenommen:
Der Renderzeitgewinn je nach Projekt kann ziemlich groß sein (vereinfacht gesagt, werden Lichtquelleninformationen, die während der Berechnung der Licht-Maps gewonnen wurden, bei der danach folgenden primären GI-Methode wieder verwendet). Besonders bei einem QMC+LM-Rendering sind sehr gute Ergebnisse bei moderater Renderzeit zu erwarten.
Das folgende Bild wurde links mit QMC+QMC (Strahltiefe 8), Mitte mit QMC+LM (Direktes Licht deaktiviert), rechts mit QMC+LM (Direktes Licht aktiviert) gerendert:
Beachten Sie, wieviel schneller Direktes Licht bei guten Ergebnissen rendert. Durch die hohen Strahltiefen der Licht-Maps ist das Bild auch heller und realistischer.
Aktivieren Sie diese Option, werden für eine Kamerfahrt alle Sehstrahl-Startpunkte für die gesamte Kamerabewegung ermittelt. Das ist dann sinnvoll, wenn sich Anfangs- und Endbild der Kamerabewegung stark voneinander unterscheiden und daher sicher gestellt werden muss, dass die Licht-Map alle Blickwinkel "sieht". Denn dann wird nur ein einziger, unveränderter und damit stabiler (Licht-Map-)Cache zur Berechnung der Animation verwendet. Bewegt sich die Kamera nur geringfügig, wobei sich der Bildausschnitt nicht groß ändert, braucht diese Option nicht aktiviert zu werden.
Diese Option hat rein informellen Charakter und ändert nichts an der Licht-Map. Ist die Option aktiviert, werden Ihnen während der Berechnung fortlaufend die gerade berechneten Sehstrahlen angezeigt. Diese werden dann je nach Samplegröße in einer Zelle zusammengefasst und gemittelt.
Diese Option stellt eine Art Turboschalter dar. Ist die Option aktiviert, wird in einem 2. Schritt nach Berechnung der Licht-Map diese in eine Radiosity-Map umgerechnet und intern mit dieser gerechnet. Der Effekt ist eine starke Renderzeitverkürzung bei praktisch gleichbleibender Qualität (sowohl mit Methode IC+LM, als auch QMC+LM).
Nachteil: Radiosity-Maps sind sehr speicherintensiv bzgl. Arbeitsspeicher und auf Datenträger gespeichertem Cache. Bei komplexen Projekten kann es hier durchaus zu Problemen kommen. Es wird daher auch empfohlen, im Tab "Cache" auf das Speichern und Laden von auf dieser Art gewonnen Radiosity-Maps zu verzichten, zumal das Berechnen aus einer Licht-Map mit vernünftigen Einstellungen sehr schnell geht.
Dieser Parameter wirkt wie die gleichnamige Mapdichte bei den Radiosity-Maps-Einstellungen, nur dass das Sampling hier wesentlich rasanter vor sich geht. Kurz gesagt, regulieren Sie hier die Texelgröße.
Dieser Parameter wirkt wie die gleichnamige Sampleunterteilungen bei den Radiosity-Maps-Einstellungen, nur dass das Sampling hier wesentlich rasanter vor sich geht. Kurz gesagt, regulieren Sie hiermit eine Art "Antialiasing" für die Texel.
Licht-Maps homogenisieren
Die Vorfilter-Einstellungen sorgen dafür, dass eine unhomogene, fleckige Licht-Map (bzw. Radiosity-Map) in eine gleichmäßigere verwandelt wird, und zwar bevor sie überhaupt beim Rendern oder einer gewünschten, nachfolgenden Interpolation Verwendung findet.
Dies geschieht jeweils pro Zelle, je nach Einstellungen werden die Farben mehrerer benachbarter Zellen mit berücksichtigt, gemittelt und dann der Zelle zugewiesen. Dieser Vorgang ist bzgl. der Rechenzeit sehr schnell und ändert praktisch nichts an der Renderzeit.
Besonders im Zusammenhang mit der Primären Methode Irradiance Cache bei Animationen können die Pre-Filter-Einstellungen für ein geringeres Flackern sorgen.
Beachten Sie jedoch dabei, dass eine Art Weichzeichnungseffekt eintritt, der Details verschlucken und auch zu Lichtlecks führen kann (was durch bessere Einstellungen für Pfadanzahl und Samplegröße ausgeglichen werden könnte).
Schalten Sie hiermit den Vorfilter an und aus.
Mit diesem Parameter regeln Sie, wie groß der Radius um die aktuelle Zelle ist, in dem anderen Zellen herangezogen und gemittelt werden.
Zu große Werte lassen Details wegfallen und führen zu Lichtlecks.
Diese Funktionalität setzt auf den Vorfilter sozusagen noch einen drauf. Während des Renderns werden die Zellen der Licht-Map (bzw. der Radiosity-Map) dann wirklich interpoliert, sodass die Zellstruktur bei genügend hohen Einstellungen aufgelöst wird. Sie erhalten dann stetige Helligkeitsverläufe.
Bei Kombination mit dem Vorfilter erhalten Sie dann noch bessere Ergebnisse. Beachten Sie aber, dass das Interpolieren Rechenzeit benötigt und bei größerer Interpolation Lichtlecks zunehmen.
Sie haben hier mehrere Methoden zur Auswahl, wie die unstetigen Farbverläufe (Zellen) flächig interpoliert werden sollen:
- Keine: Es erfolgt keine Interpolation (die Berechnung geht also schnell vonstatten), das Auftreten von Lichtlecks wird minimiert, aber die primäre GI-Methode sieht die Zellen. Ausreichendes Vorfiltern kann hier etwas Abhilfe schaffen.
- Nächster: Eine spezifische Anzahl (definiert mit Sampleanzahl) in der Nähe liegender Samples wird ermittelt und deren Farben gemittelt. Dies ist kein absoluter Wert, da er die Samplegröße mit in die Berechnung einbezieht, d.h. bei größerer Sampledichte verkleinert sich der Radius, in dem die hier berücksichtigten Samples liegen.
- Fest: Mit dieser Methode wird in Abhängigkeit von Größe ein fester Abstand um den zu berechnenden Punkt ermittelt und eine Anzahl von Samples genommen. Diese Methode "weichzeichnet" am stärksten.
Wie wirkt sich das ganze praktisch aus? Folgendes Bild zeigt Ihnen das (aus Anschauungsgründen wurde hier auf ein Vorfiltern verzichtet):
In diesem Options-Menü können Sie sich Licht-Maps anzeigen lassen: wenn Sie hier Visualisieren definieren, wird die Primäre GI-Methode nicht berechnet, sondern nur die Sekundäre angezeigt und berechnet. Die vorhergehenden Bilder wurden alle mittels dieser Methode errechnet. Diese eignet sich sehr gut, um die Licht-Map vor dem eigentlichen Rendern feinzujustieren.
Das finale Rendern muss daher IMMER in der Methode Normal geschehen.
Im übrigen dient dieser Modus dazu, Licht-Map-Caches (ohne finales Rendern) vorauszuberechnen.