OpenGL et rafraichissement

Signaler
Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006
-
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
-
Salut !

J'aimerais savoir comment on fait pour changer le taux de rafraichissement d'une scene déssinée par Irrlicht en mode OpenGL. Je parle bien du taux de rafraichissement (60,70,75,85 Hz ... ) et non des FPS.
J'ai vu que GLUT savait le faire, mais j'aimerais éviter de l'utiliser, ça commencerait à faire trop de dépendance pour mon projet...

Merci

12 réponses

Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
????????????????????????????????
???
?
dsl je comprend pas.
quelle différence fais tu entre taux de rafraichissement et fps?
si pour toi le taux de raffraichissement est le nombre d'images affichées par l'écran (et non pas calculées pas le GPU et le CPU) en une sec, tu peux pas y toucher.
pour le fps, plus t'en as mieux c'est.
Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006

Par FPS, j'entends Frames/sec, c'est à dire le nombre d'images calculées par le GPU/CPU

Par taux de rafraichissiment, j'entends le nombre d'images par secondes affichées par l'écran.

Par défaut avc OpenGL, ce taux est de 60 Hz (=60 img/s)
Ce que je voudrais faire, c'est comme avec DirectX : choisir un taux de rafraichissement d'écran, le passer à 85Hz au lieu de 60Hz (plus de scintillement, écran moins fatiguant à voir...)
Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006

Par FPS, j'entends Frames/sec, c'est à dire le nombre d'images calculées par le GPU/CPU

Par taux de rafraichissiment, j'entends le nombre d'images par secondes affichées par l'écran.

Par défaut avc OpenGL, ce taux est de 60 Hz (=60 img/s)
Ce que je voudrais faire, c'est comme avec DirectX : choisir un taux de rafraichissement d'écran, le passer à 85Hz au lieu de 60Hz (plus de scintillement, écran moins fatiguant à voir...)
Messages postés
224
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
30 mars 2009

en fait le FPS dépend du taux de rafraichissement de ton écran (Hz). Si ton taux est de 85 Hz, ton FPS ne pourra pas aller au dessus de 85 images par secondes (même si la scène est rapide à dessiner)
Sous directx et opengl, la synchronisation entre la fréquence d'affichage des images et le taux de rafraichissement de l'écran (vsync) est activée par défaut.
Il te faut désactiver ce vSync (vertical syncronization)
Pour certaines cartes, il t'es possible de le désactiver directement via le panneau de config de ton écran/carte. Pour le faire via le code, il existe plusieurs sources sur le net, cherches du côté de "vsync".

Si tu cherches à monter ou descendre le taux de refraichissment de ta carte, alors je ne sais pas t'aider, tout ce que je peux te dire, c'est de chercher du côté d'MSDN.

.:. NoRabbit .:.
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
d'ou tiens tu ce 60Hz???
c'est stupide, je sais pas ou t'as lu ca.
openGL calculeautat de fps que tu lui en demande.
si tu arrives a faire du 1500 fps (c'est possible avec de tt petits progs), openGL va toutes les calculer et les aficher a l'écran.
le probleme c'est que celui-ci , 1500 c'est comme qui dirait un peu trop... par défaut c'est 50Hz, mais c'est toi qui vois ca par l'intermédiaire de ton driver de carte graphique.
en revanche, si openGL n'arrive qu'a afficher que 10 fps, ca rame a mort, l'image est saccadée, etc.
cf les tutos de digiben sur gametutorials.com
faut pas croire tout ce que tu trouve sur le net tu sais
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
Norabbit-> ce que tu dis est faux, mon prog tourne a 140fps, c'est l'affichage qui ne peut aller au dessus de 75hz
le VSync est utile si par exemple tu as du 200 fps, c'et inutile d'en calculer autant puisque seulement le tiers sera affiché. alors du coup ca limite le fps, c'est peut-etre de ca que voulait parler simtiers
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Image qui scintille à 60Hz???
Quand on sait qu'une télé affiche 24 images par seconde et que l'on peut rester des heures à la regarder...permets-moi de douter que passer de 60 à 85 de fera avancer ^^

---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
non funto, une tv recois 25 images/seconde en signal mais en affiche 50 désentrelacées, une image est affichée en 2 passes (lignes paires - lignes impaires ), c'est le cas pour un tube 50hz

25 hz ca serais irregardable (on pourrais meme distinguer le balyage de l'ecran)

le scintillement d'un ecran à 60hz fatigue beaucoup vu qu'en principe on le regarde de beaucoup plus pres qu'une tv

le refreshrate n'a rien à voir avec le framerate, la vsync permet juste de ne pas avoir d'effet de decoupe de l'image lorsque le framerate est élevé par rapport au refreshrate
Messages postés
224
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
30 mars 2009

ok, donc en gros le vsync permet de limiter le nombre d'images affichées s'il est plus élevé que la fréquence de rafraichissement de l'écran pour éviter certains "problèmes" au niveau de l'affichage.

Ce que je ne savais pas, c'est que le prog, lui, tourne toujours aussi vite qu'il le peut sans être influencé par ce "vsync". En fait je pensais qu'à chaque fois qu'on faisait un "SwapBuffers()", opengl faisait une pause afin d'être synchro avec la fréquence de rafraichissement de l'écran stoppant, de ce fait, le programme pendant quelques millisecondes.

dites moi si c'est correct ou pas...

.:. NoRabbit .:.
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Il me semble bien qu'à ce moment-là (ou sinon plutôt au glFlush() je pense, qui peut être encapsulé dans une autre fonction cependant...) OpenGL peut bloquer le programme, mais seulement lorsque la V-Sync est activée.

A confirmer.

---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
moi je pense la meme chose (que c'est bloquant)

j'ai rien trouvé sur la doc opengl (à propos de v-sync)
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
voir le forum de la source de Belzel, "limiteur de fps"
je retrouve plus l'adresse...