IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SFML Discussion :

[SFML]scrolling & tilemap


Sujet :

SFML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 58
    Par défaut [SFML]scrolling & tilemap
    Bonjour,

    Dans le cadre d'un jeu, je voudrais utiliser un système de tilesmap pour créer un décor. (Le décor est donc construit à partir de petite images de 32x32 pixels)

    Je veux pouvoir faire défiler le décor afin de suivre les déplacements du joueur.

    Actuellement je redessine l'ensemble du décor à chaque rendu. (Pour une résolution de 800*600 cela fait environ 25*19 = 475 tiles à dessiner). Cela fonctionne mais cela me parais un peu lourd d'un point de vue calcul.

    Je cherche donc, un moyen d'optimiser le truc. Est-ce qu'il faut :
    - Dessiner l'ensemble du décor et le stocker en mémoire avant de débuter le jeu (un peu lourd pour la mémoire si il est grand)
    - Entretenir une/plusieurs image "tampon" afin de redessiner uniquement une partie de l'écran.

    En fait, je cherche des documents qui traiterais de ce sujet.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    La vraie question à se poser est la suivante : est-ce que tu as constaté des pertes de performances, ou bien tu supposes que ça risque d'être le cas ? Tant que n'as pas de problème, inutile de te faire un trou au cerveau pour optimiser quelque chose qui n'aura peut-être pas à l'être.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Par défaut
    Ce qui ferait perdre du temps ce sont les accès disque , mais je pense pas que tu charges a chaque rendu tes petites images à partir du disque dur.
    Donc oui tu es obligé de les charger en mémoire, et au niveau temps de rendu çà ne doit pas être énorme .

    Pour la taille en mémoire si tes 475 tiles sont pas toutes les mêmes , tu peux stocker en mémoire que celles qui sont réellement différentes.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 58
    Par défaut
    @Laurent Gomila : Lorsque j'ajoute le fond (et donc les 475 tiles a dessiner), il a effectivement une grosse baisse de frame rate. Cela dit on est au dessus de 60 FPS donc cela reste acceptable. C'est plus une question de pas faire un truc trop bourrin.

    @Elendhil : Je me suis peut-être mal expliqué. Le problème c'est que s'est "beaucoup" plus couteux d'effectuer #500 petit rendu/blit plutôt qu'un seul large blit. D'où l'utilisation des buffers pour accélérer le rendu de la scène. Dans tout les cas il est pas question de faire des accès au disque.

    Sinon j'ai trouvé ces deux documents qui traitent de la question :
    http://gpwiki.org/index.php/VB:DX7_S...crolling_Tiles
    http://gpwiki.org/index.php/Framing_...ling_Algorithm

    Par contre, je sais pas si c'est vraiment faisable avec la SFML. Parce que je vois pas comment implémenter un buffer autrement qu'en sauvegardant l'écran dans une image.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ne te casse pas trop la tête, afficher des triangles, ça coute rien (ou presque), ce qui est lent, c'est les changements de texture. Pour accelerer ton rendu, tu peux simplement, commencer par trier tes tiles par texture identique, ou bien même mettre tous les tiles dans une seule texture (ou quelques unes), ça évitera les changements de textures, et ameliorera pas mal ton tenmps de rendu.

    Bien, tout ceci à condition que la SFML ne renvoye pas systematiquement une nouvelle texture à chaque dessin d'un tile (y compris si c'est la même).

    Pour le defilement, redessine betement, ça devrais pas trop se voir si tu es sur des trucs relativement legers.

Discussions similaires

  1. [SFML 2.0] TileMap sur SFML 2.3
    Par GuillaumeB. dans le forum SFML
    Réponses: 6
    Dernier message: 24/05/2015, 15h52
  2. problème de scrolling(tilemapping)
    Par tankerpat dans le forum XNA/Monogame
    Réponses: 10
    Dernier message: 06/10/2013, 00h23
  3. scroll dans un label
    Par Pretender dans le forum Composants VCL
    Réponses: 9
    Dernier message: 27/09/2002, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo