Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
05.03.2002, 20:02
Mazze



Hi!
Mein Programm ist ein bisschen schnell....
ein bisschen zu schnell!

Ich hab ein kleines OpenGL programm erstellt in dem ich nun gerne die Maximale Zahl der FPS bestimmen würde.
Ich weiß aber nicht ganz, wie man das am geschicktesten macht. Ich kann nicht einfach die Frames zählen und dann wenn die MaxFPS Zahl erreicht ist für diese Sekunde keine mehr zeichnen....

Ich wär für eine gute Lösung dankbar!

cu
Matze

PS: Evtl. steh ich auch auf dem Schlauch und es gibt ne ganz einfach Möglickeit!

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
001
05.03.2002, 23:30
hausi



#define MAX_FPS 65
...
und dann im Render:

while ((flTime - flLastFrameTime) * MAX_FPS < 1)
sleep(10);

Sollte eigentlich so funktionieren... Hatte eher zu wenige Frames, als ich OGL gecodet habe...

--

zum Seitenanfang zum Seitenende Profil || Suche
002
06.03.2002, 13:44
Prefect



Ein Spiel kann gar nicht zu schnell sein. Wenn es zu schnell läuft liegt es daran, daß du kein richtiges Timing verwendest.

Richtiges Timing läuft so: Bestimme jeden Frame die momentane Systemzeit (timeGetTime, gettimeofday, SDL_GetTicks). Daraus kannst du berechnen, wie lang ein Frame dauert.

Wenn du dann in deinem Code eine Stelle hast wie:

if (left_key_pressed)
x -= 10;

verändere diesen Code in:

if (left_key_pressed)
x -= 10 * milliseconds_per_frame / 1000;

Dann bewegt sich der Gegenstand um 10 Einheiten pro Sekunde. Ganz egal, ob das Programm auf einem schnellen oder langsamen Computer läuft.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
003
06.03.2002, 14:10
Retro



Wo es schonmal um das Thema geht...

Half-Life scheint auch eine begrenzung auf imho 65FPS zu haben, denn weder auf meiner VooDoo noch auf der Radeon eines Freundes geht es höher... setzt da einfach die Anzeige aus, oder sind die Frames wirklich begrenzt?

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
004
06.03.2002, 15:19
Hellfire



Half-Life hat in der Tat eine Frameratebegrenzung (fps_max oder sowas), die standardmäßig auf 72 gestellt ist (deckt sich jedoch nicht mit dem 65 fps von retro).

--

zum Seitenanfang zum Seitenende Profil || Suche
005
06.03.2002, 15:24
Retro



imho 65FPS =)

Hast recht, dann warens 72.

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
006
06.03.2002, 15:59
Prefect



Ähm... kann es sein, daß das an der Bildfrequenz eurer Monitore liegt? Bei mir geht Half-Life bis auf 100fps hoch, und das ist naheliegenderweise die vertikale Frequenz des Monitors.

Ist ja auch logisch: fps höher als die Bildwiederholfrequenz des Monitors macht einfach keinen Sinn, weil man die zusätzlichen Frames nicht sehen würde (diese ganzen Benchmarks mit Quake 3 bei 200fps sind ergo ziemlich unrealistisch).

Auf dem Monitor-OSD sollte der momentane Frequenz stehen (und 65 und 72 sind typische Werte).

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
007
06.03.2002, 16:49
Mazze



Thanx@Prefect!
Stimmt. Das ist eine viiiel bessere Lösung!

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
008
06.03.2002, 18:06
SAugSTelle



"fps höher als die Bildwiederholfrequenz des Monitors macht einfach keinen Sinn, weil man die zusätzlichen Frames nicht sehen würde"
hab mal gelesen mehr als 26 kann man eh net sehen weil das auge da net mitkommt O_o

--

zum Seitenanfang zum Seitenende Profil || Suche
009
06.03.2002, 18:28
Quetzalcoatl



aber erst ab ca. 70 fps wirds flimmerfrei!

Nebenbei bemerkt: in HL gehen die fps bei mir nie über 72 hinaus, in Q3 aber meistens um 90-110? Das deckt sich aber nich mit der oben aufgestellte Theorie.

--

Home sweet home

5% aller Primzahlen sterben innerhalb ihres ersten Lebensjahres entweder an Typhus, oder an der Quadratwurzel aus einer demokratischen Verfassung!

zum Seitenanfang zum Seitenende Profil || Suche
010
06.03.2002, 18:32
syyl



@Quetzalcoatl: falsch, der monitor z.B hat immer 70Hz egal mit wievielen Frames das spiel läuft, wenn Hl z.B nur mit 10 frames läuft, flimmerts trotzdem nicht, es wird nur ein bischen ruckeln.

--

Haben ist besser als brauchen.

zum Seitenanfang zum Seitenende Profil || Suche
011
06.03.2002, 19:36
Hellfire



