| |
|
|
| Echtzeit - was heist das eigendlich wenns dabei um Software geht?
Echtzeit bedeutet NICHT das etwas flüssig oder fliessend abläuft, oder gar schnell oder langsam. Echtzeit bedeutet für den Programmierer eher, dass er Sorge tragen muss dass das Programm auf jedem Computer scheinbar in der selben Geschwindigkeit abläuft.
Nun gibts aber langsame und schnelle Rechner, der eine Computer schafft nur 1 fps, ein anderer 10. Wenn ich also einen Ball fliegen lasse und sage das er sich pro Frame (durchlauf) um einen Pixel bewegen soll, dann läuft der Ball auf unterschiedlichen Rechnern unterschiedlich schnell. Keine Echtzeit!
Echtzeit bedeutet hierbei z.B., das man schaut wie schnell der Computer arbeitet - und die Schrittweite des Balles anpasst.
Das ist aber garnicht so einfach - meiner Meinung nach gibts hier verschiedene Lösungsansätze welche aber alle Vor und Nachteile haben. Man könnte z.B. jede Sekunde schauen wie viele Frames geschafft wurden, und die Schrittweite des Balles anpassen. Aber sekündlich? Reicht das? Nein, es sieht furchtbar aus. Tatsächlich muss man schauen wie lange das letzte Frame dauerte - und bei jedem Frame die Schrittweite neu berechnen. Aber ist das dann immer flüssig? Nein - leider auch nicht. Der Ball würde manchmal hopsen. Also muss ein Dämmer her.
Jedenfalls, ich hab das mal hier in diesem miniDemo dargestellt. Das Fenster ist skalierbar um die FPS zu reduzieren - denn das BitBlit braucht ja länger (mehr cpu) desto größer das Fenster ist. Der Ball sollte dennoch, egal wie groß die anzeigefläche ist, verhältnismäßig immer die richtige Geschwindigkeit einhalten - so gut es geht.
Ich habe hierzu auch eine Klasse gebaut - heist FPS. Den Source gibts später - wenn überhaupt interesse daran besteht. Die Klasse habe ich mir eigendlich gebaut um 3D-Apps - wie z.B. WalkEngines in Echtzeit ablaufen zu lassen. Hierbei ist es nähhmlich besonders wichtig! Das BallDemo ist nur zum Test. |
|
|
| |
|
|
|
Jörg Sellmeyer | Bei mir zeigtes immer ca. 866 fps. Ob das so richtig ist ? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 10.01.2007 ▲ |
|
|
|
|
Michael Wodrich | Bei mir zuckt er bei 850 fps.
Da frage ich mich wieso iFs letztes Testprogramm was von einem fps gelogen hat und nicht startete...
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 11.01.2007 ▲ |
|
|
|
|
RGH | Auf meinem Arbeitsplatz-Rechner in der Firma komme ich nur auf 45 fps (hat halt nur Grafik OnBoard) und der Ball fliegt stets gleichschnell ums Eck.
(BTW: Das letzte Demo ließ sich auch bei mir zu Hause mit der Anzeige 1.00000000 fps nicht starten ... auch nicht, als ich eine bessere Grafikkarte eingebaut hatte. Muß wohl noch einanderes Problem drin gewesen sein.)
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 11.01.2007 ▲ |
|
|
|
|
| Bei mir flackert die Anzeige zwischen 880 + 1000 fbs - der Ball läuft aber immer gleich - Grafikprocessor: GeForce FX 5500 |
|
|
| |
|
|
|
| @Jörg: Hängt von der Fenstergröße ab, das Fenster ist skalierbar.
@Michael: Das eine ist reines BitBlit, das andere war OpenGL. |
|
|
| |
|
|
|
Jörg Sellmeyer | iF
@Jörg: Hängt von der Fenstergröße ab, das Fenster ist skalierbar.
Genau, das ist schon klar - aber sind es wirklich Frames per second die da angezeigt werden oder irgendwas anderes? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 11.01.2007 ▲ |
|
|
|
|
| Es sind frames per Second! |
|
|
| |
|
|
|
RGH | Hallo,
ich habe es jetzt zu Hause ausprobiert (NVIDEA 6200 mit 128 MB). Das Verhalten ist seltsam: Wenn ich das Programm starte, habe ich zunächst eine Anzeige von um die 600 fps (schwankt so zwischen 5xx und 7xx). Sobald ich das Fenster aber auch nur unmerklich größer oder kleiner (!) ziehe, gehen die fps auf ca. 50 zurück. Mache ich es ganz klein, steigen sie auf etwa 100 an, vergrößere ich es maximal (1280 * 1024), gehen sie auf 15 - 20 zurück.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 11.01.2007 ▲ |
|
|
|
|
| Maximiert habe ich 10fps, ca 64x64 habe ich 600fps, bei Start habe ich 70fps. |
|
|
| |
|
|
|
| Habe hier ein neues Demo. Wenn man auf übernehmen klickt wird der TextBox das aktuelle Result hinzugefügt.
Einfach ein paar Results erzeugen und den Text hier posten. Denke so ists einfacher. |
|
|
| |
|
|
|
| Results: 1024x768=~15 Fps 1024x768=~14 Fps 1024x768=~14 Fps 1024x768=~14 Fps 1024x768=~14 Fps 1024x768=~14 Fps 1024x768=~13 Fps 1024x768=~13 Fps 1024x768=~13 Fps 79x302=~235 Fps 79x302=~224 Fps 79x302=~246 Fps 79x302=~262 Fps 79x290=~274 Fps 79x290=~280 Fps 320x320=~52 Fps 320x320=~56 Fps 640x480=~31 Fps 640x480=~29 Fps 1024x768=~15 Fps 1180x948=~10 Fps |
|
|
| |
|
|