Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Performance grande carte ( map - tileset )  (Lu 2054 fois)

0 Membres et 1 Invité sur ce sujet

zimzim

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Performance grande carte ( map - tileset )
« le: Juillet 20, 2016, 11:26:58 pm »
Bonsoir,

Je viens demander vos points de vues.

Pour afficher une grande carte, j'ai un object Map qui herite de sf::Sprite.

Mais Tile font 128 * 128

Pour afficher les textures, c'est ok tout vas bien nikel :) :) 8)


Mais le truc que je comprend pas c'est quand je joue avec la taille de mes cartes

25*25 => 1000FPS

50*50 => 300FPS

100*100 => 100FPS

J'utilise une sf::view avec un zoom de 4 pour faire comme du 32 * 32


class MapGame : public sf::Sprite

std::vector<std::shared_ptr<MapTile>> Tiles;

 

this->texture->create(this->width, this->height);

        for (int y = 0; y < this->nbTitleHeight; y += 1)
        {
                for (int x = 0; x < this->nbTitleWidth; x += 1)
                {
                        this->texture->update(*MonObjectImage, x * this->tileWidth, y * this->tileHeight);
                }
        }

        this->setTexture(*this->texture);
 

Quand je suis en zoom 1 les FPS sont bien meilleur


Je fais les même test avec un tile de 32 * 32 - les performance sont bien meilleure

500 * 500 => 200 FPS


Donc si je veux faire des grande map je dois travailler avec des petit tiles ?

Il y mieux que Sf:Sprite pour afficher une carte ?


Enfin voilà quoi , je sais pas si c'est normal ou si c'est moi qui m’inquiète pour rien.

Merci à tous et longue vie a SFML





G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Performance grande carte ( map - tileset )
« Réponse #1 le: Juillet 21, 2016, 01:36:28 am »
Ça a l'air compliqué ton truc.
De la création et update de texture à tout va ? C'est pas rapide je crois.

Tu passes ton temps à créer et updater une texture avec des trucs qui existent déjà et qui proviennent d'une même image apparemment, ça serait pas plus simple et rapide d'afficher plusieurs sprites qui utilisent la même texture mais dont tu changes juste le TextureRect ? (ou un seul sprite dont tu changes le TextureRect et la position, si tu tiens à n'utiliser qu'un sprite)

zimzim

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : Performance grande carte ( map - tileset )
« Réponse #2 le: Juillet 21, 2016, 02:47:21 pm »
Ok je note je test ça se soir.

Je connaissait pas le texture rect :)

Merci l'ami

 

anything