Ben®
09.09.2011, 15:43

Render-Tricks - "Motion Blur" (Viele Bilder - Ladezeit!)

Moin LLL,

nein kein Filmtitel mit Matthias Schweighöfer ist hier gefragt....

Hier möchte ich statt dessen mal meine Erfahrungen und meinen Output aus dem PovRay 3.6 (mit Erweiterung um MEGAPov 1.21) vorstellen.

[image]


Ausgehend von diesem Bild von vor 5 Jahren habe ich nach Verbesserung im Ergebnis gesucht.

[image]


Was relativ flott zu machen war: Sticker! Es gibt ja mittlerweile im Download-Paket von LDraw einen "Sticker Generator".
(Hier hatte ich die Schwierigkeit, daß die BMP-Files für die Vorlagen nur 8bit Farbtiefe haben dürfen. => "Irfan-View" wollte da bessere Vorlagen erstellen, die nicht verarbeitet werden können. Schwierigkeit Nr. 2 lag darin, daß meine Sticker-.DAT Dateien mit Komma statt Punkt gesetzt wurden. Ließ sich im simplen Windows-Editor bereinigen per [Strg]+[H]).

***********

Weiterhin war ich mit meinen Bildergebnissen unzufrieden wenn ich sie als Grundlage für Filme verarbeiten wollte: das sah einfach nicht richtig aus, wenn der Propeller fast sichtbar von Frame-zu-Frame weiterstolperte.
Für das Bild ganz oben hatte ich mich beholfen, indem ich einige Ringe und einen zweiten Propeller im LDraw in blaßgrau hinzugezeichnet hatte.

In Realität verschwimmen aber schnell bewegte Objekte. Dieser Effekt wird auch "Motion Blur" (Bewegungsunschärfe) genannt. Nur Kameras mit quasi-unendlich kurzer Belichtungszeit leiden da nicht drunter. Das Menschliche Auge und Kameras mit offener Verschlußklappe nehmen bewegte Bilder in der Belichtungszeit verwischt auf.

Motion Blur _kann_ man "zu Fuß" herstellen, indem man "einfach ganz viele" Bilder von Bewegungsabläufen aufzeichnet (also bei CAD Bild-für-Bild rendert) und dann von Grafik-Software eine Überlagerung als Durchschnittbild rechnen läßt. Das ist allerdings ziemlich aufwendig....

[image]



Suche in den entsprechenden LUGNET-Foren brachte mich dann auf diesen Thread aus dem Jahr 2000(!!). Der führte auf das Bild des Wasserflugzeugs. Sowas wollte ich auch hinbekommen (nur gut 10 Jahre verspätet - fast schon peinlich, damit jetzt noch im 1000steine Forum anzukommen, was?).
Notwendige Vorraussetzung war allerdings der Einsatz von MEGAPov - woran ich bei alten Versionen gescheitert war. Jetzt klappte das irgendwie auf Anhieb mit der Version 1.21 die man über PovRay 3.6 wegkopiert.

*********

Und nach etwas Probieren bin ich also soweit:

[image]


Mit 3 Propellern auf 30° Umfang verteilt (jeder Propeller zu 2/3 transparent).

[image]


Mit 3 Propellern auf 175° Umfang verteilt (jeder Propeller zu 2/3 transparent, aber der erste und der dritte Propeller liegen fast wieder aufeinander).

[image]


Mit 4 Propellern auf 135° Umfang verteilt (jeder Propeller zu 3/4 transparent).

[image]


Mit 20 Propellern auf 171° Umfang verteilt (jeder Propeller zu 19/20 transparent).

[image]


Mit 30 Propellern auf 174° Umfang sieht man noch Muster.

[image]


Mit 45 Propellern auf 176° Umfang ist alles verschmiert. Bei höherer Auflösung müssen noch mehr Schritte her, damit das so glatt aussieht.

Die vom Propeller überstrichene Bildfläche mußte hier also 45 Mal gerechnet werden. Das geht schneller als 45 Mal das ganze Bild zu rendern, dauert aber doch um vieles länger als ein einfaches Bild.

Die Motion Blur taugt übrigens auch für sowas hier:

[image]


Da sind auf 5° 18 Propeller geschossen. Damit wirkt das wie eine kurze Kamerabelichtung, in der der schnellaufende Propeller trotzdem ein Stück weg zurückgelegt hat.

Nun fragt sich, ob eine dieser Methoden für ein Video taugt (mindestens 15 Bilder für jede Filmsekunde benötigt - besser 25 Bilder/s). Reicht da dann ggf. ein wenig glattes Bild hin, da die vielen Frames das dann zusätzlich verwischen?

Wenn ich soweit bin, werde ich das hier mal vorstellen. Bis dahin gibt es hier ein altes Video mit allen beschriebenen Schwächen.

Wenn irgendwer einen Tip hat, wie ich in einem Bild den Propeller 20x aber das Flugzeug aber nur 3x abbilden kann (es bewegt sich ja viel langsamer vorwärts und verwischt daher über viel weniger Weg), wäre ich sehr dankbar für Tips aller Art.

Wen es interessiert: Den Render-Code im Pov-File have ich um diese wenigen Einträge ergänzt müssen (Zeilen mit // sind nur Kommentar.):

//******** at the very beginning ********
// including: motion_blur
#version unofficial MegaPov 1.21;
//global_settings {motion_blur SAMPLES, SHUTTER-TIME}
global_settings {motion_blur 61, 180}
//******** at the very beginning ********


//******** at the line where the propeller (assembly of pin and blade = "propeller_dot_ldr") is placed ********
// comment: the propeller is moved ("translate") to <0,0,0> rotated by use of "time" parameter and translated back to original position
motion_blur {object {propeller_dot_ldr matrix <1,0,0,0,1,0,0,0,1,0,0,0> translate<0,-38,-190>*-1 rotate<0,0,clock*1> translate<0,-38,-190> #if (version >= 3.1) material #else texture #end { Color0 } }}
//******** at the line where the propeller (=assembly of pin and blade) is placed ********

Leg Godt!


Brixe
09.09.2011, 15:50

Re: Render-Tricks - "Motion Blur" (Viele Bilder - Ladezeit!)

Hi Ben,

Danke, das werde ich mir heute abend mal in Ruhe durchlesen, falls ich es überhaupt verstehe. :lookaround:
Gibt es eigendlich auch so eine Art Render-Grundkurs? Für mich ist das alles noch ein Buch mit sieben Siegeln.

Liebe Grüße,
Marion


Dirk1313
09.09.2011, 16:39

Re: Render-Tricks - "Motion Blur" (Viele Bilder - Ladezeit!)

Hi,

das ist jetzt mal ein witziger Zufall. Bin eben über eine inoffizielle Liste von Lego Neuheiten für 2012 gestolpert - darunter soll auch eine Neuauflage der Sopwith Camel sein. Also gleich mal gegoogelt und da bin ich auf DIESES YOUTUBE VIDEO gestoßen.

Ein unglaublich starkes Rendering von Zusammenbau und Flug des Doppeldeckers!

Und in einer Diskussion unter dem Video ging es genau um das Thema "Motion Blur" am Beispiel des Propellers :blink:

Grüße
Dirk

» Moin LLL,
»
» nein kein Filmtitel mit Matthias Schweighöfer ist hier gefragt....
»
» Hier möchte ich statt dessen mal meine Erfahrungen und meinen Output aus
» dem PovRay 3.6 (mit Erweiterung um MEGAPov 1.21) vorstellen.
»
» Mit 45 Propellern auf 176° Umfang ist alles verschmiert. Bei höherer
» Auflösung müssen noch mehr Schritte her, damit das so glatt aussieht.
»
» Die vom Propeller überstrichene Bildfläche mußte hier also 45 Mal
» gerechnet werden. Das geht schneller als 45 Mal das ganze Bild zu rendern,
» dauert aber doch um vieles länger als ein einfaches Bild.
»
» Die Motion Blur taugt übrigens auch für sowas hier:
» Da sind auf 5° 18 Propeller geschossen. Damit wirkt das wie eine kurze
» Kamerabelichtung, in der der schnellaufende Propeller trotzdem ein Stück
» weg zurückgelegt hat.
»
» Nun fragt sich, ob eine dieser Methoden für ein Video taugt (mindestens 15
» Bilder für jede Filmsekunde benötigt - besser 25 Bilder/s). Reicht da dann
» ggf. ein wenig glattes Bild hin, da die vielen Frames das dann zusätzlich
» verwischen?
»
» Wenn ich soweit bin, werde ich das hier mal vorstellen.
» Bis dahin gibt es hier
» ein altes Video
mit allen beschriebenen Schwächen.
»
» Wenn irgendwer einen Tip hat, wie ich in einem Bild den Propeller 20x aber
» das Flugzeug aber nur 3x abbilden kann (es bewegt sich ja viel langsamer
» vorwärts und verwischt daher über viel weniger Weg), wäre ich sehr dankbar
» für Tips aller Art.
»
» Wen es interessiert: Den Render-Code im Pov-File have ich um diese wenigen
» Einträge ergänzt müssen (Zeilen mit // sind nur Kommentar.):
»
» //******** at the very beginning ********
» // including: motion_blur
» #version unofficial MegaPov 1.21;
» //global_settings {motion_blur SAMPLES, SHUTTER-TIME}
» global_settings {motion_blur 61, 180}
» //******** at the very beginning ********
»
»
» //******** at the line where the propeller (assembly of pin and blade =
» "propeller_dot_ldr") is placed ********
» // comment: the propeller is moved ("translate") to <0,0,0> rotated by use
» of "time" parameter and translated back to original position
» motion_blur {object {propeller_dot_ldr matrix <1,0,0,0,1,0,0,0,1,0,0,0>
» translate<0,-38,-190>*-1 rotate<0,0,clock*1> translate<0,-38,-190> #if
» (version >= 3.1) material #else texture #end { Color0 } }}
» //******** at the line where the propeller (=assembly of pin and blade) is
» placed ********
»
» Leg Godt!


Ben®
09.09.2011, 17:56

Re: Render-Tricks - "Motion Blur" (Viele Bilder - Ladezeit!)

» Hi,
»
» das ist jetzt mal ein witziger Zufall. Bin eben über eine inoffizielle
» Liste von Lego Neuheiten für 2012 gestolpert - darunter soll auch eine
» Neuauflage der Sopwith Camel sein. Also gleich mal gegoogelt und da bin
» ich auf DIESES YOUTUBE
» VIDEO
gestoßen.
»
» Ein unglaublich starkes Rendering von Zusammenbau und Flug des
» Doppeldeckers!
»
» Und in einer Diskussion unter dem Video ging es genau um das Thema "Motion
» Blur" am Beispiel des Propellers :blink:
»
» Grüße
» Dirk

Danke Dirk,

für die Rückmeldung! Das ist ja mal echt stark, was der Coby da gezimmert hat.
Wenn ich sowas sehe, merke ich doch immer wieder, daß ich in der dritten Liga (wenn denn überhaupt!) spiele - in eigentlich allem, was ich so treibe. That's life.....:|

Aber wir fangen wohl alle mal klein an: wenn man nur die Zeit und Ausdauer findet um am Ball zu bleiben, kann man doch mal das ein oder andere Highlight setzen....

Bis zum ersten Mini-Film mit Motion Blur dauert es bei mir definitiv noch etwas. Hoffentlich keine weiteren 5 Jahre.

Leg Godt!


malvinas2
09.09.2011, 20:54

Re: Render-Tricks - "Motion Blur" (Viele Bilder - Ladezeit!)

Hallo Ben,

ist es nicht möglich, das Rendern auf den relevanten Bildausschnitt zu beschränken ?
In Deinem Beispiel also nur einen rechteckförmigen Ausschnitt, der den Propeller beinhaltet. Am Rest des Bildes ändert sich schließlich nichts.


Ben®
10.09.2011, 11:38

Re: Render-Tricks - "Motion Blur" (Viele Bilder - Ladezeit!)

» Hallo Ben,
»
» ist es nicht möglich, das Rendern auf den relevanten Bildausschnitt zu
» beschränken ?
» In Deinem Beispiel also nur einen rechteckförmigen Ausschnitt, der den
» Propeller beinhaltet. Am Rest des Bildes ändert sich schließlich nichts.

Moin!

Grundsätzlich kein so dummer Gedanke! Aber ganz richtig ist die Aussage nicht, daß sich nichts ändert: Schatenwurf etc. beeinflussen auch wieder Bereiche außerhalb des direkt betroffenen Bereiches.

Außerdem wäre es eine Mordsarbeit den Ausschnitt hinterher wieder im Bildbearbeitungsprogramm pixelgenau einzusetzen.

Erst recht wenn man das für eine Bilderserie von hunderten Bildern für einen Film machen möchte (und der Ausschnitt bewegt sich auch noch innerhalb der Bilderserie).

Beste Grüße,