/  Forum  /  Blender Technicznie  /  Addons/Plugins/Python  /  [Add-on] filtrowanie animacji. Usuwanie migania i szumu w animacji.

[Add-on] filtrowanie animacji. Usuwanie migania i szumu w animacji.

Witam,

Napisałem addon do blendera generujący skrypty Avisynth filtrujące klatki animacji tak iż animacja nawet już w 8 samplach lub 50 (w zalezności od typu sceny i przy użyciu dodatkowego builda lucas denoising) wygląda jak w 300 samplach i wyżej (addon nie bedzie prawdopodobnie rozwijany. Mysle ze spelnia wiekszosc oczekiwan o ile okaze sie przydatny).

 Addon dodatkowo odpala automatycznie jeden z kilku programów w którym można edytować te skrypty i oglądać wyniki filtrowania. Dzięki skryptom można wygładzić animacje usuwając z obrazu artefakty – migające punkty, piksele szumu oraz przebawrwienia. Skrypty działają podobnie jak program „neat video” ale ten program kosztuje 99 usd a skrypty darmowe :).
Skrypty są częścią skryptów napisanych przez „film restoration script by videoFreed".

O co w ogole chodzi z tym dodatkiem?.
Cycles w blenderze renderuje obraz który zawiera duzo szumu. Nawet renderowanie w 500 samplach czasem daje obraz z szumem. Aby to zatuszować ludzie stosują ustawienia nodów lub różne programy. Problem w tym że nawet gdy dana klatka jest filtrowana i daje super rezultaty (jak blender z dodatkiem "denoising by Lucas Stocner") to w przypadku animacji widać migające powierzchnie między klatkami i różne przebarwienia. Ten dodatek to niweluje ale jest trudny do skonfigurowania.

Restrykcje co do obecnej wersji addonu.
1.   Szerokość klatki musi być podzielna przez 2. Czyli np. 2, 4, 6, 8 ect. Nie może być 1023x768, ani 1024x767, tylko parzyste liczby.
2.   Addonu nie testowałem na linuxie,
3.   Jako „output” do renderingu powinno się ustawić jedną z kilku opcji:
a)   "AVI_RAW"
b)   "FFmpeg video" - container AVI z kodekiem H.264 I bezstratną jakością (lossless)
c)   lub PNG (wymaga by zainstalowany był program FFMPEG. Wszystkie pngi będą połączone w plik AVI I to będzie przetwarzane jako obraz wejściowy do filtrowania),

Jak używać?
1.   poberamy dodatek:
https://dl.dropboxusercontent.com/u/26042452/avi/avisynch_script_generator.py
lub na oficjalnej stronie bitbucket
https://bitbucket.org/stefan_wyszynski/blender_addon_denoising_script/src
2.   instalujemy w blenderze.

Jakie programy należy pobrać by działało?

Wszystkie programy trzeba dodawać ścieżki (katalogi) różnych programów do zmiennej środowiskowej „path” windowsa czy linuxa. Jest to potrzebne by dodatek mógł używać programów po nazwie pliku np. avisynth.exe zamiast C:\avisynth\avisyn... i tak dalej. Jeżeli ktoś nie bedzie wiedział jak zmienną dodać do path w systemie to napisze.

Ok. Wiec pobieramy wymagane programy:
1.   Avisynth (który odpala skrypty),

https://sourceforge.net/projects/avisynth2/?source=navbar

instalujemy w C:\AviSynth
Nastepnie dodajemy do zmiennej środowiskowej systemu te ścieżki.
C:\AviSynth
C:\AviSynth\plugins
2.   Pobieramy pluginy do avisynth które używa skrypt by wygladzać

Umieściłem pluginy na moim dropboxie po ich pobraniu należy te pliki dll wrzucić do Avisynth\plugins

https://www.dropbox.com/s/xcgvdvqy1e7i2df/plugins.zip?dl=0

3.   Pobieramy Virtualdub i instalujemy w C:\VirtualDub
https://sourceforge.net/projects/virtualdub
dodajemy do zmiennej środowiskowje “path” ścieżkę
C:\VirtualDub

I to jest bazowa konfiguracja by móc wygenerować skrypt i odpalić go w Virtualdub i od razu zobaczyć efekty filtrowania.
Aby wszystko działało w pełni potrzebne są dodatkowe pliki.

Np.
1.   AvsPmod (do edycji skryptów i podglądania rezultatu filtrowania)
https://github.com/AvsPmod/AvsPmod/releases
instalujemy w : C:\AvsPmod


do zmiennej środowiskowej „path” systemu należy dodać

C:\AvsPmod\AvsPmod\
C:\AvsPmod\AvsPmod\tools

2.   FFMPEG (potrzebny do roznych konwersji obrazu – np. pngów do AVI)
https://ffmpeg.zeranoe.com/builds/
instalujemy w :
C:\ffmpeg

do zmiennej środowiskowej „path” systemu należy dodać

C:\ffmpeg\bin

3.   Polecam pobrać “k-lite codecs pack” (przydatny zestaw kodeków)

https://www.codecguide.com/download_kl.htm

jeżeli nadal będą problemy z odpaleniem skryptów to proszę pisać może pomogę.

Jak używać pluginu w blenderze?
Po instalacji addonu w blenderze pojawi się w zakładce renderingu dodatkowy panel.

Można przyjąć domyślne ustawienia i kliknąć „generate script”, ale polecam wybrać jedną z opcji w rozwijanej liście „Run script with”
Po jej kliknięciu można wybrać:
- VirtualDub (uruchomia wygenerowany skrypt w Virtualdub – wiec można od razu zapisac animacje jako film),
- avsPmod (uruchamia wygenerowany skrypt do edycji i podglądu animacji),
- FFmpeg (generuje animacje w pliku AVI na podstawie skryptu)
- avs2avi (to co w FFmpeg tylko przy uzyciu avs2avi)
- generate only (ta opcja wygeneruje skrypt i tyle)

Wygenerowany skrypt zostanie utworzony w katalogu projektu z animacją blendera (tam gdzie rederowane sa obrazy w avi czy png).

Tutaj można zobaczyć jak wygląda animacja po filtrowaniu
- przykładowe animacje przed i po filtrowaniu można pobrać z mojego dropboxa:
https://www.dropbox.com/sh/g05uzpywozuxnbj/AAA7BLj8UczjEyqtstPajVL8a?dl=0
Najważniejsze:
Aby efekt filtrowania był lepszy należy rozmyć ekran przy użyciu ustawień nodów w blenderze (plik blendera z ustawieniami nodow jest na moim droboxie w linku powyżej)

 lub użyć lepszego rozwiązania jakim jest wersja blednera z dodatkiem napisanym przez lukasstockner97 czyli „Luckas Stockner GSoc denoising build” czyli taki blender z opcją filtrowania klatek po każdej renderowanej klatce. Ten build Lucasa jest super dla pojedynczych klatek, ale chwilowo jeszcze do animacji się nie nadaje i mój addon to rozszerza o filtrowanie animacji.

Warto zaznaczyć że nie ma sensu łączyć nodów rozmywających równocześnie z filtrowaniem Lucasa.

Więc polecam po prostu pobrać build Lucasa i włączyć jego filtrowanie. Zainstalować w tej wersji blendera mój dodatek. A na końcu uzyc mojego dodatku by filtrować dalej. To daje najlepszy rezultat:
Build Lucasa można znaleźć na graphicall.org.

http://graphicall.org/1190

jest tez nowsza wersja buildu ale link może nie dzialac:
https://mega.nz/#!5wwyxLBb!Fbnu5tqHbzQrb8PnwK-yTSNq3uEop_mCFYPxXpDU7rk

w razie pytań piszcie :). ciekaw jestem czy ktoś to odpali bo na blenderartist... nikt nie dał znać czy udało się czy nie :/

wiem ze sporo konfigurowania ale efekt pro :).

aha w załączniku widać screeny z efektem filtrowania animacji renderowanej w 8 samplach z opcją "branched path tracing" (chociaż to stare więc nie polecam branched) przez skrypty na dwa sposoby.

1. obrazek: trzy screeny 8 sampli, 8 sampli + ustawienia nodów, a na koncu 8 sampli + ustawienia nodow + mój skrypt.
2. obrazek: dwa screeny 8 sampli buildem lucasa, 8 sampli buildem lucasa + mój skrypt

gdyby nie było widać obrazków można kliknąć w poniższy link i zjechać na dół strony

Mobiledeveloper

Nowy użytkownik
*
28 0 0
jestem tu nowy!
Ostatnia zmiana: 20170315, 22:47:50 wysłana przez Mobiledeveloper