Oldalságok

2019/11/25

Blending modes. Normal és Disolve

Régóta van ez a becsípődés, hogy vajon hogyan működik a rétegek összhatásmódjának a matematikája. Persze attól, hogy nem értjük, használni még lehet, és ha értjük az algoritmust, az sem jelenti, hogy műértő szemmel tudjuk összemosni a rétegeket. Nyilván, mind a 29 módnak van értelme, de a mi praxisunkban alig párat használunk közülük. Ezzel az írással csak megnyaljuk a témát, de azért bő nyállal, nem úgy mint a legtöbb kolléga a neten, akik "elmagyarázzák" fenszi videókban <irigység OFF>. Teljesen fölösleges érdekességek következnek, ami csak azért jó, hogy lássuk semmi sem igaz attól, hogy sokan és hivatalos minőségben leírják, illetve az ismereteknek mindig vannak újabb és újabb rétegei.

Mondjuk a Fill és Opacity önmagában egy érdekesség, mert első blikkre csak azt a különbséget gondolnánk közöttük, ami az effektusokat érinti. Megvan ugye, miről beszélünk? Kis kitérő, ha nincs:
Az Opacity a teljes layertartalmat kontrollálja, a Fillnek, definíció szerint,  nincs hatása a az effektusokra (layer styles). A példánkban az alsó szöveg-réteg kapott egy Bevel&Emboss hatást és itt most ennek az átlátszóságára kell koncentrálni. A felső szöveg rétegét változatlanul és átlátszatlanul hagyjuk, az összehasonlítás végett. Az alsón megpiszkáljuk az Opacity és Fill csúszkákat.
Az 50% Opacity-érték ugyanúgy vonatkozik a Bevel&Emboss hatására is, mint a kitöltő (Fill) színre. 
Viszont a Fill csak és kizárólag a layer tartalomra vonatkozik, az effektusokat nem bántja, így hozható létre pillanat alatt ez az üveg-hatás, amit régi Photoshopokban csak macerásan lehetett megoldani. 
Szóval, azt hittük eddig, hogy csupán ez a különbség a Fill és Opacity között, viszont most kiderült, hogy néhány Blending Mode is különbözően viselkedik erre a két csúszkára. Ebbe most nem fogunk belemenni, mert ezek babrálása nélkül is elég bonyolult a dolog. 
A Photoshop rétegműveletei igazán jó eszközök lehetnek, amennyiben tudjuk is, pontosan mik azok. Enélkül csak kreatív youtuberek videóit másolgatva reprodukáljuk a hatásokat, több-kevesebb sikerrel. Logikailag 6 csoportra oszthatók, ezeket a baloldali ábra szemlélteti. Ugyanezek a lehetőségek kiválaszthatóak akkor is, amikor például néhány eszközzel mátyikálunk a képen, de mi most konkrétan a Rétegek-panel lehetőségeit nézzük át. 
A gyakorlatban alig pár összhatásmódot szoktunk használni. Ilyen a Normálnak a különféle átlátszóságai, például olyankor, amikor a rétegmásolatot bonyolult műveletek után összeszűrjük az eredeti réteggel, a Colort és a Luminosityt, amikor a felső rétegnek csak a fényességére, vagy csak a színeire van szükségünk. A kis Bridge Canonnál bevált módszer volt a képek "gazdagítására" az is, hogy a réteget saját magával Multiply-ként összeeresztettük. Képek analízisénél (például azonosság vizsgálatánál) meg a Difference egy nagyon jó eszköz. A többi eszközt inkább csak empirikusan, próbálgatva használtuk, pedig valójában fontos műveletek vannak közöttük.
Sok helyről inspirálódtunk, az Adobetól, aztán innen is, meg innen is. Ezek a kollégák azonban csak az illúzióját nyújtják annak, hogy megértetik a témát az olvasóval, ugyanis a megoldó képleteikről sok helyen kiderül, hogy pontatlanok, hiányosak, vagy egyenesen hibásak. Emiatt nem is sikerült az összeset megfejteni. Íme az én meglátásaim az első csoportra.

Normál. A Fill és Opacity különbözőségét a rétegeffektusoknál fennebb tárgyaltuk. Tehát a szó szoros értelmében ez is a Special 8 Blend tagja kellene legyen. Az aktív és az alapréteg a Fill/Opacity mértékének megfelelően vesz részt az eredményben. Ez sok mindent jelenthet, amennyiben 50% átlátszóságot állítunk, akkor a két réteg csatornaértékeinek számtani közepét kapjuk eredményként.
=(Fill*Aktív)+(1-Fill)*Alap
ahol a Fill 50%-ot 0,5 ként tüntetjük fel. A képletből látszik, hogy a rétegek nem kommutatívak. Több réteg esetén gyanítjuk, hogy lentről felfele kettesével kell elvégezni a műveletet. Régebb sok kép egymásra szűrésére (zajcsökkentés céljából), az egyes rétegekre szolgáló képlet ez volt (csillagászfelvételekre is ideális volt):
Ezáltal minden réteg egyformán vett részt a végső képen.  De már okafogyott, létezik a Median, meg a Mean lehetőség erre a problémára. Sajnos működő spreadsheetet nem tudok beágyazni, ezt is csak szemléltetésül mutatom, hogyan végeztük el a képletekre a próbákat. A Normal value képlete =(Fill*Active)+(1-Fill)*Base


A Normál módban az Opacity és a Fill hatása kumulatív, ha például mindkettőt 50%-ra állítjuk, akkor az aktív rétegünknek csak 25 százaléka fog érvényesülni.

Dissolve. Bár nem szokás a Special 8 Blend-módok között emlegetni, Adobe CS6-ban, definíció szerint gyakorlatilag még az kellene legyen, mert a Fill és Opacity nem pontosan ugyanazt az eredményt adja. Nem szaporítjuk rá a szót, mert a CC változatban már úgy tűnik nincs különbség.
Az Adobe szerint randolmizálva történik a pixelek átlukasztása, de ez túlzás. Kétszer végrehajtva (akár totál más képeken is) a Fill 50% pontosan ugyanazt az eredményt adja, és ez igaz az Opacity 50% esetén is (CC változatban).
A képek mérete és a rétegek színe is különbözik, mégis a bal felső sarok
ugyanolyan pattern szerint lukad, Fill és Opacity 50% esetén is.
Ugyancsak egyforma patterneket használ a Fill/Opacity 99% tesztelése során is (más színű és méretű képek bal felső sarkát figyeltük). Tehát randomizálásról szó nincs, a Wiki is pseudo-randomnak hívja, akinek annyira nincs élete, a patternet is visszafejtheti, nem hisszük, hogy bonyolult lenne. Az teljesen bizonyos, hogy nem 10*10 pixeles blokkokat használ, mert a 99% esetén voltak olyan 10*10-es blokkok, amelyikekben 3 pixelt is átlukasztott, de olyanok is, amelyekben egyet sem.
A 99% átlátszóságot nem 10*10-es blokkokra hozza létre. 
Másik sunyi érdekesség, hogy a Fill és Opacity nem kumulálható, mint például a Normál esetén. Mindkettőt 99%-ra állítva ugyanazt a 99 százalékos lefedettséget kapjuk, mintha csak egyiküket matattuk volna. Ugyanez 50 százalékon is. Ha másért nem, ezért mégiscsak a Special 8-nak a része kellene legyen. De a legfurcsább, amit még a Wiki sem említ, és nem sok embernek okozhatott gondot eddig, hogy amikor az ilyen Dissolve rétegeket összeolvasztjuk (Merge), a pattern megváltozik, minthogyha Merge esetén más mátrixokat használna. Valószínűleg összességében megfelelő számú pixelek lukadnak át így is, de totál más helyen. Furcsa, mert ehhez elvileg az anti-aliazinghoz nincs köze. Felmerül, hogy ezt akarattal csinálják így az Adobenál (gyakorlati hasznát nem látjuk), vagy annyira le vannak osztva a programozás részfeladatai, hogy csak ennyire tudnak konzisztensek maradni. Szóval csak óvatosan az Adobe randomjaival. 
Lesz folytatás. 

Nincsenek megjegyzések:

Megjegyzés küldése