module inscription newsletter haut de page forum mobile

Ateliers et Formations

L'alpha prémultipliée et After Effects.

Discussion dans 'Archives moteurs' créé par Julien W., 17 Août 2004.

Tags:
  1. Julien W.

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Appréciations:
    +0 / 0 / -0
    Je viens de constater que la formule de "dé-multiplication" pose un problème de division par zéro.

    After Effects règle le problème en traitant ce cas particulier à part. Lorsque l'alpha vaut 0, c'est à dire lorsqu'une division par zéro apparait, on considère le résultat comme nul. Par conséquant X/0 = 0.

    En fait, cette division par zéro prouve une fois de plus l'efficacité des mathématiques: les zones où ce problème se pose sont les zones définitivement perdues.

    Je m'explique. Au départ, avant la pré-multiplication, on a une image complète et une couche alpha. Après la pré-multiplication, l'image n'est plus complète.

    Prenons un exemple. Imaginez un pixel valant 0.3;0.5;0.7. L'alpha de ce même pixel vaut 0.2. Après la pré-multiplication, le pixel vaut 0.06;0.1;0.14.

    Maintenant imaginons que l'on veuille démultiplier l'image. On va donc à alors diviser ce pixel par l'alpha, ce qui nous donne: 0.3;0.5;0.7. Et oui, on retrouve le même pixel qu'au départ. RIEN n'a été perdu.

    Maintenant prenons ce même pixel, mais admettons que l'alpha vaut 0. Après la pré-multiplication, ce pixel vaut 0;0;0. Que se passe-t-il si l'on désire démultiplier l'image? On divise par zéro... aïe, division par 0. Cette fois-ci, ces zones sont DEFINITIVEMENT PERDUES.

    Certaines personnes vont me dire: oui, mais dans After Effects, quand on démultiplie, on obtient des artefacts étranges.
    C'est normal. Car l'image prémultipliée a été conservé dans un format 8bits (255 couleurs) lors de son transfert entre le programme 3d où elle a été pré-multipliée et After Effects où elle va être démultipliée. Ce passage du floating point (nombres décimaux), au 8bits va entrainer des arrondissements. Par conséquant, des informations vont être perdues.

    Voilà ce qu'à répondu MasterZap à quelqu'un qui a dit ça:

    :lol:
     
  2. allaigrg

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    177
    Appréciations:
    +0 / 0 / -0
    salut

    voilà le code en C
    ça ne fonctionne que sur les images "ppm"
    comme ça pas besoin d'utiliser de lib externe et c'est compilable sous win et linux
    rien de particulier j'utilise la formule

    bye
     

    Fichiers attachés:

    • compo.zip
      compo.zip
      Taille de fichier:
      4.3 KB
      Nb. vues:
      117
  3. Julien W.

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Appréciations:
    +0 / 0 / -0
    Merci! Je vais regarder ça...
     
  4. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    After sait gérer tous les types d'images prémultipliées lll

    Contrairement à tout ce que j'ai dit précédemment After Effects sait parfaitement gérer ce type d'image prémultipliée, que l'on dit invalide, où il existe quelque chose là où l'alpha est nulle: éclairs, halo...

    Pour cela il faut:

    Interpréter le ficher en mode directe dans le projet
    et le passer en mode "Prémultiplier la luminescence" dans la comp
    (dernier mode de la liste)

    Voilà comme quoi on apprend toujours des trucs à force d'essayer de comprendre et d'expliquer.

    Je ne sais pas s'ils y étaient arrivé à en parler sur le site theforce.net

    Julien, n'hésite pas à éclairer MasterZap, comme quoi After finalement c'est pas si mal... mais faut connaître:D
     
    #34 Sequelles, 7 Septembre 2004
    Dernière édition: 28 Juin 2005
  5. Julien W.

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Appréciations:
    +0 / 0 / -0
    Salut Sequelles!
    En fait, MasterZap en parle dans son premier message sur le sujet, je le cite:
    Une autre citation, toujours de lui, d'un autre message:
    Il a donc l'air de dire que cette méthode ne fonctionne pas toujours... je ne sais pas pourquoi. Je peux essayer de me renseigner au près de lui si tu veux.
    Mais merci d'avoir parlé de ça ici, je n'avais pas compris que cette manip' était en fait un mode de transfert.
     
  6. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
    Je ne vois aucune différence, alors je me demande si j'ai bien compris...ou si j'ai rien compris!
    Voici mon projet test: http://oscarvideo.free.fr/premultiplier.zip
     
  7. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    c'est plus comme ça:
     

    Fichiers attachés:

  8. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    Mais le but est d'utiliser ça sur un fichier unique (avec la couche alpha dedans)

    J'avais essayé en fabriquant ce ficher avec photoshop et j'avais pas obtenu un résultat identique. Du coup (merci oscarus) j'ai essayé en intégrant la couche alpha dans After, puis en calculant le fichier en tga(millions de couleurs+)...

    et en effet le mode Prémultiplier la luminescence correspond EXACTEMENT à ce qui était rechercher depuis le début de la discussion!!!


    Ci-joint le fichier du gamin avec la couche alpha intégrée pour faire le test vous-même.

    gamin+alpha.tga
     
  9. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
    En effet pour "prémultipliée" il y avait plus simple. Merci !.
    Ok, cette fois tout est très clair, encore merci Sequelles :bravo:
     
  10. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
  11. Julien W.

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Appréciations:
    +0 / 0 / -0
    Oui, ça donne bien le même résultat.
    Mais MasterZap dit que ce n'est pas toujours le cas. Pourquoi? Je ne sais pas; mais ça m'étonnerait qu'il s'agit de paroles en l'air.
    Il est également possible qu'ils ont amélioré leur système avec les nouvelles versions d'After Effects, car il travaille toujours avec la 5.5.
     
  12. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
    Si problème il y a, il ne sagit pas de la version 5.5, car cette méthode est proposée dans le Master class qui traite de la version 5.5.
     
  13. Julien W.

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Appréciations:
    +0 / 0 / -0
    Ok, alors je vais lui demander dans quels cas cette technique ne fonctionne pas.
     
Chargement...
Discussions similaires - L'alpha prémultipliée After
  1. JB60
    Réponses:
    7
    Nb. vues:
    1 274

Partager cette page