Shake [NUKE] "création" d'une image prémultipliée et node multiply

GO TO ADMIN PANEL > ADD-ONS AND INSTALL VERTIFORO SIDEBAR TO SEE FORUMS AND SIDEBAR

JeffM

Nouveau venu
#1
Bonjour au forum,

Je vais rentrer en formation compositing et 3D dans quelques jours. Je profite de ces jours de répit pour essayer de me perfectionner tout seul, nota sur Nuke ;)

Mon problème est né de mon étude du node over :
A+B(1-a)
J'ai essayé de reproduire sous nuke la formule. J'ai donc pris une image avec 4 channels (RGBA) pour la compositer avec un node constant Bleu. Pour faire simple ça donne ça :



Donc A est mon read1. B est mon constant1. J'ajoute à A un node invert pour "extraire" l'inverse de l'alpha. Ok ça marche. Par contre pour le multiplier avec B, je comprends pas. Je place entre Invert1 et Constant1, un node multiply. Dans le A channel je sélectionne alpha et B channel je sélectionne RGA. D'après ce que j'ai lu dans le manuel ça devrait multiplier l'alpha channel avec chacune des couches R,G et B non?

Après je me dis : Ai je bien compris le concept de premult/Unpremult. :heink:
Une image prémultipliée est une image à 4 channels où chaque couche R,G et B est multipliée par l'alpha (Donc mon Read1 est un image prémultipliée non? ).
Si c'est cela, à quoi ressemble une image non prémultipliée. D'après ce que j'ai compris, ça serait une image avec 4 channels RGB et A. On multiplie chaque couche de l'image par cet alpha et on obtient une image prémultipliée (En gros ce que j'ai essayé de faire en multipliant l'invert1 avec le Constant1). Mais il faut donc dans un premier temps obtenir une image non prémultipliée. Donc j'ai fait ça :



Et là ça marche. Mais du coup, ai je réellement bien respecté ma formule (A+B(1-a)) ?

Et si cela et bon, je comprends plus rien au node multiply :



Si je fais cet manip, Alpha en A Channel et RGB en B Channel, pourquoi ne multiplie t-il pas chaque couche RGB par l'alpha ? Je me dis que j'ai pas trop compris son utilité alors :bounce:

Merci d'avance à la personne qui prendra la temps de me répondre et merci de faire exister ce forum :jap:

 

Memn0n

Membre très actif
#2
J'ai un peu utilisé nuke, mais je suis plutot utilisateur de fusion. Je veux pas dire de conneries, mais il me semble que chaque channel multiplie plutot son channel correspondant. Peut-être ton constant a-t'il un alpha de 0 qui, une fois multiplié, reste donc à 0 ?

La technique que tu utilises par après est tout à fait correcte.

Et pour répondre à ta question "Si c'est cela, à quoi ressemble une image non prémultipliée" : en gros c'est une image qui à encore des informations de couleur par delà les limites de l'alpha. Ca t'évite d'avoir des problèmes de "edge" noir qui peuvent apparaitre si tu composites une image premult. Pour aller avec l'exemple de ta photo: imagine que dans ton RGB tu ais une image complète navette + ciel etc... alors que son alpha est juste la forme de la navette !


J'éspère que je t'aurai un peu aidé ^^
 
#4
Merci à vous deux.
J'ai fini y arriver. Pour Boble6, ce que je voulais faire été simple. Juste reproduire en utilisant les opérateur plus et multiply l'ensemble des opérations de l'opérateur over A+B(1-a). Et du coup je me suis heurté à des questions sur le fonctionnement de nuke. Au final j'ai fini par comprendre, et compris l'utilité du node shuffle pour extraire un alpha.

Merci du coup de pouce :)
 
P

ptichat

Guest
#5
En fait, tu peux pas faire un over avec un plus et un multiply.

Plus et multiply sont vraiment une mathématique des 2 couches qui donne unnouveau résultat.

Le over, c'est juste mettre l'image A sur la B en se servant de l'alpha de A.
 
Haut