Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
amélioration module liquéfier
#1
Après quelques jours dans l'implémentation, je viens d'intégrer une amélioration du module liquéfier. Il est maintenant possible de modifier (taille, force et direction) les points de contrôle pendant l'édition grâce à la visualisation de ce dernier. Cela donne une expérience plus pro de ce module. Ce sera dans la prochaine version en fin d'année, mais d'ici là si certains veulent tester je suis preneur des retours.
--
Pascal - GNU/Debian (sid) - version darktable git/master
http://photos.obry.net
Répondre
#2
J'ai compilé hier, je suis pas un spécialiste de "liquéfier", je vais tester.
Répondre
#3
Ohohohohohoh *étoiles et papillons dans les yeux*

Je m'en vais tester ça.

Ça marche vraiment bien, c'est génial. Merci Pascal !
Aurélien, photographe portraitiste, spécialiste calcul.
Développeur de filmique, égaliseur de tons, balance couleur, etc.
darktable est mon métier, pensez à m'aider :
[Image: 2FAd4rc]
Répondre
#4
Salut Pascal
Super tes modifs, c'est vraiment bien plus pratique ! Merci :-)

Je rencontre un bug par contre, lorsque je fais un coup de molette en traçant une ligne, darktable ne répond plus (ça fait comme une boucle infinie).
Voilà la backtrace que j'obtiens lorsque je lance le programme avec gdb et que je l'interrompt à ce moment là :

Code :
(gdb) bt full
#0  0x00007ffff6d1e397 in g_list_last () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#1  0x00007ffff6d1e3df in g_list_append () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fff9d726918 in interpolate_paths (p=p@entry=0x7fffffffa980) at /home/rawfiner/Documents/darktable/src/iop/liquify.c:1704
       w = 0x35237d0
       t = <optimized out>
       total_length = 0.261360198
       arc_length = <optimized out>
       data = 0x7fffffffa9cc
       p2 = 0x7fffffffa9e0
       warp1 = 0x7fffffffa994
       p1 = 0x7fffffffa994
       k = <optimized out>
       l = 0x1271600
#3  0x00007fff9d7284fe in _draw_paths (cr=cr@entry=0x17455a0, scale=scale@entry=0.000902237545, p=p@entry=0x7fffffffa980, layers=layers@entry=0x2f2f280, pt=pt@entry=0x0, module=<optimized out>)
   at /home/rawfiner/Documents/darktable/src/iop/liquify.c:1762
       hit = {layer = DT_LIQUIFY_LAYER_BACKGROUND, elem = 0x0}
       do_hit_test = 0
       interpolated = <optimized out>
#4  0x00007fff9d72b447 in draw_paths (module=<optimized out>, params=0x7fffffffa980, scale=<optimized out>, cr=0x17455a0) at /home/rawfiner/Documents/darktable/src/iop/liquify.c:2098
       g = 0x2bb60f0
       layers = 0x2f2f280


Plus précisémment, en me plaçant sur le commit ee66fa72d9ca2051bee9bd7d6eef0a307aebf8f0 tout va bien, la molette se comporte comme attendu.
En se plaçant sur le commit 9736b22680631aa6004cab887689c417655d185e par contre, il y a le bug.

J'ai testé ça à la fois en compilation "normale" sur linux mint et en compilant darktable via docker (basé sur debian).

Quand on fait un git diff entre les 2 commits, on voit comme seule différence la modif du commit 3bfd66a19ecdeee012ab21a83697137d81676072 :

Code :
~/Documents/darktable/build $ git diff ee66fa72d9ca2051bee9bd7d6eef0a307aebf8f0 9736b22680631aa6004cab887689c417655d185e
diff --git a/src/develop/imageop.c b/src/develop/imageop.c
index 72ae925..af76018 100644
--- a/src/develop/imageop.c
+++ b/src/develop/imageop.c
@@ -1484,9 +1484,6 @@ void dt_iop_commit_params(dt_iop_module_t *module, dt_iop_params_t *params,
  uint64_t hash = 5381;
  piece->hash = 0;

-  // this should be redundant! (but is not)
-  memcpy(module->blend_params, blendop_params, sizeof(dt_develop_blend_params_t));
-
  if(piece->enabled)
  {
    /* construct module params data for hash calc */
@@ -1505,6 +1502,8 @@ void dt_iop_commit_params(dt_iop_module_t *module, dt_iop_params_t *params,
      pos += sizeof(dt_develop_blend_params_t);
    }
    memcpy(piece->blendop_data, blendop_params, sizeof(dt_develop_blend_params_t));
+    // this should be redundant! (but is not)
+    memcpy(module->blend_params, blendop_params, sizeof(dt_develop_blend_params_t));
    /* and we add masks */
    dt_masks_group_get_hash_buffer(grp, str + pos);
Répondre
#5
J'ai eu aussi un bug quand j'ai voulu sélectionné dessiner des courbes après avoir un peu bricolé avec dessiner des droites. darktable ne répond plus. Test fait sous Linux Mint 19.
Répondre
#6
Ce problème est indépendant du module liquéfier. C'est un problème connue avec les masques paramétriques (blend params). Mais de mon coté je ne reproduis pas avec l'utilisation de la molette pendant le tracé de ligne ou courbe.
--
Pascal - GNU/Debian (sid) - version darktable git/master
http://photos.obry.net
Répondre
#7
(03-10-18, 19:55)pascal a écrit : Ce problème est indépendant du module liquéfier. C'est un problème connue avec les masques paramétriques (blend params). Mais de mon coté je ne reproduis pas avec l'utilisation de la molette pendant le tracé de ligne ou courbe.

Je vois pas non plus comment ça peut être lié, c'est juste ce que j'ai constaté avec un git bisect...
Pour que tu ais plus de chances de reproduire le bug, tu peux éventuellement essayer de compiler darktable sous docker.
Voilà un tutoriel que je suis en train d'écrire qui indique la marche à suivre : https://drive.google.com/file/d/1-jC_F-Q...p=drivesdk
Répondre
#8
Je viens d'essayer de reproduire le bug que j'avais constaté sans y arriver. Bien sûr avec celui que j'ai compilé hier.
Répondre
#9
J'ai recompilé tout ça ce matin.
Je n'arrive plus à reproduire le bug sous mint (aucune idée de pourquoi), mais je l'ai encore sous docker (où là pour le coup j'ai carrément des core dumps).
Répondre
#10
Vraiment bizarre, sans recompiler, je n'ai pas pu reproduire le blême que j'ai eu à la première utilisation.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 10 visiteur(s)