Bonjour!
J'utilise SFML pour réaliser des animations image-par-image, et jusque-là ça va pas mal.
Mais là, je m'attaque à un truc un peu coriace, et j'ai besoin de conseils.
Comme mes animations font 24 images par-seconde, ça me donne beaucoup de travail de dessin, et parfois pour pas grand chose.
Je voudrais donc implémenter une fonction de "remplissage" pour n'avoir à dessiner qu'une image sur deux (pour les animations qui le permettent raisonnablement).
Le fonctionnement doit être le suivant:
- Afficher la première image opaque, seule.
- Afficher la première image semi-transparente, et la deuxième image semi-transparente par-dessus.
- Afficher la deuxième image opaque, seule.
- Afficher la deuxième image semi-transparente, et la troisième image semi-transparente par-dessus.
- Afficher la troisième image opaque, seule.
-...
Vous imaginez bien que je peux jouer sur la pondération pour faire des "remplissages" plus longs ou asymétriques. C'est justement ce potentiel que je veux ajouter à mon programme (même si le rendu visuel risque de souffrir si on pousse trop).
J'ai fait des essais sur un logiciel de dessin, et apparemment, la superposition de deux images avec 50% d'opacité donne une image semi-transparente.
Est-il possible (à-part y aller à-tâton) de "prédire" l'opacité d'une pile d'images non-opaques?
Si je le cherche par tâtonnement, il faudra que je fasse un tâtonnement par cas (et si je fais des transitions complexes ou des effets visuels, ça va me donner vraiment beaucoup de boulot).
Note: j'ai déjà pensé à faire un algorithme qui "monte" les opacités jusqu'à ce que le rendu soit opaque, mais ça risque de plomber ma vitesse d'exécution (et pour les images qui ne sont pas opaques partout, ça sent déjà le bug).
Question subsidiaire: l'ordre d'empilement donne-t-il une prépondérance à l'image du dessus?
Voilà. C'est un problème un peu théorique, mais je pense qu'il y a de quoi apprendre pas mal de trucs intéressants.