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

Auteur Sujet: Deplacement sprite - FPS bas  (Lu 10196 fois)

0 Membres et 3 Invités sur ce sujet

Gamz

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Deplacement sprite - FPS bas
« le: Août 06, 2013, 05:51:02 am »
Bonsoir ou Bonjour ?.. ;D

Je viens à vous pour un problème récurrent depuis que j'utilise cette librairie, un tres faible niveau de fps (de l'ordre de 5) dès que je tente de déplacer un sprite à l'écran.
J'ai tenté de déplacer sur un fond noir un simple sprite, avec un code minimum, le problème persiste.

Voici le code utilisé (basique) :
while(app.isOpen())
{
  if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
  {
     m_sprite.move(0,2);
  }
  app.clear();
  app.draw(m_sprite);
  app.display();
}
 

Ma config, meme si elle fait tourner bien plus complexe :

- Intel Centrino 2 coeurs à 2.4Ghz
- Ati radeon 6300series
- 4Go mémoire vive
- Os : Ubuntu 12.04 32bits

Merci par avance..

Gamz
« Modifié: Août 06, 2013, 02:54:38 pm par Gamz »

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Deplacement sprite - FPS bas
« Réponse #1 le: Août 06, 2013, 06:28:11 am »
app.display();
?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #2 le: Août 06, 2013, 07:50:51 am »
+ app.pollEvent ?

Lis les tutoriels, prends les exemples qui t'y sont montrés.
Laurent Gomila - SFML developer

Gamz

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #3 le: Août 06, 2013, 02:54:19 pm »
J'ai tenté ici un code minimum du miens, j'ai juste oublié de recopier ces lignes, il est évident qu'elles sont dans le code originel, sinon je ne pourrais pas meme constater le probleme de fps.

Lolilolight

  • Hero Member
  • *****
  • Messages: 1232
    • Voir le profil
Re : Deplacement sprite - FPS bas
« Réponse #4 le: Août 06, 2013, 02:55:05 pm »
Oui et un truc aussi qui augmente beaucoup le FPS, compiler avec les options -O2 et -O3, je suis passé de 20 à 60 FPS. :D

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #5 le: Août 06, 2013, 03:07:57 pm »
Citer
j'ai juste oublié de recopier ces lignes, il est évident qu'elles sont dans le code originel
C'est pas évident pour tout le monde, surtout avec comme commentaire "voici le code utilisé". Ici on ne suppose rien comme étant "évident", pas mal de gens sont débutants et font vraiment n'importe quoi ;)

Du coup merci de montrer un vrai code complet minimal qui produit le problème :P
Laurent Gomila - SFML developer

Gamz

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #6 le: Août 06, 2013, 04:12:29 pm »
Voilà (Le app.pollEvent n'est ici pas necessaire)

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow app(sf::VideoMode(800, 600), "Test");

    sf::Texture texture;
    texture.loadFromFile("personnage.png");
    sf::Sprite sprite;
    sprite.setTexture(texture);

    while (app.isOpen())
    {
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
            sprite.move(0,0.5);
        app.clear();
        app.draw(sprite);
        app.display();
    }

    return 0;
}
« Modifié: Août 06, 2013, 04:14:48 pm par Gamz »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #7 le: Août 06, 2013, 04:16:57 pm »
Citer
Le app.pollEvent n'est ici pas necessaire

Citation de: Tutoriel
Une erreur que les gens font souvent est d'oublier de mettre une boucle d'évènements, car ils n'en ont pas besoin (ils utilisent les entrées temps réel à la place, typiquement). Mais sans gestion d'évènement la fenêtre ne sera pas réactive ; en effet, la boucle d'évènement a deux rôles : en plus de fournir les évènements à l'utilisateur, elle permet à la fenêtre de traiter ses évènements internes, ce qui est impératif a son bon fonctionnement.
Laurent Gomila - SFML developer

Gamz

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #8 le: Août 06, 2013, 04:24:16 pm »
Encore une fois, le pollEvent etait bien présent dans le code d'origine, j'ai donc créé un nouveau projet contenant celui-ci :

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow app(sf::VideoMode(800, 600), "Test");

    sf::Texture texture;
    texture.loadFromFile("personnage.png");
    sf::Sprite sprite;
    sprite.setTexture(texture);
    sf::Event event;

    while (app.isOpen())
    {
        while (app.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                app.close();
        }

        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
            sprite.move(0,0.5);
        app.clear();
        app.draw(sprite);
        app.display();
    }

    return 0;
}

Évidemment ça ne règle pas le problème.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #9 le: Août 06, 2013, 04:28:42 pm »
Comment mesures-tu le nombre de FPS ?

Est-ce que d'habitude tu peux faire tourner d'autres applications OpenGL sans problème ?
Laurent Gomila - SFML developer

Gamz

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #10 le: Août 06, 2013, 04:31:00 pm »
Je dis à vu d'oeil, je vois bien que le sprite se deplace par à coup et non de manière fluide, l'image ne semble pas bouger mais bel et bien se "téléporter".

Euh je ne sais pas si j'ai d'autres applications openGL.
« Modifié: Août 06, 2013, 04:38:54 pm par Gamz »

Gamz

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #11 le: Août 06, 2013, 04:41:20 pm »
Je ne sais pas si des jeux comme OpenArena ou Teeworlds fonctionnent avec openGL mais avec ceux-ci je ne rencontre aucun problème.

EDIT : Je me souviens à l'instant d'avoir utilisé openGL à travers la librairie 3D Irrlicht, aucun problème de performance n'était présent.
« Modifié: Août 06, 2013, 04:46:30 pm par Gamz »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #12 le: Août 06, 2013, 05:04:23 pm »
Essaye de lancer glxgears.
Laurent Gomila - SFML developer

Gamz

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Re : Deplacement sprite - FPS bas
« Réponse #13 le: Août 06, 2013, 05:09:25 pm »
Voici le résultat :
7905 frames in 5.0 seconds = 1580.523 FPS

Lolilolight

  • Hero Member
  • *****
  • Messages: 1232
    • Voir le profil
Re : Deplacement sprite - FPS bas
« Réponse #14 le: Août 06, 2013, 06:04:38 pm »
Tu dois avoir un soucis avec le driver de ta carte graph ati pas à jour car chez moi ça marche très bien j'ai meme fait mon propre framework pour mon propre jeux. :)

Ca parait saccadé un peu mais c'est mon logiciel pour filmer qui fait ça, quand je l'exécuter sur mon PC ça ne saccade pas et ça tourne a 60 FPS.

http://www.youtube.com/watch?v=LOD8ipUun04&feature=youtu.be

Désolé pour la mauvaise qualité des graphismes et animation, on le voit a peine quand le personnage attaque mais je suis pas un pro en infographie et puis la flemme d'améliorer ça maintenant faut d'abord que je fasse le système de quete, compétence, etc..., mais ça tourne bien.