Sistema compositador¶
Dades¶
Dimensionalitat¶
Els nodes de compositació operen sobre dades que són o bé una imatge o bé un valor únic adimensional. Per exemple, el node Nivells egressa un únic valor, mentre que el node Capes de revelat egressa una imatge. Les entrades de node que esperen un únic valor i reben una imatge assumeixen un valor predeterminat i ignoren la imatge del tot. Per exemple, el node de Transformació espera valors únics per a les seves entrades i assumirà valors predeterminats se li connecten imatges a aquestes entrades. Els valors per defecte són els considerats com a identitat i, per tant, no tenen cap efecte en l’egressió, que vol dir que per al node de Transformació les entrades X, Y i Angle tindran un valor per defecte de zero, mentre que l’entrada Escala tindrà un valor per defecte d’u. D’altra banda, si a les entrades de node que esperen una imatge se’ls assigna un valor únic, s’assumirà que el valor únic cobreix tot l’espai de compositació. Per exemple, el node de Filtre espera que la seva entrada Factor sigui una imatge, però si se li dona un únic valor, interpretarà que és aquest mateix valor per a tots els píxels.
Tipus¶
Existeixen tres tipus de dades, totes emmagatzemades en formats de mitja precisió:
- Flotant o decimal
Un número de coma flotant o decimal amb signe. Les dades enteres també s’emmagatzemen com a flotants perquè no existeix cap tipus per als enters.
- Vector
Un vector 4D. Si bé és 4D, pot tenir diferents interpretacions depenent del node que l’utilitzi. Se’l pot tractar com un vector 2D ignorant els dos últims components, per exemple. L’entrada Vector del node Desplaçar es tracta com un vector 2D. Se’l pot tractar com un vector 3D amb l’últim component ignorat, per exemple. L’entrada Vector del node Separar XYZ se la tracta com un vector 3D. Se la pot tractar com dos vectors 2D consecutius. Per exemple, la Passada de velocitat tal com l’espera el node Difuminat vectorial es pressuposa que té la Velocitat anterior 2D en els components X i Y del vector i la Velocitat posterior 2D en els components Z i W.
- Color
Un vector 4D que emmagatzema el Vermell, Verd, Blau i Alfa del color. El color és de forma lliure i no s’ajusta a un espai de color específic o a un model d’emmagatzematge alfa. En lloc d’això, els nodes apropiats tindran paràmetres per controlar la representació de la seva egressió i els nodes hi són per fer conversions entre les diferents representacions.
Conversió implícita¶
En cas que es doni una entrada de node a dades de tipus diferent del seu propi tipus, es realitzen les següents conversions implícites:
Font |
Referent |
Conversió |
|---|---|---|
Flotant o decimal |
Vector |
f => Vector(f, f, f, 0) |
Flotant o decimal |
Color |
f => Color(f, f, f, 1) |
Vector |
Flotant o decimal |
(x, y, z, w) => Mitjana(x, y, z) |
Vector |
Color |
(x, y, z, w) => Color(x, y, z, 1) |
Color |
Flotant o decimal |
(r, g, b, a) => Luminància(r, g, b) |
Color |
Vector |
(r, g, b, a) => Vector(r, g, b, 0) |
L’exemple següent demostra la conversió implícita entre un tipus de color i un tipus de número flotant, ja que el Node matemàtica espera ingressions de números de coma flotant.
Exemple que demostra la conversió implícita entre un tipus de color i un tipus de flotant, ja que el node Matemàtica espera entrades decimals.¶
Espai de compositació¶
Domini d’imatge¶
El compositador està dissenyat de tal manera que permet la compositació en un espai de compositació infinit. En conseqüència, les imatges no només es representen per la seva mida, sinó també per la seva transformació en aquest espai, igual que les transformacions dels objectes 3D. Una transformació d’identitat representa una imatge que està centrada en l’espai. L’àrea rectangular que la imatge ocupa en aquest espai tal com la defineix la seva transformació i mida s’anomena el Domini de la imatge. La figura següent mostra els dominis de dues imatges exemple.
Dominis de dues imatges exemple il·lustrats a l’espai de compositació. Una de les imatges està centrada en l’espai i l’altra està escalada i traslladada de manera que resta en el quadrant superior dret de l’espai. Observeu que ambdues imatges tenen mides similars en píxels, però les seves mides aparents són diferents.¶
Les imatges es poden transformar amb nodes com Transformar, Traslladar i Rotar nodes.
Domini d’operació¶
Els Nodes de compositar operen en una àrea rectangular específica de l’espai de compositació que se’n diu Domini d’operació. Els nodes només consideren l’àrea de les imatges d’ingressió que se superposen al domini d’operació i ignoren la resta d’imatges. Si una imatge d’ingressió no se superposa completament al domini d’operació, la resta del domini d’operació per a aquesta ingressió s’assumirà que és un valor zero, un vector zero o un color zero transparent depenent del tipus.
Per exemple, la figura següent il·lustra un cas en què el domini d’operació d’un node és l’àrea blava gran i el domini d’una imatge d’ingressió és l’àrea vermella petita. En aquest cas, la imatge d’ingressió no se superposa completament al domini d’operació, de manera que la resta de l’àrea blava per a aquesta imatge d’ingressió s’assumeix que és zero.
Un exemple en què el domini d’operació d’un node es mostra en blau i el domini d’una imatge d’ingressió es mostra en vermell. Com que la imatge d’ingressió no cobreix completament el domini d’operació del node, la resta de l’àrea blava per a aquesta imatge d’ingressió es pressuposa que és zero.¶
La il·lustració anterior és una representació d’un exemple del món real on s’empra el node Alfa per sobre per a superposar un petit logotip en una imatge, com es mostra a la figura de sota. En aquest cas, el domini d’operació cobreix la totalitat del mirador — com es demostrarà més tard, però, el logotip només en cobreix una àrea petita, de manera que la resta de l’àrea s’assumeix que és d’un color transparent zero, el qual és adient per a aquest cas d’ús.
Un exemple del món real on s’utilitza el node Alfa per sobre per sobreposar un petit logotip a una imatge. El logotip només cobreix una petita àrea del domini d’operació, que és la totalitat del mirador en aquest cas, de manera que la resta de l’àrea es pressuposa que és de color transparent zero.¶
Interpolació¶
Si una imatge d’entrada a un node no està perfectament alineada amb el domini d’operació del node o té una mida diferent en píxels, al node normalment li caldria fer un procés anomenat Interpolació en què la imatge d’entrada es llegeix a les posicions exactes dels píxels del domini d’operació. Això es pot fer amb diferents mètodes d’interpolació, incloent-hi interpolacions de Veí més proper, bilineals i bicúbiques. Aquests mètodes d’interpolació es mostren a la següent Galeria de Viquipèdia. Els nodes de Transformació com el de Transformar i el de Rotar inclouen una opció d’interpolació per definir com es prefereix que la seva imatge de sortida sigui llegida i interpolada.
Determinar el domini d’operació¶
La qüestió continua essent com determinen els nodes el seu domini d’operació. Diferents tipus de node poden tenir diferents mecanismes per determinar el seu domini d’operació. Però generalment, existeixen tres classes de nodes pel que fa al mecanisme de determinació del domini d’operació, cadascun dels quals es presenta en una de les següents seccions.
Nodes d’ingressió¶
El domini d’operació dels nodes ingressius com el node Node imatge és un domini amb una transformació d’identitat i amb la mateixa mida que les seves egressions, de manera que per al node Imatge, el domini d’operació serà el domini la mida del qual és la mida de la imatge i la transformació del qual sigui una transformació d’identitat.
Nodes d’egressió¶
El domini d’operació dels nodes egressius com el Node visor és un domini amb una transformació d’identitat i la mateixa mida que l’egressió final del compositador. Per a la compositació de mirador, aquesta mida seria la mida del mirador; i per a la compositació final de revelat, aquesta mida seria la mida de revelat de l’escena.
Altres nodes¶
Tret que s’indiqui el contrari en les respectives pàgines de documentació, tots els altres nodes utilitzen el mecanisme següent. Una de les entrades dels nodes està designada com a Entrada de domini del node i el domini d’operació del node és idèntic al domini d’aquesta entrada designada. Per a molts nodes, l’entrada de domini es pot identificar intuïtivament com l’entrada principal del node, per exemple, l’entrada de domini per al Node Filtre és l’entrada Imatge. Però hi ha algunes pegues a destacar, que requereixen una comprensió més profunda del mecanisme.
Cada entrada del node té la propietat anomenada Prioritat de domini. El domini d’operació del node és el domini de l’entrada de valor no únic amb la prioritat de domini més alta. Per exemple, el Node Filtre té dues entrades, la prioritat de domini de l’entrada Imatge és més alta que la de l’entrada Factor i hi ha quatre configuracions possibles:
Tant les entrades Imatge com factor estan connectades a imatges. En aquest cas, l’entrada Imatge és l’entrada del domini perquè té la prioritat més alta i està connectada a una imatge.
L’entrada Imatge està connectada a una imatge, però l’entrada Factor no ho està. En aquest cas, l’entrada Imatge és la ingressió del domini perquè és l’única entrada connectada a una imatge independentment de la seva prioritat.
L’entrada Imatge no està connectada a una imatge, però l’entrada Factor sí. En aquest cas, l’entrada Factor és l’entrada del domini perquè és l’única entrada connectada a una imatge independentment de la seva prioritat.
Ni les entrades Imatge ni Factor estan connectades a imatges. En aquest cas, no hi ha entrada de domini perquè el node s’avalua sobre valors únics.
Consideracions¶
L’esmentat mecanisme per determinar el domini d’operació té una sèrie de conseqüències que cal considerar, ja que poden ser no desitjades. Cadascuna es presenta en un dels apartats següents.
Segat¶
L’egressió dels nodes se segarà intuïtivament al domini d’operació o, millor dit, al domini de l’entrada de domini. Per exemple, si l’entrada Primer pla és més gran que l’entrada Rerefons en el Node Alfa per sobre, l’egressió se segarà segons l’entrada del Rerefons perquè és l’entrada del domini, com es mostra a la figura següent.
En el node Alpha a sobre, l’entrada Primer pla és més gran que l’entrada Rerefons, de manera que l’egressió se sega intuïtivament seguint l’entrada de Rerefons perquè és l’entrada del domini.¶
El node Alfa per sobre ara mateix no admet el canvi de prioritat de domini en les seves entrades, de manera que com a circumsolució es pot utilitzar un Node mesclar per treure’n el comportament desitjat, tot assenyalant que la primera entrada d'Imatge del node Mesclar té la prioritat de domini més alta, com es mostra en la figura següent.
Circumsolució del comportament de segat del node Alpha a sobre amb un node Mesclar, observant que la primera entrada d'Imatge al node Mesclar té la prioritat de domini més alta¶
Egressió (Output)¶
El compositador només admet un únic referent d’egressió actiu, és a dir, que només un dels nodes d’Egressió de grup o Nodes visor de l’arbre de nodes es considerarà actiu i la resta s’ignorarà. En concret, el compositador cerca el Context d’arbre de nodes actiu i recorre en segona opció al Context d’arbre de nodes arrel si no ha trobat cap egressió activa en el context d’arbre de nodes actiu. El context d’arbre de nodes actiu és l’arbre de nodes d’un grup de nodes expandit, és a dir, de quan la usuària selecciona un node d’un grup de nodes i n’edita l’arbre subjacent. D’altra banda, el context d’arbre de nodes arrel és l’arbre de nodes de nivell superior sense cap grup de nodes expandit.
El compositador cerca el node Egressió de grup actiu. Si no en troba cap, cerca el node Visor actiu. Si no en troba cap, el compositador deixa de funcionar del tot. En conseqüència, tingueu present que afegir un node Visor no tindrà cap efecte en el revelat de mirador si ja hi ha un node Egressió de grup, ja que es dona prioritat als nodes Egressió de grup.