Auteur Sujet: Pixellisation et Zoom  (Lu 8365 fois)

Hors ligne Lughy

  • Néophyte
  • *
  • Messages: 10
  • Karma: +0/-0
Pixellisation et Zoom
« le: 09 septembre 2011 à 18:14:48 »
Bonjour,

Est t'il possible de faire en sorte que lors d'un zoom, les images ne pixelise pas ?
J'ai fait quelques test et je n'ai trouvé que 3 méthodes pour le moment.. Chacune avec des avantages et inconvénients.

Les 3 méthodes que j'ai trouvé :
     * Mettre par défaut les images aux dimensions du zoom max, et modifier quelques lignes dans le plugin afin de redimensionner les images en fonction du zoom.
=> Il y a quand même de la pixellisation ( notamment pour le zoom par défaut :/ ), bien que beaucoup, beaucoup moins importante que actuellement.

     * Faire un dossier image pour chaque zoom, et modifier le chemin du dossier image en fonction du zoom dans le code du plugin.
=> Plus aucune pixellisation, quelque soit le zoom. Mais cela fait beaucoup de dossier images, et il faut recharger toutes les images a chaque changement de zoom :/ Cela fait un peu lourd, surtout pour une grande map.

     * La solution que je suis en train d'adopter actuellement, c'est mettre les images au format SVG. Donc modification du code, afin d'aller chercher les images au format SVG, et adapter la taille de l'image en fonction du zoom.
=> Plus aucune pixellisation, et une seule image. ( je crois même que le poids du SVG est moins grande que celle du PNG ). Le problème est qu'il faut adapter suivant le navigateur.. IE ne gère pas nativement le SVG ( La gestion du SVG est native que à partir de IE9 ). Par contre il gère le VML ( qui est sensiblement la même chose ). Et Safari.. Ben lui ne gère pas la transparence de SVG.. ( en tout cas sur windows.. n'ayant pas Mac.. ) Je n'ai pas testé pour le VML, mais je sais que au pire pour les utilisateurs de Safari/Mac, il reste le format PNG..


Aurais tu une autre solution ? Plus "facile", moins lourde ?

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Pixellisation et Zoom
« Réponse #1 le: 09 septembre 2011 à 18:20:52 »
Arf... Le SVG, en plus de ne pas être adapté aux anciens navigateurs, est un format vectoriel et donc pas adapté à certaines images.

Les 2 premières solutions sont valables, mais, en effet, provoque un poids supplémentaire.

Pas de solution simple. D'après moi, la "bonne" solution est la première : choisir une taille d'image qui soit égale au zoom le plus important. Reste à ne pas trop zoomer pour ne pas trop faire souffrir la bande passante.

Si d'autres ont des solutions, je suis preneur...

Hors ligne Lughy

  • Néophyte
  • *
  • Messages: 10
  • Karma: +0/-0
Re : Pixellisation et Zoom
« Réponse #2 le: 09 septembre 2011 à 18:39:33 »
C'est bien ce qui me semblais.. Plus j'avançais avec SVG, plus je découvrais que ce n’était pas forcement la bonne solution :/

Dommage que ce format ne soit pas plus rependu.. Car il est quand même intéressant à utiliser ( surtout maintenant que HTML5 et compagnies commence à faire de l'ombre à flash )

Je pense donc que je vais me diriger vers une solution intermédiaire..
Réduire le "pas" du zoom, et limité la profondeur du zoom. Faire 3 dossiers images. Un pour le zoom par défaut, un pour le zoom max ( qui servira aussi a afficher toutes les images entre zoom0 et zoom Max ) et un pour le zoom min ( idem que zoom max ).

Idem que Prélude, je suis preneur pour d'autres solutions.. ;)

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Pixellisation et Zoom
« Réponse #3 le: 09 septembre 2011 à 18:45:17 »
Il existe aussi la solution qui consiste à afficher les images au zoom minimale puis, de charger en background les images au zoom max.

Tiens, je vais voir si je peux intégrer cette possibilité de zoom et d'images différentes en fonction du zoom...

Hors ligne Lughy

  • Néophyte
  • *
  • Messages: 10
  • Karma: +0/-0
Re : Pixellisation et Zoom
« Réponse #4 le: 10 septembre 2011 à 00:54:06 »
Citer
Il existe aussi la solution qui consiste à afficher les images au zoom minimale puis, de charger en background les images au zoom max.

C'est a dire un préchargement ?
Ou tu parles de background comme background CSS ?

D'ailleurs l'idée du préchargement n'est pas mauvaise ^^ ( Donc si c'est de cela que tu parlais, bien vu, je n'y avais pas pensé ;) )
Il y a toujours du préchargement dans les jeux ^^ Donc autant qu'il serve vraiment à quelque chose.. On pré-charge toutes les images au lancement du jeu ( je pense utiliser des tilesets ), et comme ça il n'y a pas de problème de rechargement d'images lors du zoom..

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Pixellisation et Zoom
« Réponse #5 le: 10 septembre 2011 à 10:31:08 »
Non, ce n'était ni l'un, ni l'autre  ;D

Mon idée : tu affiches les images de basses qualité puis, seulement après, tu télécharges les images de hautes qualité en arrière plan (pendant que le joueur s'amuse...) et tu les affiches au fur et à mesure.
Résultat : le joueur peut s'amuser sans contrainte. Les images se mettant en bonne qualité au fur et à mesure.

Sinon, le préchargement avant de jouer est possible, mais pour mon plugin, j'aimerais qu'il soit utilisable sans problème sur un iOS ou un Android. Donc, autant faire au plus performant.

Hors ligne Lughy

  • Néophyte
  • *
  • Messages: 10
  • Karma: +0/-0
Re : Pixellisation et Zoom
« Réponse #6 le: 10 septembre 2011 à 14:10:37 »
Ahh oui, c'est encore mieux comme solution, effectivement ;)
Hé bien en attendant la nouvelle version (:p) je vais déjà le faire de mon coté voir ce que ça donne ;)

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Pixellisation et Zoom
« Réponse #7 le: 10 septembre 2011 à 16:06:41 »
De ton côté ? Tu développe aussi un plugin ? Ou juste une carte pour ton jeu ? Quel jeu ? On peut voir quelque chose ?!

Hors ligne Lughy

  • Néophyte
  • *
  • Messages: 10
  • Karma: +0/-0
Re : Pixellisation et Zoom
« Réponse #8 le: 10 septembre 2011 à 16:57:22 »
Je développe un jeu, histoire de me remettre en forme avec les langages progs ;)
Et comme je ne sais pas si je publierais le jeu ou non, je n'en parle pas pour le moment :p

Pour ce qui est du plugin, j'avais commencé à faire mon "plugin" pour l'affichage iso, puis je suis tombé sur ton plugin.. Donc mon code est pour le moment mis de côté, en attendant de voir l'avancement de ton plugin, voir si il me permet de faire tout ce dont j'ai besoin ( je connaitrais les besoins au fur et a mesure de l'avancement de mon projet ).

Donc le "de mon côté" est en fait la modification de ton plugin. Je rajoute mon code dans des fichiers externes, comme cela, quand tu intègres des nouvelles fonctionnalités, je n'ai pas à réécrire tous mes ajouts, et je n'ai qu'a supprimé le fichier dont tu as ajouté la fonctionnalité. Ca me permet d'aller plus vite et déjà penser à la suite ;)

Mais promis, je montre bientôt des images ;)

Hors ligne zaoui

  • Néophyte
  • *
  • Messages: 12
  • Karma: +0/-0
Re : Pixellisation et Zoom
« Réponse #9 le: 03 juin 2012 à 18:49:11 »
Bonjour

Tout d abord félicitation pour ce plugin, c est exactement ce que je recherchais pour mes divers projets qui ne sont pour le moment qu en grande partie dans ma tete.

Donc pour le moment j essaie de maitriser ton plugin et malgré le peu de tuto et d exemple dispo ça va bien pour le moment.

Je me permet de mettre un petit post au sujet du zoom, lorsque tu zoom et que tu veux insérer un objet celui ci se trouve décalé par rapport au damier. Je n ai pas cherché trop loin pour le moment car se n est pas trop gênant mais si tu avais la solution.

merci encore.

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Pixellisation et Zoom
« Réponse #10 le: 04 juin 2012 à 08:01:03 »
Bonjour,

2 choses :
 - attention, je n'ai pas mis à jour les exemples et ils utilisent (si ma mémoire est bonne) encore une ancienne version (le nom des fonctions n'est pas le même). Il cette ancienne version a des bugs justement par rapport au zoom.
 - est-ce que tu as essayé les 2 valeurs de décalages decx et decy pour la fonction addObject ? Ces 2 valeurs te permettent justement de corriger l'éventuel décalage par rapport à la taille de tes objets et la taille de la grille.

Voilà. Et si malgré ça, ça bug toujours, je vire le développeur et je test pour corriger au plus vite ;)

Hors ligne zaoui

  • Néophyte
  • *
  • Messages: 12
  • Karma: +0/-0
Re : Pixellisation et Zoom
« Réponse #11 le: 04 juin 2012 à 10:40:45 »
salut,

en effet je me suis fait avoir entre la version des exemples et la dernière en cours mais pour la question du décalage des objets lorsque tu les insères avec un zoom se produit bien sur la dernière version.

En fait quand tu zoom, si tu prends, par exemple l arbre (tree.png), celui ci est décalé sur la grille par contre l ajout se produit bien sur la bonne case.

j espère être assez clair.


Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Pixellisation et Zoom
« Réponse #12 le: 04 juin 2012 à 12:17:15 »
Ah oui, en effet  :o

Je crois que ça vient bien du décalage, mais qui n'est pas multiplié par le zoom lui...
Bon, je corrige ça aussi vite que possible.
Et merci pour avoir trouvé ce bug !  ;)

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Pixellisation et Zoom
« Réponse #13 le: 04 juin 2012 à 14:24:04 »
Bon, j'ai corrigé ce bug.
J'en ai profité pour mettre à jour les différents exemple et virer les anciennes versions du plugin.
Donc voilà, y'a plus qu'à s'amuser avec  ;)

Hors ligne zaoui

  • Néophyte
  • *
  • Messages: 12
  • Karma: +0/-0
Re : Pixellisation et Zoom
« Réponse #14 le: 04 juin 2012 à 16:44:15 »
que dire !

merci et bravo pour la rapidité.

je regarde ça ce soir.

ah, j allais oublier un truc, à la première charge de la map, celle ci n'est pas centrée (décalé en haut) et quand on la déplace elle vient se mettre au centre. Je sais pas si je suis claire .... si tu as une idée.