Partage
  • Partager sur Facebook
  • Partager sur Twitter

Optimiser l'accès aux adresses (fichiers images)

    16 juin 2006 à 19:34:24

    Bonjour,

    je suis juste sur le point de me bâtir un jeu et j'hésite sur la façon de charger les images (sprites) requises pour mon jeu. Peut-être même que ça pourra servir pour d'autres sujets, pas forcément des jeux!

    Alors, je me demandais qu'est-ce qui serait le mieux entre avoir des centaines de petites images, ou d'en envoir le moins possible...mais bien énormes! La où ça me pose un problème c'est que si on a beaucoup d'images à ouvrir, on va perdre du temps avec les fonctions de lectures de fichiers, cependant l'accès à l'image pour l'afficher dans SDL sera fait plus vite: calculs plus vites s'il y a moins de pixels...

    De plus, une seule, grosse image doit forcément être en mémoire dans un espace CONTINU d'octets, donc il pourrait y avoir plus de chance qu'elle ne réussisse pas à s'ouvrir, malgré qu'on dispose de beaucoup de mémoire...

    Autre chose qui complique, c'est les dimensions des images, soit la longueur de l'image par rapport à sa largeur. Selon ma compréhension de l'accès aux pixels, il sera bien mieux d'avoir des sprites verticaux plutôt que sur une surface carrée ou horizontale... J'espère que je me fait comprendre! ;) Voici des illustrations de ce que pourrait avoir l'air les fichiers de sprites:

    Fichier d'images/sprites carré
    Image utilisateur

    Fichier d'images/sprites horizontal
    Image utilisateur

    Fichier d'images/sprites vertical
    Image utilisateur


    Donc pour résumer, c'est qu'en mémoire il n'est pas trop compliquer d'afficher le pixel à GAUCHE ou à DROITE d'un autre, car on prend l'addresse de celui où on se situe, puis on y fait ±1... Cependant pour aller chercher un pixel EN HAUT ou EN BAS, il faut alors savoir que l'adresse de ce nouveau pixel ressemble à ceci:

    pixel = addresse_actuelle ± pitch * bitperpixels

    bon c'est presque du pseudo-code, puis la syntaxe serait bien différente, mais c'est pour dire que pour rechercher sur une nouvelle ligne on a un calcul de la longueur de la ligne qui peut prendre du temps... plus le fichier prend de l'espace, autre raison pour peut-être ne pas avoir un fichier d'image pesant disons 100 Mo, où la valeur de la longueur de la ligne en pixels va être très grosse (juste pour exagérer!)

    Donc ce que je pense, en théorie, et c'est ce dont j'aimerais être sûr, c'est qu'on optimiserait l'accès si on avait nos fichiers faits en taille, plutôt verticales (exemple: 10x1000)?

    Merci si vous pouvez arriver à me comprendre (et me répondre :p )!

    • Partager sur Facebook
    • Partager sur Twitter
      16 juin 2006 à 20:22:58

      Absolument inutile de chercher à optimiser ce genre de choses..Cela va te procurer d'énormes galeres pour coder ce type d'optimisation pour un resultat qui sera dans la majorité des cas invisible pour l'utilisateur du fait du gain tres relatif de performances.... ;)
      • Partager sur Facebook
      • Partager sur Twitter

      Optimiser l'accès aux adresses (fichiers images)

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown