slit-scan in AviSynth?

  • Hallo!

    Habe auf Youtube folgendes Video gefunden und finde den Effekt total super. Hat jemand eine Idee, wie man sowas in AviSynth realisieren kann?

    Danke für jede Hilfe,

    mfg,

    as

  • Hello,
    das Video ist von mir. Super, da kann ich mich mal für die zuverlässige Hilfe vom Gleitz-Forum revanchieren. Das Script ist ziemlich lang, um das direkt hier zu posten, ich hab mal aus .avs eine .txt gemacht und angehängt.
    Ich hab das einfach mit Gewalt runtergeschrieben, dass könnte man bestimmt auch irgendwie elegant mit einer Schleife machen, weil das Prinzip ist ziemlich simpel aber ich kenn mich mit sowas nicht aus. Ich habe das mit AvsP gemacht, da gibt es dann auch ein paar slider mit denen man die Breite der einzelnen "gescannten" Streifen einstellen kann, und ob die immer an der gleichen Stelle des Bildes ausgeschnitten werden oder von links nach rechts usw.
    Verbesserungsvorschläge oder noch lieber Verbesserungen sind willkommen.

    aloha

  • Diese Art Effekt kann man auch gezielt nutzen, das heißt dann "Time Displacement".

    Beispiel:
    http://de.youtube.com/watch?v=I2MsDogV4g4

    Prinzip:
    Das Video wird mit einem Graustufenbild (Displacement-Map) überlagert. Ein Graustufenbild hat 256 Helligkeitswerte. Die Teile des momentanen Bildes, die mit helleren Werten der Map überlagert werden, werden durch Pixel aus später folgenden Frames des Quellvideos ersetzt und die Teile mit dunkleren Werten werden mit Pixeln aus schon vergangenen Frames des Quellvideos ersetzt. Bei einem Grauwert von 128 verbleiben die Pixel des aktuellen Frames unverändert. Mit folgender Formel kann man das Graubild auswerten:

    Displacement amount in seconds = maximum_displacement_time * (2 * (luminance_value – 128) / 256)

    Nimmt man statt eines statischen Graustufenbild ein Graustufenvideo, kann man damit ziemlich verrückte Verzerrungseffekte erstellen.

    So, wer will das Script programmieren? :zunge:
    Ich glaube in Adobe´s After Effects ist das doch etwas angenehmer zu händeln. :)

    greets
    LTJ

  • Graustufen? ... Schade. ;)

    Mir schwebte mal vor, das Displacement über "Tangent Space Normal Maps" umzusetzen. Da wäre also eine Abweichung in beiden Richtungen möglich.

    Eventuell wäre es da sinnvoll, grün und blau zu tauschen.

  • helo,

    @LTJ
    Ich denke Du hast Recht und ich hätte das auch in Aftereffects machen können.
    Allerdings ist das Prinzip des Scripts ein etwas anderes als das des time- displacement Effekts: Das Script schneidet die Streifen einzeln aus und reiht sie dann mit stackhorizontal zu einem Bild auf. Deswegen könnte es theoretisch auch immer den Streifen an der gleichen Position der verschiedenen Frames "scannen" und so aus einem ganzen Film ein sehr langes Bild produzieren auf dem man dann die Schnitte und bestimmte Bewegungen (zooms zum Beispiel) auf einen Blick sehen könnte. Ich hab das so ähnlich mal für einen Ausschnitt aus dem Video "Rock with you" von Michael Jackson gemacht. (siehe Bild) Das würde mit "time displacement" imho nicht gehen.


    LigH
    "Tangent Space Normal Maps"? Das hört sich spannend an.
    Was würde man dann für Daten für das Displacement verwenden ausser auch andere Videos? Und wieso zwei Farben? Wenn 50% Grau als Nullpunkt gesetzt wird, kann man doch mit Graustufen auch in beide Richtungen gehen.

    ahoi
    philm

  • Mit "beide Richtungen" meine ich: Sowohl vertikal als auch horizontal. Dafür braucht man allerdings zwei Werte. Und eine Graustufe ist nur ein Wert.

    Das wäre allerdings räumlich, nicht zeitlich.

    Wer das ganze so richtig auf die Spitze treiben will, der kann natürlich auch gern einen YUV-Clip verwenden: Analog zu den Texturkoordinaten u (horizontal -) und v (vertikal |) nehme man U = Cb = Blauabweichung und V = Cr = Rotabweichung für die räumliche Verschiebung, und die Helligkeit Y für die zeitliche.

    ...

    Sagt mal, auf welchem Trip sind wir hier eigentlich?! [Blockierte Grafik: http://cosgan.de/images/smilie/konfus/s065.gif]

  • diese Zeitkapseln haben echt komische Nachwirkungen...

    Nein, im Ernst: Das sind jetzt aber, drei Wünsche (oder Probleme) auf einmal, die ich (als absoluter avisynth laie) mal so auseinanderzufuzzeln versuchen würde:
    1. Eine Art map-plugin, mit dem sich die Stärke von allen möglichen Filtern über Werte von graustufenmaps oder Kanälen steuern lassen.
    2. Mal grob gesagt: Ein Zugriff auf Zeitfunktionen, also das, was ich mit dem Skript versucht habe, aber eben äusserst unelegant, in dem ich einfach mit trim viele zeitlich verschobene clips erstelle. Oder eben das, was time-displacement in After Effects macht.
    3. Dreidimensionales Mapping, wenn ich Ligh richtig verstehe, also das aufspannen von Videos auf Körper.

  • Hallo,

    1. Verstehe nicht was du genau damit meinst
    2. Den AE Timedisplacement-Effekt kann man mit etwas Zeit ganz bestimmt als eigenes C/C++-Plugin oder als AVISynth-Script realisieren. Vielleicht versuche ich das mal, wenn ich Lust habe.
    3. Das ist mir zu hoch :hm:

    greets
    LTJ

  • 1. könnte man mit Overlay() hinkriegen, diese Funktion hat einen "mask"-Clip.

    2. geht zwar per Animate() und die Gruppe der ConditionalFilter()-Funktionen, jedoch werden Plugins diese Werte effizienter verarbeiten können.

    3. meinte ich anders: Cb und Cr (oder B und R) könnten eine spatiale Verzerrung definieren, Y (oder G) eine temporale Verzerrung des Bildes. So was wie ein Linseneffekt. Aber perspektivische Verzerrungen auf 3D-Körperoberflächen wäre mir eine Aufgabe für Raytracer, nicht für AviSynth.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!