Gimp warp tool: c’est la mi-parcours !

Et voilà, on est déjà à la mi-parcours pour le Google Summer of Code, et je n’ai pas posté de mise à jour comme je le voulais. Il faut croire que réflechir et coder reste plus amusant pour moi qu’écrire. Néamoins, corrigeons ça.

Le moins que l’on puisse dire, c’est que l’outil warp (il va falloir que je trouve une traduction française) est en bien meilleure forme que l’outil cage à la même époque l’an dernier. La raison est simple, j’ai appris énormement l’an passé, et il faut bien avouer que l’outil warp fait appel à des compétences similaires, voir reprend quelques portions de code.

Ceci étant dit, voilà le bilan:

  • Toute l’infrastructure de l’outil est en place et fonctionnelle.
  • On peut appliquer des déformations directement sur le canvas.
  • 7 comportements sont supportés actuellement:
    • déplacement de pixels
    • grossissement d’une zone
    • rétrécissement d’une zone
    • spirale dans le sens horaire
    • spirale dans le sens anti-horaire
    • effacement local d’une transformation
    • lissage local d’une transformation
  • Les actions sur le canvas se font grâce à un pinceau rond, avec une courbe d’influence gaussiene.
  • Les réglages du pinceau sont la force, la taille et la dureté de la courbe d’influence (plus ou moins raide).

Une petite vidéo pour la forme:

Les différentes opérations effectuées sur le canvas sont implémentées comme des opérations Gegl qui produisent un buffer de coordonées relatives, que l’on insère dans le graph de rendu. L’image finale est calculée grace à une opération de rendu map-relative.

Et voilà ce qu’il reste à corriger:

  • Les performances restent à améliorer. Actuellement, à chaque action sur l’image, chaque opérations déjà effectuées est recalculées (le cache ne fonctionne pas correctement), et ce pour toute la surface de l’image (un problème dans le code historique qui n’a pas été conçu pour ça). D’autres pistes d’amélioration existent, comme l’implémentation du Copy On Write (COW) pour les GeglBuffer. Le but final est d’effectuer les actions de manière interactive.
  • Un bon réglage est nécessaire, les différents comportements ne sont pas cohérents actuellement.
  • Implémenter l’interface selon les spécifications de Peter Sikking et de son équipe.
  • Implémenter l’annulation des opérations.

Comme j’ai plus de facilités cette année, j’en profite pour aller un peu plus en profondeur et de travailler sur des choses annexes, en particulier dans Gegl. Une chose intéressante est de constater que l’outil warp est structurellement assez proche d’un moteur de dessin (dans le sens pinceau), et fait donc un pas de plus vers un moteur de dessin basé sur Gegl dans Gimp.