Zitat:
Nebenbei bemerkt: in HL gehen die fps bei mir nie über 72 hinaus, in Q3 aber meistens um 90-110? Das deckt sich aber nich mit der oben aufgestellte Theorie.
Vielleicht glaubt mir ja doch endlich mal jemand, dass HL die Frames begrenzt. Console -> "max_fps x" wobei x der Wert der maximalen fps ist (glaube maximal geht 100, zumindest zeigt der net_graph meinen Infos nach nicht mehr an. Bei meinem System ist das auch net so einfach hinzubekommen ;)
Was ihr mit eurer Monitorrefreshrate macht ist mir relativ egal...

--

zum Seitenanfang zum Seitenende Profil || Suche
012
06.03.2002, 20:53
Diablo_bth



aber meiner Meinung nach macht es z.B. bei q3 einen ziehmlichen Unterschied ob ich 100 oder 200 fps habe, obwohl das weder meine Monitor anzeigen oder mein Auge wahrnehmen kann. Die Physik reagiert einfach exakter und das spürt man!

--

zum Seitenanfang zum Seitenende Profil || Suche
013
07.03.2002, 14:10
Prefect



Hrhr, dann ist einfach Quake 3 schlecht programmiert. Das wundert aber auch nicht, denn mit Gameplay hat Carmack ja anscheinend nichts am Hut. Eventuell limitiert Quake 3 die Framerate nicht so sehr. Triple-Buffering könnte auch einen Unterschied machen (bin mir da nicht so sicher).

Von wegen HL und FPS-Limit; in der config.cfg steht:

Zitat:

fps_modem "0.0"
fps_max "72.0"

Wenn mich nicht alles täuscht habe ich aber trotzdem ab und zu 100fps. Zudem steht eine Zeile drüber was von fps_modem. Da liegt der Schluß, daß es sich hier um eine Netcode-Einstellung handelt, nahe.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
014
07.03.2002, 16:34
KhanRKerensky



fps_modem ist die maximale fps im Netzwerk... warum du da aber "0.0" hast wundert mich... 0 FPS klingt.... naja... unlogisch.

--

"[...] you're going to burn in a very special level of Hell. A level they reserve for child molesters and people who talk at the theater." - Book

zum Seitenanfang zum Seitenende Profil || Suche
015
08.03.2002, 00:32
Another1



mhh ... 100 fps ... *träum*
ob er bei fps_max "25" meckert das ich den minValue der cvar unterschritten hab? und das wenn selbst 25fps von meinem PC eh nie erreicht werden?

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
016
08.03.2002, 15:33
Prefect



Also 100fps solltest du auf jedem Rechner herkriegen - wenn du irgendwo in eine Ecke schaust...

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
017
08.03.2002, 19:18
Another1



nein.

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
018
09.03.2002, 12:30
Mazze



Musst du bei deinem PC noch kurbeln, oder? ;)

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
019
10.03.2002, 02:30
Another1



nein. aber ich hab 'nen anspitzer zum kurbeln, so'n krasses DDR Teil in ROT

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
020
13.03.2002, 11:01
McE-Madden



Habt ihr bei eurer Grafigkarte die einstellung "vertikale sync" ausgestellt?

Wenn es angestellt ist, dann habe ich mit meinem 1400Mhz und der Gefroce 2 IT 64DDR nur 68fps in Half-Life. Obwohl ich fps_max 101 gesetzt habe.

--

EJOT Productions
Game & Web Development


Dieser Beitrag wurde am 13.03.2002 um 11:03 von McE-Madden bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
021
13.03.2002, 13:24
Prefect



Womit wir wieder beim Thema VSync wären.

Aber wie ich schon sagte: FPS > VFreq macht absolut keinen Sinn, weil man die zusätzlichen Frames einfach nicht sieht...
Von daher kann man VSync ruhig auch anlassen.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
022
13.03.2002, 13:55
Braindead



es kommt noch hinzu, das es bei ausgeschschalteten VSync zum abriss kommt, das geschieht dann, wenn mehr Bilder gezeichnet werden sollen als es der Monitor kann, da sieht man oft zwei Frames mit einmal, der obere teil gehört zum alten und die untere hälfte ist bereits der nächste frame, allein schon deswegen lohnt es nicht VSync auszustellen

*edit* am stärksten tritt der fehler ab eher bei niedrigen fps auf

--


Dieser Beitrag wurde am 13.03.2002 um 14:27 von Braindead bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
023
13.03.2002, 14:17
McE-Madden



Kann schon ein Argument sein. Nur bei denen die keine Fehler in dem Ausmaßen bemerken, sollten es der flüssigkeitshalber ausstellen.

--

EJOT Productions
Game & Web Development

zum Seitenanfang zum Seitenende Profil || Suche
024
13.03.2002, 14:27
anothergb02



Waaaeeea :( wer proggt denn bidde sein Spiel mit sleep ??? *rufl*
Hört lieber alle auf Prefect. Jede verdammte Bewegung ist zeitabhängig also immer: move ... * frtime ! Und um so mehr Frames um so besser gleitet das Spiel dahin !
Jo und das mit dem Monitor ist schon ein Argument ...
A1 hat sogar noch einen Hitec Ventilator, um sein Motherboard mit seiner Grafikkarte abzustimmen ^_° (Underground info !)

--

Being in john Malkovich
.....


Dieser Beitrag wurde am 13.03.2002 um 14:28 von anothergb02 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche