Flicker-Reduktion bei Animationen in Vue

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Susann Houndsville.

  • Hallo zusammen,


    kürzlich wurde etwas mehr die Möglichkeit von Animationen/Filme mit e-onsoftware Vue angesprochen (hier und auf Facebook), sodass ich begonnen habe, mich etwas mehr mit dem Thema zu beschäftigen.

    Es gibt nicht besonders viel Material zu diesem Thema auf dem Netz oder in Tutorials zu Vue, das ja doch schon länger existiert und eine gewisse Fan-Gemeinde hat. Ein Teil der Erfahrung von Usern ist vielleicht mit den Foren bei Cornucopia3D und e-onsoftware verschwunden, allerdings gibt es kaum systematische Anleitungen und manchmal auch widersprüchliche Tipps.

    Was auf jeden Fall immer wieder zur Sprache kommt beim Rendern von Videos mit Vue ist das Flicker/Flimmern. Dieses Problem wird vor allem bei Animationen mit Vegetation in einer gewissen Entfernung von der Kamera beobachtet. Rein technisch ist das nicht unerwartet weil gerade Vegetation mit Grashalmen und Blättern viele kontrastreiche Kanten enthält, wo zumal in Bewegung das Problem der Rasterung beim Rendervorgang hervortritt. Eine starke Kompression beim Video hosting (Youtube etc) hilft auch nicht, und kann zusätzlich Unruhe in Flächen hineinbringen. Gegenmittel sind besseres Antialiasing und Blurring in der Distanz (entweder als Nebel/Dunst oder Unschärfe). Zusätzlich kommen weitere Formen des "Verschmierens" wie Motion Blur und Denoising dazu, welche man evtl. besser erst bei der Bearbeitung in einer Videoschnittsoftware anwendet. Eine weitere Herausforderung bei Animationen ist natürlich die Rechenzeit, die mit höherer Qualität des Renderns zunimmt.


    Also habe ich mir gedacht, ich probiere mal ein paar Dinge aus, poste die fertige Animationen hier und vielleicht kommen ein paar interessante Tipps&Tricks zusammen8)


    Das 3D Programm das ich am besten kenne ist Cinema4D. Also habe damit begonnen und eine einfache Kamerafahrt auf ein Podest zu eingerichtet, hier mit Gräsern drauf (ohne Bewegung) und mit dem "Physical Renderer" berechnet, ein gutmütiger wenn auch etwas behäbiger Renderer. Leider produziert selbst Vimeo ziemlich viele Kompressionsartefakte bei kleinformatigen Videos was das Bild unruhig macht...aber betreffend des Flackerns gibt es eigentlich kaum Probleme damit.



    Der erste Versuch in Vue dann mit einem Objekt, keine Vegetation. Dabei gibt es natürlich sehr viel weniger kontrastreiche Kanten. Auch eine geringe Renderqualität, die lediglich 10 Sekunden pro Bild auf einem 9 Jahre alten Mac benötigte, kann ausreichen. Die Glanzlichter auf dem Wal kann man wohl als Glitzern tolerieren (oder verhindern durch entsprechende Anpassungen der Materialien). Der Wal ist natürlich von Susanne Houndsville.



    Richtiges Flimmern/Flickern wird dann mit einem Gras-Ecosystem auf dem Podest demonstriert <X Als Rendersettings wurde "Broadcast" gewählt und keine Settings verändert, was defaultmässigen schwachen Wind bei den Atmosphären-Einstellungen mit einschliesst, also der "Worst Case". Die Challenge ist jetzt, für diesen Problemfall Settings oder Methoden zu finden, um das Flackern zu verhindern....


  • Richtiges Flimmern/Flickern wird dann mit einem Gras-Ecosystem auf dem Podest demonstriert <X Als Rendersettings wurde "Broadcast" gewählt und keine Settings verändert, was defaultmässigen schwachen Wind bei den Atmosphären-Einstellungen mit einschliesst, also der "Worst Case". Die Challenge ist jetzt, für diesen Problemfall Settings oder Methoden zu finden, um das Flackern zu verhindern....

    Leider habe ich selbst z.Zt. kein Zeitfenster übrig um mich näher mit diesem Problem zu beschäftigen. Sinnvoll wäre es aber wenn du die Szene-/Animationsdatei als Downlaod hier zur Verfügung stellen könntest.


    VG

    SIG

  • Danke SIG, und ja, ich werde eine Szene bzw. deren Varianten zur Verfügung stellen, wenn ich mich etwas schlauer gemacht habe was die relevanten Parameter sind. Auf jeden Fall wird jetzt schon deutlich welche Art von Vegetation die meisten Probleme bringt. Im Moment arbeite ich mit einer Szene mit nur noch wenigen Grasbüscheln und optimiere das AA, die Geschwindigkeit ist erstmal weniger wichtig.

  • Ich hab mit Animationen in Vue auch keine große Erfahrung und für Situationen wie das Gras leider noch nicht "die" Lösung gefunden, aber das sind meine bisherigen gesammelten Erkenntnisse:


    1. Zuerst muss man feststellen: Was flickert eigentlich?


    Hier gibt es vier Möglichkeiten:

    • Objektkanten flickern 
    • Texturen bzw. Materialien flickern
    • Schatten flickern
    • Indirekte Beleuchtung flickert


    2. Welche Einstellungen beeinflussen die Renderqualität des flickernden Elements?

    Objektkanten flickern – relevante Einstellungen:

    • Object-AA-Typ: Systematic oder Optimized; bei "Systematic" wird AA grundsätzlich über jeden einzelnen Pixel das Bildes gelegt, was das Rendern extrem verlangsamt, für hauchdünne Details wie Gras, Stromleitungen in der Ferne u. Ä. aber die einzige Möglichkeit ist, um flickerfrei gerendert zu werden. Bei "Optimized" ist das Rendern deutlich schneller, weil Vue nur an bestimmten Stellen AA anwendet, die besonders große Kontraste oder Objekt-ID-Unterschiede aufweisen (siehe unten). Für Stills ist das ausreichend, ebenso wie für Animationen ohne feine Details oder Szenen ohne polygonale Geometrie (z.B. reine Wolkenrender). Für Gras und Ähnliches aber nicht.
    • Object-AA-Strategie: Crisp, Sharp, Soft, Blurred; mit dieser Auswahl legt man fest, welcher von vier verschiedenen AA-Algorithmen zur Anwendung kommt. "Crisp" macht das Bild am Schärfsten, benötigt dafür aber auch die höchsten Einstellungen. "Blurred" erzeugt ein recht weichgezeichnetes Ergebnis, das aber auch dementsprechend niedrigere Einstellungen benötigt, um flickerfrei zu sein. Es ist also für Animationen die erfolgverspechendste Einstellung, allerdings auch ggf. nicht scharf genug. Dann sollte man "Soft" als nächsthöhere Schärfestufe ausprobieren.
    • Min/Max Subrays: Das sind die eigentlichen Qualitätseinstellungen für das AA. Hier wird festgelegt, in wie vielen Durchgängen Vue einen Pixel "nachbearbeitet", damit er hinterher eine weiche Kante bekommt. "Min" beschreibt hierbei die Mindestanzahl an Durchgängen und "Max" die Maximalanzahl.
    • Regular Sub-Pixel-Sampling: Hier wird festgelegt, ob die zusätzlichen Min/Max-Rays, aus denen ein AA-Durchgang besteht, immer nach demselben Muster in die Szene geschossen werden oder immer von zufälligen Positionen. Letzteres dauert länger, kann aber ungewollte sichtbare "Moire"-Muster entfernen. Da solche Artefakte nur selten sichtbar sind, sollte die Checkbox am besten immer angeklickt bleiben, um Zeit zu sparen.
    • Contrast & Geometry-Slider: Diese Slider legen fest, ob es wahrscheinlicher ist, dass Vue die Mindestanzahl an Durchgängen oder die Maximalanzahl verwendet. Je höher der Quality-Regler, desto höher sind die eigenen Ansprüche der Render-Engine, bevor sie für sich entscheidet, dass der Pixel nun "weich genug" ist. Diese Entscheidung trifft Vue anhand zweier Kriterien: Contrast & Geometry. Bei "Contrast" vergleicht Vue den Farbkontrast zwischen dem Pixel und den ihn umgebenen Pixeln. Ist er zu hoch, also die Qualitätsschwelle des Contrast-Reglers noch nicht erreicht, gibt es mehr AA-Durchgänge, um den Kontrast abzusenken und weiche Übergänge zu schaffen. Bei "Geometry" prüft die Engine den Unterschied zwischen Objekten, also die Objekt-IDs der Szene. Stellt euch einen Baum als Einzelobjekt vor, der vor einem Haus steht. Beides sind zwei getrennte Objekte in der Szene. Mit diesem Regler könnt ihr also ein höheres AA bei sich gegenseitig verdeckenden Objekten erzwingen. Dadurch kann man das AA also selektiv für Objekte in der Szene erhöhen, ohne dass der Rest der Szene wie z.B. Himmel o.Ä. höheres AA bekommt. Setzt also einen niedrigeren Wert für "Contrast" an und einen höheren für "Geometry", um das AA selektiv zu verstärken. Achtung: Der Geometry-Slider hat keine Auswirkung auf das AA von Ecosystems, weil diese ja alle zu ein und demselben Objekt gehören (entweder ein globales Ecosystem oder ein Material-Ecosystem auf einem Objekt) und damit dieselbe "ID" haben. Hier hilft also nur Contrast.

    Texturen oder Materialien flickern – relevante Einstellungen:

    • Texture Filtering: Diese Einstellung darf für das AA von Materialien nicht auf 0% stehen, sonst haben alle nachfolgenden Texture-AA-Einstellungen keinen Effekt. Im Gegensatz zum Object-AA betrifft Texture-AA ja keine Objektkanten, sondern ganze Objektoberflächen, D.h. man muss Vue mitteilen, welchen durchschnittlichen Radius auf einer Oberfläche die Software weichzeichnen soll, um das Flickering zu reduzieren. Denn AA ist im Grunde nichts anderes als das Weichzeichnen von Pixeln. Ist Texture Filtering auf 0%, zeichnet Vue folglich gar nichts weich und es gibt kein Texture-AA. Je höher der Wert, desto größer der Blur-Radius, desto verschwommener aber auch die Texturen. E-on empfiehlt 33% als Balance zwischen Flickern und zu weichen Texturen. Im Falle von Bitmap-Texturen werden zudem für Objekte in der Ferne niedrig aufgelöste Varianten erstellt (z.B. 64x64, 128x128, 256x256 etc.), die aufgrund ihrer niedrigeren Details weniger flackern und gleichzeitig weniger RAM verbrauchen. Dieser Vorgang wird als "MIP-Mapping" bezeichnet und kann im Function Editor eines Materials für jede Textur einzeln an- und ausgeschaltet werden (Checkbox "Allow MIP-mapping"). Aus oben genannten Gründen sollte die Option eigentlich immer angeschaltet bleiben. Prozedurale Materialien werden nach dem eingangs erwähnten Prinzip weichgezeichnet.
    • Recompute Subrays: Diese Option legt fest, ob auch Transparenzen und Reflexionen AA erhalten oder nicht. Gerade in Szenen mit z.B. Gegenlicht auf einer Wasseroberfläche reflektiert die Sonne sehr stark, was ohne diese Checkbox bei statischen Rendern Rauschen verursacht und in Animationen extrem starkes Flickering.
    • Min/Max & Quality Threshold: Dieselben Einstellungen wie beim Object AA. Das Texture Filtering bestimmt sozusagen die durchschnittliche Größe, auf die das Texture AA Anwendung findet, und die Min/Max/Quality-Regler bestimmen dann wieder die Anzahl der Durchgänge.

    Schatten flickern – relevante Einstellungen:

    • Advanced Effects Quality: Dieser Regler in den Rendereinstellungen kontrolliert die Qualität von volumetrischen Lichtern, die Qualität von weichen Schatten ("Soft Shadows") und die Qualität der indirekten Beleuchtung. Wenn man den Regler hochschraubt, werden all diese Elemente gleichzeitig in der Qualität erhöht, was zu viel sein kann, wenn man nur die Schatten verbessern will. Deshalb sollte man statt des globalen Reglers lieber die Einstellungen getrennt voneinander bearbeiten (Button "Edit" neben dem Regler). Die Schattenqualität ist an den "Volumetrics"-Slider in den "Advanced Effects"-Einstellungen gekoppelt, was ich persönlich etwas sinnlos finde, denn damit wird ja auch die volumetrische Beleuchtungsqualität gleichzeitig erhöht. Ich habe bei e-on kürzlich angefragt, ob wir in einem zukünftigen Update einen extra Regler nur für die Schatten bekommen können.
    • Quality Boost im jeweiligen Licht: Editiert man die Optionen eines Lichts, gibt es einen Quality-Boost-Slider, der die Schattenqualität für dieses eine Licht nach oben schraubt. Anstatt des Reglers kann man mit einem Klick auf "Edit" neben dem Regler auch wieder mit den bekannten Min/Max-Einstellungen arbeiten. In diesem Fall bestimmt dann der oben erwähnte "Volumetrics"-Slider in den "Advanced Effects" die Wahrscheinlichkeit, ob eher der Min- oder der Max-Wert verwendet wird.

    Indirekte Beleuchtung flickert - relevante Einstellungen:

    •  Auch hier sind wieder die erweiterten Optionen für die "Advanced Effects" verantwortlich. Diese sind getrennt in die "Verteilung" der Stichproben des indirekten Lichts in der Szene ("Samples") und die "Intensität" des reflektierenden Lichts im Falle von "Global Radiosity" als Beleuchtungsmodell ("Photoneneinstellungen" auf dem zweiten Tab). Ich habe mich mit den einzelnen Einstellungen noch nie beschäftigt, deshalb verweise ich an dieser Stelle auf das Handbuch. Der nächste Punkt ist nämlich deutlich einfacher zu handhaben, als sich durch diese Einstellungen zu wühlen.
    • Quality Boost auf dem "Lighting"-Tab im Atmosphären-Editor: der "Quality Boost"-Slider erhöht automatisch die Photonen- und Sample-Einstellungen der "Advanced Effects", um Flickern (ein "pulsierender" Effekt) bei indirekter Beleuchtung zu reduzieren.
    • Zusätzlich lohnt es sich, in den allgemeinen Rendereinstellungen "Ignore indirect lighting on plants" zu aktivieren. Das macht das Rendern nicht nur bedeutend schneller, sondern reduziert auch die Flickerwahrscheinlichkeit bei Pflanzen und Ecosystems, weil sie keine indirekte Beleuchtung erhalten. Meist ist der Unterschied in Bewegung kaum sichtbar.

    Sonstige Einstellungen

    • Advanced Animation Options: Animationen haben zusätzlich über einen Rechtsklick das entsprechende Filmkamera-Icon in der Timeline noch eigene "Advanced Animation Options"-Einstellungen. Dort gibt es die Checkboxen "Distance blurring" und "Multi-Frame-AA". Beide Einstellungen sollten immer angeschaltet sein. "Distance Blurring" zeichnet weit entfernte Objekte noch zusätzlich zu der gewählten AA-Strategie weich (ich nehme mal an, dass Vue das anhand der Z-Depth-Informationen macht?), um Flickern in der Ferne zu reduzieren, und die "Multi-Frame-AA"-Einstellung sorgt dafür, dass bei der Überprüfung der Kontraste an Objektkanten nicht nur die Kontraste des aktuellen Einzelbilds herangezogen werden, sondern Vue zusätzlich noch die Kontraste mit dem vorherigen gerenderten Einzelbild vergleicht und ggf. das AA nochmal erhöht, wenn sich von einem Frame zum nächsten eine größere Veränderung ergeben haben sollte. Inwiefern beide Einstellungen die Renderzeit verlängern, habe ich noch nicht getestet.
  • Hier hab ich nochmal eine Aufname, wo man es auf einer Textur sieht:


    Es erscheint wie Daniel sagt, auch auf Texturen.

    (Das Moos auf den Kugeln ist eine wunderbare Textur von Quadspinner)

    Ich habe das AA schon eingestellt, werde aber das Advanced noch testen.

    Natürlich möchte ich auch nicht, dass alles zu unscharf wird.

    Die Rendereinstellungen die ich verwendet habe sind diese hier:

    Allerdings hab ich auch schon versucht, die Texturfilterung auf weich zu stellen, man sah es immer noch aber es war im gesamten unschärfer.

  • Du hast Texture Filtering auf 0% stehen, d.h. deine gesamten Texture AA-Einstellungen haben keine Auswirkungen. Deshalb flackern die Texturen. Setze Texture Filtering mal nach oben und rendere einen neuen Test.


    Wenn du das schon versucht hast (so interpretiere ich gerade deinen letzten Satz), dann musst du zusätzlich die Qualität des Texture AA nach oben setzen, damit das Flickern reduziert wird.

  • Es ist auf jeden Fall die einzige Möglichkeit, das Flackern zu entfernen :( Mangels Erfahrung kann ich dir hier keine gute Kombination an Einstellung nennen. Das musst du durch Experimentieren selbst herausfinden. Ich würde gefühlt TF erst einmal auf 33% lassen und denselben Wert für Min/Max bei Texture AA auswählen. Ruhig etwas richtig hohes, z.B. 50/50. Wenn das Flackern dann weg ist, kannst du die Min/Max-Werte so weit reduzieren, bis das Flackern wieder auftaucht. Dadurch hast du dann deinen Schwellwert gefunden. Anschließend kannst du mit TF experimentieren, um die Unschärfe so weit zu reduzieren, dass sie für dich optisch annehmbar ist.

  • Daniel : Vielen Dank für die wertvollen Tipps! Solche Anwendungsstrategien für verschiedene Formen des Flimmerns/Flackerns sind sehr nützlich für die praktische Arbeit und können viel Zeit sparen, gerade für die aufwändigen Animationen.


    Beim Gras und ähnlicher Vegetation ist das auf jeden Fall das Object-AA relevant. Nur schon das Wechseln auf "systematic" hat hier schon viel für die Bildqualität getan. Jetzt muss ich diese und andere Settings nur noch in einer Animation testen, was eine Weile dauern wird....

  • Was ich zu diesem Tema auch mal gelesen hab:

    In einem Keyshotforum wurde dazu angsprochen, dass die Lichtfarbe niemals reinweiß sein sollte, das wäre physikalisch unmöglich und erzeuge auch ein solches weisses flickering auf Objekten?