begin process at 2012 05 28 21:52:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

Comment utiliser les FPS


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment utiliser les FPS

vendredi 12 août 2005 à 16:03:18 | Comment utiliser les FPS

keil

Oui, betement depuis que j'ai appris a codé en openGL, j'ai toujours utilisé une fonction qui me permette de récupérer les FPS.
Je ne sais vraiment pas comment m'en servir.
J'ai fait un prog qui fait grandir un rectangle sur mon écran.
J'ai testé ce prog sur un autre PC et... horreur, elle s'ouvrait 10x plus lentement environ.
Comment palier à ce problème?
Faut-il limiter les FPS? comment faire?
vendredi 12 août 2005 à 16:23:13 | Re : Comment utiliser les FPS

Galmiza

Salut,

Ton programme est actuellement synchronise avec le processeur:
processeur n fois plus rapide => programme n fois plus rapide => mouvement du rectangle n fois plus rapide

Il faut que tu utilises l`horloge. Par exemple timeGetTime.
Cette fonctione evolue a la meme vitesse quelque soit le processeur sur lequel elle s`execute.

Donc lorsque tu modifies la taille du rectangle, modifie la en fonction de timeGetTime et non pas d`une variable que tu incrementes a chaque boucle.
vendredi 12 août 2005 à 16:33:52 | Re : Comment utiliser les FPS

keil

euh j'ai pas trop compris. Je vais donner plus de précisions:
Dans mon prog, j'ai une variable 'fps'.
mon rectangle est un vulgaire GL_QUADS qui est aggrandit grâce à glScalef(scale,scale,scale) où 'scale' est une variable relative à fps. Admettons scale=3*fps+oldscale.
Ce qui se passe c'est que le rectangle s'agrandit différemment selon les machines sur lesquelles le prog tourne.
Je pense que c'est du à un mauvais calcul de 'scale'.

vendredi 12 août 2005 à 17:37:35 | Re : Comment utiliser les FPS

Alcantornet

Il a truc pas logique plus il a de FPS plus le rectangle s'agrandira vite, a mon avis se serait plus juste de faire un truc du style: scale=30/fps+oldscale

Mais se serait encore de le faire avec une notion du temps comme le dis Galmiza.
Pour faire simple tu peux mettre un Sleep(25); avant scale=3*fps+oldscale.


vendredi 12 août 2005 à 18:07:10 | Re : Comment utiliser les FPS

Galmiza

Tu fais scale += k*deltaTime;

avec k au choix, plutot autour de 0.001f.
et deltaTime, la difference entre la valeur de timeGetTime au moment du rendu MOINS la valeur de timeGetTime du dernier rendu.

timeGetTime donne un resultat en milliseconde.

Dans ce cas ton quad grandira sans cesse. Mets plutot:
 
scale = 100*(1+sinf(float(timeGetTime)*0.001f));

scale evoluera sur tous les PC de la meme facon: cad, lentement de 0 a 200.

vendredi 12 août 2005 à 18:09:00 | Re : Comment utiliser les FPS

Galmiza

taille 1
taille 2
taille 3

juste un essaie car je me suis encore plante dans les tailles

mardi 16 août 2005 à 10:15:39 | Re : Comment utiliser les FPS

keil

heu je vais tester tout ce que vous me proposer quand j'aurais brancher mon vieux PC.

Galmiza, ta solution à l'air sympa mais à vue d'oeil je suis sur que l'augmentation du rectangle ne se fera pas de façon rectiligne uniforme. C'est pas trop un problème mais ça ressemble + à une solution bricolage.

Alcantornet, t'as solution à l'air bien aussi mais admettons que les FPS d'une machine tourne à beaucoup + de 30, le rectangle va s'agrandir lentement.
Tu me diras bien sûr de changer le chiffre 30 par un autre mais ça ne change rien au problème car décider arbitrairement d'une valeur montrera forcément des différences entre une machine dernier cri et un olschool 486SX lol, donc c'est à vue d'oeil aussi une solution bricolée.

Je vous parle juste d'un rectangle pour l'instant parce que j'en fais une classe. Mais quand j'aurais d'autre objets dans la scène j'aurais encore moins de FPS.

Télécharger http://keil.du.91.free.fr/FF7-2.zip
c'est pour windows, les rectangles en question doivent se trouver sur l'écran de présentation, vous en aurez un aperçu ainsi.
J'en profite aussi pour passer une annonce:
Je veux faire un jeu qui sera disponible gratuitement sur le net qui aura un petit peu la même gueule que dans l'exécutable, mais vous le remarquerez sûrement, niveau map et model designing, je suis une super quiche si bien que j'utilise des model créé par d'autre gens qui ne sont en rien adaptés à ce que je désire faire.
Le type du jeu sera est RPG façon final fantasy 7 mais ça peut évoluer si y'a des idées meilleures mais je veux pas mettre la barre trop haute pour l'instant.

Testez les différentes 'sauvegardes du jeu' chez moi ça tourne nickel mais je suis sur qu'à cause de l'histoire des FPS ça tournera au ralenti chez vous.

Autre chose encore:
Chez moi j'utilise C++ pour faire de l'openGL mais au boulot vu que je m'embête des fois, j'utilise JavaOGL pour faire de l'OpenGL et curieusement j'ai l'impression que les FPS sont limités à 10. Savez-vous si c'est juste une impression?


samedi 14 janvier 2006 à 18:58:40 | Re : Comment utiliser les FPS

rom2n

Réponse acceptée !



Cette discussion est classée dans : prog, utiliser, fps


Répondre à ce message

Sujets en rapport avec ce message

comment utiliser getvolumeinformation [ par shinevilkyo ] tout d abort boujour ,je suis nouveau ds la prog sur windows et j aurais voulu faire un prog qui me permette de liste tout ce qui a ds un cd rom.mais premier prog C++ graphique et Dev C++ 4.0 [ par zoophage ] Salut !je suis plus ou moins débutant en C++ et c'est pour ça que j'utilise dev c++ qui a le mérite d'être gratuit et facile à utiliser.Seulement, voi utiliser un Timer [ par melkiorlenecrarque ] hello! jutilise VC++ 6 et et j'essai de transcrire mon programme "combat warhammer" pour windowsvoila mon pb:mon prog en appuyant sur un boutton execu utiliser une fonction d'une lib C dans une classe c++ [ par snook ] Bonjour,j'aimerais savoir comment doit on proceder pourappeler une fonction d'une librairie ecrite en C dansmon programme C++?exemple: ma lib possede Kel librairie pour utiliser les threads? [ par milhandril ] J'essai d'utiliser des threads dans mon prog, mais je n'arrive pas à trouver la librairie à utiliser pour qu'il que VC++ 6 reconnaisse le type CThread comment utiliser SendInput ? [ par morgandetoi06 ] voila donc je veu faire un programme qui envoie un texte dans la fenetre au premier plan.par exemple je veu envoyer la ligne "hello world(avec un reto binary [ par helena123 ] Salut les Loulous, c'est tres simple mais je suis pas douee.je voudrais coder des chiffres decimaux en binaires mais pouvoir indiquer sur cbn de bit utiliser GetTempPath pour ecrire un fichier [ par elroulianito ] Voila une petite question toute bête:je désire écrire dans un fichier en utilisant les flux de la classe fstream.habituellement je procède comme ceci: Groupe de controle [ par damien174 ] bonjour j'aurais voulu savoir si c'était possible d'utiliser des index ou autre truc dans ce genre la pour utiliser un seul nom d'un obget par exemple ouvrir un mp3 [ par habibdu70 ] FC internazionnaleSlt, j'ai utiliser le programme de Haldwin qui s'intitule "LECTEUR AUDIO LISANT LES MP3, WMA ET WAV.... "tout d'abors merci pour ton


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,529 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales