Komposition med genomskinlighet¶
När genomskinlighet är involverad i båda bildrutor som bearbetas av en av Kdenlives dynamiska kompositionsövertoningar, kan resultatet bli överraskande för vissa av oss användare. Som tur är är saker och ting inte så oförklarliga som de ser ut, så låt oss dyka rakt ner i genomskinlighet och övertoningar.
Genomskinlighet och dynamiska övertoningar¶
När det gäller att hantera genomskinlighet, hamnar Kdenlives övertoningar i två kategorier:
Affin använder kompositionsoperatorn ovanför
Komposition, Komposition och transformera, Kairoblandning (affin) använder istället kompositionsoperatorn över
Så vad betyder egentligen ovanför och över? Låt oss ta reda på vad kompositionsoperatorerna gör med hjälp av en typisk titel och halvgenomskinligt bakgrundsexempel. För enkelhetens skull ignorerar vi först parametern ogenomskinlighet för de ovannämnda övertoningarna för att göra saker enklare att förstå. Och efter att vi har bemästrat det här steget tittar vi äntligen på hur ogenomskinlighetsparametern passar in i hela bilden.
Affin: Kompositionen Ovanför¶

Resultatet av kompositionen ovanför förklaras bäst genom att börja med att visa dess resultat: Text från det översta titelklippet försvinner (delvis) i de områden där det underliggande klippet på spåret i mitten är (halv) genomskinligt.
Rutmönsterklippet på det nedre spåret gör bara tjänst i illustrationssyfte, så att vi bättre kan se de genomskinliga områdena.
Lägg märke till hur de två Affina övertoningarna är kedjade: först kompositioner den övre Affin-övertoningen titelklippet på toningens bakgrund. Sedan kompositioner den undre Affin-övertoningen resultatet på rutmönstrets bakgrund.

Men hur hanterar övertoningen Affin genomskinlighet exakt? Låt oss titta på den handgjorda illustrationen, där vi har två bildpunkter med viss genomskinlighet vardera (alfavärden αA och αB). Det är viktigt att inte blanda ihop bildpunkternas genomskinlighet med övertoningarnas parameter ogenomskinlig.
Vår röda bildpunkt kommer från det övre spårets bildruta (B), medan den gröna bildpunkten kommer från det nedre spårets bildruta (A). Alfa 0 betyder en helt genomskinlig bildpunkt, medan alfa 1,0 (eller 255) betyder helt ogenomskinlig bildpunkt.
Övertoningen Affin ignorerar nu genomskinlighetsinformationen från den övre bildrutans bildpunkt (den röda).
Den använder enbart genomskinlighetsinformationen (grön) som finns i de nedre spårets bildrutor! Eller mer matematiskt: α = αA
Och det är förklaringen till varför i vårt exempel ovan titeltexten försvinner i de områden där mittenklippet är genomskinligt.
Komposition med och liknande: Kompositionen Över¶

Återigen använder vi i princip samma inställningar som tidigare, men den här gången använder vi övertoningen Komposition och transformera istället för Affin. Vi kedjar övertoningarna som tidigare, så att den nedre övertoningen arbetar på resultatet av den övre övertoningen.
Men se: resultatet är annorlunda! Resultatet av operatorn över motsvarar förmodligen de flesta användares förväntningar. Nu klipps inte det övre titelklippet (förlåt) längre.

Eftersom operationen över ger resultat som motsvarar många användares förväntningar, hur hanterar den transparens exakt?
Helt enkelt: om man lägger en halvgenomskinlig bildpunkt över en annan halvgenomskinlig bildpunkt, då blir resultatet mindre genomskinligt. Den blir ännu mindre genomskinlig än genomskinligheten för den nedre bildpunkten. Det är förmodligen vad vi skulle förvänta oss av att använda halvgenomskinlig färg.
Att beräkna den resulterande genomskinligheten för två givna bildpunkter från en övre bildruta (B) och en nedre bildruta (A) är alltså mer involverad denna gången.
Återigen börjar vi med genomskinligheten av den nedre bildrutans bildpunkt (grön) som bas. Men den här gången kan vi inte ignorera genomskinligheten hos den (röda) övre bildrutans bildpunkt. Men att bara addera bådas genomskinlighet skulle inte ge vettiga resultat; vad betyder genomskinlighet 2.0 eller 511?
Så den röda bildpunktens genomskinligheten skalas: man kan tänka sig att krympa den ursprungliga skalan 0 - 1,0 till det tillgängliga utrymmet ovanför det gröna genomskinlighetsvärdet. Den resulterande genomskinligheten är då summan av det gröna basvärdet plus det omskalade röda alfavärdet. Kom ihåg att vi på sätt och vis målar över den nedre bildrutan. Formelmässig affin: α = αA + αB (1-αA).
Övertoningsparameter Ogenomskinlighet¶
De dynamiska kompositionsövertoningarna har också en parameter som kallas Ogenomskinlighet. Det är lätt att förväxla den med bildpunkternas genomskinlighet, men den är något annat. Parametern ogenomskinlighet gäller endast för de övre bildrutorna (B). Den är en sorts huvudkontroll, men hur fungerar den?

Låt oss börja med övertoningen Affin igen. Ovan har vi sett att Affin ignorerar genomskinligheten för de (röda) bildpunkterna på den övre bildrutan. Och Affin ignorerar också parametern ogenomskinlighet när resultatet bildpunktsgenomskinlighet beräknas.
Istället påverkar parametern ogenomskinlighet hur resultatets bildpunktsfärg beräknas: det är en linjär interpolation mellan färgen på den övre bildrutans (B) bildpunkt och den nedre bildrutans (A) bildpunkt. Ogenomskinligheten styr nu den exakta blandningspunkten. En ogenomskinlighet på 0,0 resulterar i endast den nedre bildrutans (B) bildpunktsfärg, medan 1,0 enbart ger färgen på den övre bildpunkten (A). 0,5 skulle vara halvvägs mellan de två bildpunktsfärgerna.
Sammanfattningsvis: i fallet med övertoningen Affin, påverkar parametern ogenomskinlighet enbart färgblandning mellan bildpunkterna på övre bildrutan (B) och nedre bildrutan (A).

Därefter, låt oss ta en titt på andra övertoningar: Komposition och liknande.
För färgblandningen, gäller samma procedur som vi just har sett med övertoningen Affine: parametern ogenomskinlighet styr hur mycket bildpunktsfärg från övre bildrutan (B) som kommer med i blandningen.
Men när vi tittar på hur den resulterande bildpunktens genomskinlighet beräknas, börjar saker och ting se annorlunda ut. Vi har sett att genomskinligheten för den övre bildrutans (B) bildpunkt skalas ner i omvänd proportion till genomskinligheten för den nedre bildrutans (A) bildpunkt. Parametern ogenomskinlighet tar det ännu längre: den minskar dessutom genomskinligheten hos den övre bildrutans (B) bildpunkt. Se även illustrationen.
Följaktligen styr parametern ogenomskinlighet således hur mycket ogenomskinlighet från den övre bildrutans (B) bildpunkt som överhuvudtaget används. På så sätt kan man tona in eller tona bort den övre bildrutan.
Sammanfattningsvis: vid övertoningarna Komposition (och liknande) påverkar parametern ogenomskinlighet både färgblandning för den övre bildrutans (B) och den nedre bildrutans (A) bildpunkter, såväl som genomskinligheten hos den övre bildrutan (B).
Anmärkningar
- Ytterligare läsning
Artikeln Alpha Compositing på Wikipedia, med en referens till originaluppsatsen om Porter Duff SIGGRAPH’84 benämnd «Compositing Digital Images».
SVG Open 2015 paper av Craig Northway benämnt ”Understanding Compositing and Color extensions in SVG 1.2 in 30 minutes!”, i synnerhet Porter Duff operatortabellen i kapitel 6 med resulterande alfaberäkningskolumn.
- Källor
Den ursprungliga texten skickades in av användaren TheDiveO till den nu nedlagda bloggen kdenlive.org. För den här dokumentation har den hämtats från kdenlive.org, uppdaterats och anpassats för att motsvara den övergripande stilen.