"Unglaubwürdigkeitsproblem" bei Frameratenberechnung
-
Kahino schrieb:
150 000FPS

Ok, das ist mal was.
Ich dachte du hättest so um die 2000 FPS.
Da interessiert es mich doch, was die anderen Tests so ausspucken.Gruß
Don06
-
xindon schrieb:
hustbaer schrieb:
@xindon: üblicherweise macht man das nicht weil dann die angezeigte Framerate arg schwankt, manchmal so grob dass man eine einzelne Zahl nichtmehr ordentlich lesen kann. Ausserdem will man auch nicht unbedingt jedes Frame einen neuen Text rendern - je nachdem wie man den Text ausgibt kann das nämlich ganz schön lange dauern.
Besser wäre dann schon min/max/avg für eine Sekunde anzuzeigen, dann hat man wirklich brauchbare Werte, und kann sie auch in Ruhe lesen.
Aber, wie schon erwähnt, du hast dann ein Problem, wenn deine Bewegungen von der Geschwindigkeit abhängen. Wenn du die nur einmal in der Sekunde aktualisierst, kann's ganz schnell zu großen Sprüngen bzw. Slow-motion Bewegungen kommen, weil sich die Anzahl der zu rendernden Objekte zwischen zwei "FPS Aktualisierungen" drastisch ändern kann.
Kein vernünftiger Mensch macht die Bewegung von irgendwas von der FRAMERATE abhängig, das macht man von der delta-time abhängig, und die misst man natürlich pro Frame. Ich weiss nicht was der Einwand soll ... ?!?
-
hustbaer schrieb:
und die misst man natürlich pro Frame. Ich weiss nicht was der Einwand soll ... ?!?
also wirklich vernuenftige menschen machen logic und rendering eh nicht voneinander mehr abhaengig als noetig also laeuft logic in logicframes ganz unabhaengig von der framerate

-
Aber wenn FPS ebenfalls von der delta time abhängen und jeden Frame aktualisiert werden, ist das doch wohl egal, wie man Geschwindigkeiten letztendlich berechnet
-
das hatten wir alles schonmal http://www.c-plusplus.net/forum/viewtopic-var-t-is-21275
-
@xindon:
Ich weiss immer noch nicht was der Einwand sollte. Wenn ich die Framerate will muss ich von der delta time ausgehen. Die kann ich messen, und dann wie ich lustig bin (gemittlet oder auch nicht) eine Framerate daraus berechnen.Aber warum in aller Welt sollte ich wenn ich dann eben beides habe gerade die Framerate verwenden um irgendwelche Bewegungen zu steuern? Und schon garnicht wenn ich die Framerate gemittelt habe, die delta time aber noch "roh" ist?
Verstehe ich nicht wie man darauf kommen könnte das so zu machen. Klar wäre es Blödsinn, aber eben weil es so offensichtlich Blödsinn wäre verstehe ich den Hinweis darauf nicht...
-
hustbaer schrieb:
Aber warum in aller Welt sollte ich wenn ich dann eben beides habe gerade die Framerate verwenden um irgendwelche Bewegungen zu steuern? Und schon garnicht wenn ich die Framerate gemittelt habe, die delta time aber noch "roh" ist?
Verstehe ich nicht wie man darauf kommen könnte das so zu machen. Klar wäre es Blödsinn, aber eben weil es so offensichtlich Blödsinn wäre verstehe ich den Hinweis darauf nicht...Inzwischen ist mir auch klar, was du willst und das es sinnvoller ist, aber ich möcht dir grad noch erklären, wie ich konstante Bewegungen realisiert hab.
Nehmen wir an, ich verteile meinen Figuren feste Geschwindigkeiten, die ich bei 60fps für richtig halte.
Wenn das Programm jetzt mit 90fps läuft, kann man ja mit deinen beiden Frameraten einen Faktor ausrechnen (60/90) und dann multipliziert man die Bewegungsgeschwindigkeit mit diesem Faktor...
-
xindon schrieb:
hustbaer schrieb:
Aber warum in aller Welt sollte ich wenn ich dann eben beides habe gerade die Framerate verwenden um irgendwelche Bewegungen zu steuern? Und schon garnicht wenn ich die Framerate gemittelt habe, die delta time aber noch "roh" ist?
Verstehe ich nicht wie man darauf kommen könnte das so zu machen. Klar wäre es Blödsinn, aber eben weil es so offensichtlich Blödsinn wäre verstehe ich den Hinweis darauf nicht...Wenn das Programm jetzt mit 90fps läuft, kann man ja mit deinen beiden Frameraten einen Faktor ausrechnen (60/90) und dann multipliziert man die Bewegungsgeschwindigkeit mit diesem Faktor...
das heisst, je nach framerate werden sie verschiedene kurven laufen und verschieden oft "nachdenken"? *hehe*
-
rapso schrieb:
das heisst, je nach framerate werden sie verschiedene kurven laufen und verschieden oft "nachdenken"? *hehe*
Versteh ich jetzt nicht, was du damit meinst?
-
xindon schrieb:
rapso schrieb:
das heisst, je nach framerate werden sie verschiedene kurven laufen und verschieden oft "nachdenken"? *hehe*
Versteh ich jetzt nicht, was du damit meinst?
was daran faellt dir schwer zu verstehen?
-
kurven laufen? nachdenken?
und wer ist überhaupt "sie" ?
-
xindon schrieb:
kurven laufen? nachdenken?
Prädikat?
xindon schrieb:
und wer ist überhaupt "sie" ?
xindon schrieb:
...meinen Figuren...
-
och man ich gebs gleich auf...
ich nehme mal an, mit "sie" sind die Figuren gemeint, aber warum sollten sie Kurven laufen? und über was sollen sie denn nachdenken?
-
xindon schrieb:
ich nehme mal an, mit "sie" sind die Figuren gemeint, aber warum sollten sie Kurven laufen?
weil es ziemlich langweilig waere nur geradeaus zu laufen, irgendwann muessen sie abbiegen/kurven laufen.
und über was sollen sie denn nachdenken?
die handlungen die sie durchfuehren.
-
Sag mal willst du jetzt auf einen Fehler/Bug in meiner Berechnung raus oder willst du mich einfach nur verscheissern? :p
-
xindon schrieb:
Sag mal willst du jetzt auf einen Fehler/Bug in meiner Berechnung raus oder willst du mich einfach nur verscheissern? :p
raffst du das echt nicht dass deine simple idee nur bei linearer bewegung richtig laufen kann?
-
rapso schrieb:
xindon schrieb:
Sag mal willst du jetzt auf einen Fehler/Bug in meiner Berechnung raus oder willst du mich einfach nur verscheissern? :p
raffst du das echt nicht dass deine simple idee nur bei linearer bewegung richtig laufen kann?
Ja was ist denn bitte eine lineare Bewegung? Wenn meine Objekte eine Position und einen Bewegungsvektor haben. Die Länge des Bewegungsvektors multipliziere ich mit dem oben genannten Faktor.. was soll da schief gehen?
-
xindon schrieb:
rapso schrieb:
xindon schrieb:
Sag mal willst du jetzt auf einen Fehler/Bug in meiner Berechnung raus oder willst du mich einfach nur verscheissern? :p
raffst du das echt nicht dass deine simple idee nur bei linearer bewegung richtig laufen kann?
lineare Bewegung?Position und Bewegungsvektor
xindon schrieb:
was soll da schief gehen?
rapso schrieb:
...nur bei linearer bewegung richtig laufen kann?
nicht lineare bewegung
-
Tut mir leid, es is schon spät und seit ich vorhin meine Matrix Klasse geschrieben hab, bin ich leicht matschig im Kopf (grr die ganzen Indizes)..
Du willst mir also sagen, dass ich das so nicht machen kann, wenn die Bewegungsgeschwindigkeit nicht konstant ist. Naja is mir jetzt auch egal, ich geh schlafen :p sorry, dass ich dich genervt hab

-
xindon schrieb:
Tut mir leid, es is schon spät und seit ich vorhin meine Matrix Klasse geschrieben hab, bin ich leicht matschig im Kopf (grr die ganzen Indizes)..
Du willst mir also sagen, dass ich das so nicht machen kann, wenn die Bewegungsgeschwindigkeit nicht konstant ist. Naja is mir jetzt auch egal, ich geh schlafen :p sorry, dass ich dich genervt hab

ja, sobald geschwindigkeit, richtung sich aendern, oder logic berechnet wird, ist diese interpolation ungenau und kann von pc zu pc ein anderes spiel erzeugen. bei jemandem mit 100fps kann es sein dass homing-missiles immer treffen, bei jemandem mit 15fps koennten sie in eine umlaufbahn um das ziel einschwenken.