Il est temps maintenant de rentrer un peu dans les détails techniques. Attention, ça risque de virer un peu gore, écartez les enfants et les adeptes du clicketage. Il y a plusieurs couches logicielles empilées:
Quelques détails concernant ces trucs : les effets appliqués à l'image originale ont été choisis un peu à la va-vite, il est certain que l'on peut trouver mieux ; le coefficient de mixage théoriquement varie entre 0 et 10000, bien que d'autres valeurs puissent être essayées, à vous de voir.
#!/bin/bash source=M.tga tga_effects $source water /tmp/a.tga 80 tga_effects $source x4 /tmp/b.tga 0 tga_combine /tmp/a.tga /tmp/b.tga mixer /tmp/c.tga 5000 tga_effects $source class0 /tmp/a.tga tga_filtres /tmp/a.tga hipass /tmp/a.tga tga_remap 13 $source neon.map /tmp/b.tga tga_combine /tmp/a.tga /tmp/b.tga mixer /tmp/c.tga 5000
Bien entendu, ce morceau de script n'est qu'un exemple et ne correspond peut-être plus à ce que vous pouvez voir à l'écran, cet ensemble de pages étant en perpétuelle évolution. Retenez quand même un des défauts majeurs de ces outils: ils ne respectent pas les traditions Unix du pipeline, il faut obligatoirement passer par des fichiers intermédiaires. C'est dommage, mais c'est comme ça...
Grace à un outil graphique quelconque (display, de ImageMagick, par exemple), nous pouvons déterminer les niveaux RGB des quelques zones qui nous interessent. Ensuite nous devrions pouvoir lire la doc, mais elle n'existe pas encore. Enfin, nous allons remplir une structure C assez mystérieuse, quoique déclaré dans le fichier image.h de ce truc.
Une_Classe_Sph classes[] = { { 120, 39, 43, 25, 255, 0, 0 }, { 52, 74, 35, 25, 0, 255, 0}, { 97, 121, 184, 25, 0, 0, 255 } };
En fait c'est assez (il faut le dire vite) simple. Les trois premiers nombres représentent une teinte dans l'espace RGB (le cube dont je causais tout à l'heure). Le quatrième est le rayon d'une sphère virtuelle centrée sur les coordonnées de la teinte. Et les trois derniers sont aussi une couleur, laquelle sera utilisée pour dessiner dans l'image de destination.
Voilà, c'est tout pour le moment, sauf pour les contours que je traite dans une autre page.