Cache
Allgemeines
Es gibt grundsätzlich 2 Arten, AO zu berechnen:
- die gewohnte "Brut Force"-Methode, die für jedes Pixel auf Umgebungssichtbarkeit prüft.
- die schnellere Methode per Cache, die nur spezielle Punkte auf Umgebungssichtbarkeit prüft und dazwischenliegende interpoliert.
Letztere funktioniert intern ähnlich wie der GI-Modus Irradiance Cache und lässt sich auch durch ähnliche Parameter kontrollieren. Der Vorteil dieser Methode:
- die AO-Berechnung erfolgt wesentlich schneller
- der Cache lässt sich zwischenspeichern und wiederverwenden (das ist sehr praktisch, da AO Material- und Beleuchtungsunabhängig ist), d.h. wenn Sie verschiedene Ansichten eines Objekts mit AO rendern möchten, werden vorher schon abgearbeitete wieder verwendet, indem der Cache geladen wird und nur die neuen Bereiche berechnet werden. Das funktioniert allerdings nur, wenn sich an den Objekten bzgl. Geometrie, Abstand zueinander und allem anderen, was AO betreffen könnte, zwischenzeitlich nichts geändert hat.
Ambient Occlusion und Team Render
Wenn Team Render Server bereits vorhandene AO-Cache-Dateien verwenden soll, achten Sie darauf, diese Cache-Dateien (im Szenenverzeichnis im Ordner "illum", die Dateien haben die Dateiendung *.ao) ebenfalls mit hochzuladen und die unten beschriebene Option Automatisch laden zu aktivieren.
Parameter
Lassen Sie sich von der Vielzahl der folgenden Parameter nicht verwirren. Da AO hier ähnlich wie ein Irradiance Cache funktioniert, finden Sie größtenteils die gleichen Parameter. In den allermeisten Fällen beschränken Sie sich auf das Ändern von Eintragsdichte. Diese Einstellung definiert die untergeordneten Parameter dann entsprechend (ändern Sie diese nur separat, wenn Ihnen das AO fehlerhaft oder nicht präzise genug erscheint).
Kurz zur Funktionsweise des AO-Caches: Wenn Sie rendern, werden zunächst mehrere Vorberechnungen (die sog. "Prepasses") vorgenommen, währenddessen das Projekt analysiert wird, um dann an den wichtigsten für die Kamera sichtbaren Stellen (den sog. "Shadingpunkten" in Ecken, Vertiefungen etc.) auf Sichtbarkeit der Umgebung zu prüfen und einen AO-Wert zu berechnen:
All diese AO-Werte werden in einem AO-Cache zwischengespeichert und auf Wunsch auch als Datei zur späteren Wiederverwendung abgelegt.
In einem zweiten Schritt wird zwischen den nur punktuell vorhandenen AO-Werten interpoliert und geglättet.
Die folgenden Einstellungen dienen primär der Verteilung der Shadingpunkte (zur Erinnerung: die Parameter des Untertabs "Basis" regeln u.a. wie viele Strahlen halbkugelförmig an jedem Shadingpunkt generiert werden, deren Länge und der Färbung des Effekts).
Ist die Option deaktiviert, arbeitet AO folgendermaßen: für jedes Pixel wird die Sichtbarkeit der Umgebung berechnet. Aktivieren Sie hingegen die Option, kommt der im vorherigen Absatz beschriebene AO-Cache zur Anwendung.
Dies ist die Anzahl der Strahlen, die an jedem Shadingpunkt in Richtung einer Halbkugel losgeschickt werden. Wenn das AO fleckig anmutet, ist das der Parameter, der höher gestellt werden sollte.
Zwei fast schon vernachlässigbare Parameter. Man muss hier schon sehr genau hinsehen, um einen Unterschied zu sehen. Die "schlechteste" Einstellung für Min. Rate und Max. Rate (beide -8) unterscheidet sich nur wenig von der besten (-8 und +4) (s. Abbildung).
Trotzdem soll nicht unerwähnt bleiben, was die beiden Parameter tun: Während der Berechnung der Prepasses (die Phase, wo in mehr oder weniger schneller Folge zuerst grobe und dann immer kleinere Quadrate angezeigt werden wird ermittelt, wie die Shadingpunktdichte verteilt wird. Das ganze ist ein adaptiver Prozess, bei dem besonderes Gewicht auf die kritischen Bereiche gelegt wird. Die Differenz zwischen Min. Rate und Max. Rate bestimmt die Anzahl der Prepasses.
0 bedeutet jeweils volle Bildauflösung (Pixelgröße 1*1), während -1 eine Pixelgröße von "2*2", -2 "4*4" usw. darstellt. Min. Rate sollte sinnvollerweise stets kleiner bzw. gleich groß wie Max. Rate sein. Es sind allerdings auch positive Werte möglich, was Cacheeinträge im Subpixelbereich erlaubt (dies könnte beispielsweise bei Subpolygon Displacement sinnvoll sein, wenn Details verschluckt werden).
Es ist sinnvoll, diese 3 Parameter zusammen zu beschreiben, da sie alle drei zusammenwirken und vereinfacht gesagt, die Shadingpunktdichte allgemein, an kritischen und unkritischen Stellen definieren:
- Dichte: Die allgemeine Shadingpunktdichte unter Berücksichtigung der nächsten beiden Parameter.
- Minimalabstand: Die Shadingpunktdichte an kritischen Stellen (z.B. in Ecken)
- Maximalabstand: Die Shadingpunktdichte an unkritischen Stellen (z.B.plane Flächen ohne sichtversperrende Elemente)
Für eine Abbildung von verschiedenen Werten dieser Parameter riskieren Sie einen Blick auf die Dichte der GI-Einstellungen. Die Shadingpunktverteilung entspricht genau der der AO-Cache-Verteilung.
Alle eben beschriebenen Parameter drehten sich um die Platzierung von Shadingpunkten und deren Berechnung.
AO wurde also an vielen Stellen des Projekts punktuell ermittelt. Beim Rendern schließlich muss aus dieser punktuellen Verteilung eine flächige gemacht werden. Ein Glätten-Algorithmus macht das folgendermaßen: Für jedes zu rendernde Pixel einer Objektoberfläche wird der AO-Cache durchsucht, um Einträge in dessen unmittelbarer Nähe zu finden und deren Werte für dieses Pixel zu interpolieren.
Kurz gesagt: Zu kleine Werte lassen das AO fleckig erscheinen, während größere zu homogeneren Ergebnissen (aber selbst diese können zu kleine Samples-Werte nicht ausbügeln) führen. Allgemein kann man sagen, höhere Werte berücksichtigen für das zu rendernde Pixel mehr Shadingpunkte.
Paradoxerweise können dann extrem große Werte wieder zu fleckigen Ergebnissen führen.
Ist die Option deaktiviert, spielt die zu rendernde Ausgabegröße keine Rolle bei der zur Ermittlung der Shadingpunktdichte. Sie ist stets konstant, egal, ob Sie in einer Auflösung von 80*80 Pixel oder 3000*3000 rendern. Diese ist dann im ersten Fall zu groß und im zweiten zu klein.
Wenn Sie die Option aktivieren, wird die Shadingpunktdichte an die Ausgabegröße gekoppelt.Das führt zu insgesamt flexiblerer und angepasster Shadingpunktdichte.
Ein Klick auf diesen Button löscht evtl. für dieses Projekt angelegte AO-Cache-Dateien von Ihrem Datenspeicher. Das sollten bei oben genannten Projektänderungen tun, damit es nicht zu fehlerhaften Ergebnissen kommt. Ist die Option Automatisch laden deaktiviert, müssen Sie den Cache nicht löschen, da evtl. vorhandene Cache-Dateien sowieso nicht berücksichtigt werden.
Rechts neben dem Button finden Sie eine Angabe (Eintragsanzahl im Cache und Größe des Caches), ob CINEMA 4D einen passenden, abgespeicherten Cache gefunden hat
Prepass überspringen (falls vorhanden)
Kurz zur Funktionsweise des AO-Caches: Angenommen, zur Renderzeit liegt kein vorher gespeicherter Cache vor; der Cache muss komplett neu berechnet werden. das geschieht in mehreren Prepasses, wo allerlei am Projekt analysiert, Bereiche für weitere Berechnungen festgelegt werden etc., bevor dann tatsächlich die Cache-Einträge in ihren Farben berechnet werden. Das dauert eine gewisse Zeit. Liegt dagegen schon ein gespeicherter Cache vor, wird zwar auch hier noch allerhand auf Plausibilität des vorhandenen Caches zum Projekt geprüft, allerdings kann dieser Schritt durch Aktivierung von "Prepass überspringen" ausgelassen werden. Dadurch wird die Berechnung beschleunigt.
Falls überhaupt kein Cache vorliegt, wird dieser unabhängig von dieser Einstellung auf jeden Fall berechnet.
Falls ein schon vorher berechneter Cache vorliegt, zwischenzeitlich aber die Perspektive geändert wurde (oder Sie den AO-Cache für winzige Bilder berechnet haben, dann aber riesige Bilder berechnen), ist es nicht ratsam, diese Option zu aktivieren, da es hierbei zu fehlerhafter Berechnung kommen kann.
Ist mit der folgenden Option Automatisch speichern bereits eine Cachedatei abgespeichert worden, so sorgt diese Option Automatisch laden, dass dieser auch verwendet wird. Ist keine vorhanden, wird der Cache neu berechnet.
Bei aktivierter Option wird die Cachedatei automatisch gespeichert. Wenn kein separater Speicherpfad angegeben ist, stets in einem Verzeichnis "illum" im Speicherpfad Ihrer Szene. Der Dateiname lautet folgendermaßen: "Dateiname.ao". Wird für jedes Animationsbild ein eigener Cache berechnet (Option Vollanimationsmodus) so lautet der Name "Dateiname0000x.ao".
Ist die Option aktiviert, wird der Cache für jedes Animationsbild neu berechnet und mit eigenem Namen gespeichert. Bei deaktivierter Option wird ein und derselbe Cache für eine Animation verwendet (sofern wiederum ebenfalls Automatisch speichern und Automatisch laden aktiviert ist). Letzteres funktioniert dann aber nur Animationen, die nichts am Zustand der AO-Situation (wie Objektanimationen) ändern! Andernfalls kann es zu fehlerhaften Berechnungen kommen. Sofern sich also Objektpositionen oder -formen ändern, sollte Vollanimationsmodus aktiviert werden.
Beachten Sie beim Speichern von Caches, dass der Vollanimationsmodus eine Vielzahl von Dateien anlegt, die durchaus eine Menge Speicherplatz beanspruchen können!
Möchten Sie den AO-Cache an einem beliebigen Speicherort unterbringen, so aktivieren Sie diese Option und wählen einen entsprechenden Speicherpfad aus.