27 réponses à to “Gimp warp tool: c’est la mi-parcours !”

  • chrismonstah:

    really really nice!

  • YAFU:

    I can not wait to try it.
    Thank you very much!

  • Gortim:

    J ai hate de voir ça quand ça sortira. Tu le precises pas mais la brosse on pourra changer le motif ou non ? Ca serait bien pratique pour faire des choses irrégulieres. Et est ce que la qualité de la deformation est meilleur que celle de l iwarp actuel ou pas ? Comme plus on deforme plus la qualite diminue.

    • Michael:

      Pour l’instant, il n’y a pas moyen de changer la forme de la brosse. C’est une brosse completement calculé, pas de motif ou autre.
      Par contre, comme le code derrière est _très_ similaire à un moteur de dessin classique (dans sens pinceau, brosse…), il sera très probablement factorisé avec le futur moteur de dessin basé sur GEGL, et donc profitera des capacités de celui là (motifs pour les brosse, gestion de la pression..). Mais là, c’est un travail bien plus long qu’un summer of code.

      Pour ce qui en est de la qualité de déformation, il n’y a plus de problème de perte d’information. Les pixels ne sont mélangés qu’en toute dernière étape. Par contre, c’est actuellement plus lent …

  • Kevin Brubeck Unhammer:

    You don’t say this explicitly, but is this operation completely non-destructive? It looks that way from the « erase » mode of the tool … (if this really is non-destructive editing, why aren’t you shouting it out? =D)

    • Michael:

      yes, IT IS NON DESTRUCTIVE EDITING !!1! =)

      All the developpement based on GEGL are non-destructive editing, high bit depth, and a lot of other cool feature enabled. Gimp is going to roxx a lot in the future.

      • Michael:

        I just realized that i must rephrase a bit. The tool himself is non-destructive and high bit-depth, but GIMP’s internal are not for the moment.

        That mean that as long as your are using the tool, you have this properties, but as soon as you commit the result or swith tool, the result is stored in the tile-manager of GIMP and you lose theses properties.

        But this will be corrected as soon as GIMP swith his internal code to GEGL.

  • Shawn:

    Ok I am disappointed that this will not be in the 2.8 update. This is one of the tools I was hoping for.

  • user:

    completely agree with shawn, I’ve been waiting for so long for this feature.

  • Mariachiara:

    Vorrei sapere,come si scarica GIMP e come si fa lo sfondo colorato perfavore!

  • Gimped! Gimp tutorials:

    FANTASTIC!!! I cannot WAIT for this feature!!!

  • What hardware did you use for screencast? Yes, I’ve read the part about performance, just interesting :)

  • J’attends avec impatience de pouvoir tester les nouvelles fonctionnalités. Je continue à suivre ton blog !

  • pepe:

    Hi this fuction is esential to allow use gimp as UV maping tool; example adapting a pic of a face to a 3d model. i have tried the photoshop tools for it and i have to say that i fount that they lack of a funtionality that maybe you could bring. the capability of select parts of the layer that will NOT be afected for the warp. Think in it as if you were extending a latex suit over a manequim, in some parts you would like to grab of the latex surface, but in others you would like that remain in the position.
    Photoshop still dont do it perfectly, it would be nice that gimp could do it, the graphical interface to show it could be as pins that you could stick in diferent parts of the layer map. Thanks for this great tool.

  • Bonjour Michael, je ne parviens à trouver un mél valide te concernant. Peux tu me contacter par courriel pour une demande d’interview que j’aimerais te faire pour linuxfr, merci d’avance ! Tu peux effacer ce message après l’avoir lu…

  • Merci Michael!
    J’avoue que tout ça est largement au dessus de mon niveau, mais il y a quand même quelques infos à piocher pour moi.
    Merci encore, bonne continuation.

  • ciekawy:

    What about the feature? Is there any progress?
    Regards!

  • En effet, c’est pas mal. Alors quelle a été la suite du projet ?
    Vous avez participé à d’autres Google Summer of Code ?

  • It is great the perfect time to have plans in the future as well as it time for you to be happy. I have got learn this particular article in case I’ll merely I must advise an individual number of attention-grabbing items or tips. You may can compose up coming posts in regards to this document. I must study more troubles about it!

  • After exploring a number of the blog articles on your blog, I honestly like
    your way of writing a blog. I saved as a favorite it to my bookmark website list and will be checking back soon.
    Take a look at my website as well and let me know
    your opinion.

  • JaKi:

    Any news on this? I’d love to see this in Gimp, the current iwarp has such a bad preview. Gimp deserves an iwarp were you can actually *see* what you do, in sharp details – not just roughly guess where you are in the picture…

    What’s needed to get this into Gimp?

  • A connection via a Wi-Fi network is usually fasger than a connection through the Internet, thogh it is not as
    fast (or as reliable)as a wirsd connection.
    Let’s start with the big three airlines in revenue for 2012 (and projected for 2013):
    . It will also have a very wide network coverage ratio, which means more people being able to
    access the internet from more places.

  • No matter if some one searches for his vital thing, therefore he/she wishes to be available
    that in detail, therefore that thing is maintained over here.

  • I am genuinely glad to glance at this webpage posts which contains lots of
    useful facts, thanks for providing these information.

Laisser un commentaire