Echte Hz-Angabe? Purearea Source LimitedFPS
Echte Hz-Angabe? Purearea Source LimitedFPS
Beim schreiben eines eigenen FPS-Anzeigers, ist mir nach dem Besuch von Purearea ein Sourcecode aufgefallen, der wohl die FPS auf 1000 erhöhen kann.
http://www.purearea.net/pb/CodeArchiv/G ... itedFPS.pb
Das können doch keine echten 1000 Hz sein, oder doch?
Mein Monitor schafft maximal auf 1024x768 bis 100 Hz.
Würde gerne mal eure Meinung dazu lesen.
Grüße
http://www.purearea.net/pb/CodeArchiv/G ... itedFPS.pb
Das können doch keine echten 1000 Hz sein, oder doch?
Mein Monitor schafft maximal auf 1024x768 bis 100 Hz.
Würde gerne mal eure Meinung dazu lesen.
Grüße
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: Echte Hz-Angabe? Purearea Source LimitedFPS
Wenn ich das richtig sehe, geht es im Source um die
Keyboard-Frequenz.
Keyboard-Frequenz.
Re: Echte Hz-Angabe? Purearea Source LimitedFPS
FPS und Bildschirmwiederholrate sind zwei verschiedene Dinge.
FPS gibt an wieviele Bilder pro Sekunde dein Spiel ausgibt und die Bildschirmwiederholrate gibt an wie oft pro Sekunde das Bild neu aufgebaut wird.
Man kann durchaus mehr Bilder an den Monitor senden als er mit seiner Bildwiederholrate anzeigen kann. Das wird aber nur zum Performance messen gemacht, es entstehen dabei nämlich unschöne Effekte da mitten im Bildaufbau das Bild gewechselt wird und sich somit das Bild auf dem Bildschirm aus Zeilen aus verschiedenen Bildern zusammensetzt.
FPS gibt an wieviele Bilder pro Sekunde dein Spiel ausgibt und die Bildschirmwiederholrate gibt an wie oft pro Sekunde das Bild neu aufgebaut wird.
Man kann durchaus mehr Bilder an den Monitor senden als er mit seiner Bildwiederholrate anzeigen kann. Das wird aber nur zum Performance messen gemacht, es entstehen dabei nämlich unschöne Effekte da mitten im Bildaufbau das Bild gewechselt wird und sich somit das Bild auf dem Bildschirm aus Zeilen aus verschiedenen Bildern zusammensetzt.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

Re: Echte Hz-Angabe? Purearea Source LimitedFPS
Wie könnte ein Code aussehen zum ermitteln von FPS?
Denn wenn ich das richtig sehe dann zeigt der Code den ich benutze nur die Hz an und nicht die FPS?!
Denn wenn ich das richtig sehe dann zeigt der Code den ich benutze nur die Hz an und nicht die FPS?!
Code: Alles auswählen
If Val(FormatDate("%ss", Date())) = sek
FPS + 1
Else
FPS$ = Str(FPS)
FPS = 0
EndIf
sek = Val(FormatDate("%ss", Date()))
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
If FPS$ <= "24" : DrawText(X, Y, "FPS: " + FPS$, RGB(150, 000, 000)) : EndIf
If FPS$ >= "25" And FPS$ < "50" : DrawText(X, Y, "FPS: " + FPS$, RGB(205, 145, 015)) : EndIf
If FPS$ >= "50" : DrawText(X, Y, "FPS: " + FPS$, RGB(050, 185, 050)) : EndIf
If FPS$ > FPSMax$ : FPSMax$ = FPS$ : EndIf
DrawText(10, 10, "FPS (Max): " + FPSMax$, RGB(150, 150, 150))
StopDrawing()- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Echte Hz-Angabe? Purearea Source LimitedFPS
Ich weiß nicht, was dein Code da genau macht, aber ich hab schon aufgehört ihn zu analysieren als ich 'FormatDate()' entdeckt hatte.
Hier mal ein Beispiel für einen Code, der dir die aktuellen FPS zurückgibt, wenn du ihn einmal pro Schleifendurchlauf aufrufst:
Hier mal ein Beispiel für einen Code, der dir die aktuellen FPS zurückgibt, wenn du ihn einmal pro Schleifendurchlauf aufrufst:
Code: Alles auswählen
Procedure.f FPS()
Static time.i = -1
Protected currentTime.i = ElapsedMilliseconds()
Protected timeDiff.i = currentTime - time
time = currentTime
ProcedureReturn 1000. / timeDiff
EndProcedure-
Drago
- Beiträge: 148
- Registriert: 02.02.2010 18:22
- Computerausstattung: Win XP SP3, AMD Sempron (MMX) 1.2 GHz, 512 MB, Nvidia GeForce FX 5200, 128 MB, DirectX 9.0c
- Wohnort: Westerwald
Re: Echte Hz-Angabe? Purearea Source LimitedFPS
Also, ich will mich ja nicht einmischen, aber FPS bedeutet
Frames Per Second
Und das zeigt KEINER von eueren Codeschnippsel an...
Frames Per Second
Und das zeigt KEINER von eueren Codeschnippsel an...
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Echte Hz-Angabe? Purearea Source LimitedFPS
Also meiner tut, was er soll. Und rein mathematisch gesehen ist er auch korrekt. Wie hast du es denn gemessen?
Das folgende Programm gibt mir genau 25.0 aus, was so viel bedeutet, wie dass die For-Schleife mit 25 Hz läuft.
Das folgende Programm gibt mir genau 25.0 aus, was so viel bedeutet, wie dass die For-Schleife mit 25 Hz läuft.
Code: Alles auswählen
Procedure.f FPS()
Static time.i = -1
Protected currentTime.i = ElapsedMilliseconds()
Protected timeDiff.i = currentTime - time
time = currentTime
ProcedureReturn 1000. / timeDiff
EndProcedure
For i = 1 To 50
Debug FPS()
Delay(40)
Next-
Drago
- Beiträge: 148
- Registriert: 02.02.2010 18:22
- Computerausstattung: Win XP SP3, AMD Sempron (MMX) 1.2 GHz, 512 MB, Nvidia GeForce FX 5200, 128 MB, DirectX 9.0c
- Wohnort: Westerwald
Re: Echte Hz-Angabe? Purearea Source LimitedFPS
So wie ich es verstanden habe, sucht er eine Code mit dem er die FPS ermitteln kann.
Bilder pro Sekunde, oder stehe ich jetzt irgendwie auf der Leitung ?
Bilder pro Sekunde, oder stehe ich jetzt irgendwie auf der Leitung ?
-
Drago
- Beiträge: 148
- Registriert: 02.02.2010 18:22
- Computerausstattung: Win XP SP3, AMD Sempron (MMX) 1.2 GHz, 512 MB, Nvidia GeForce FX 5200, 128 MB, DirectX 9.0c
- Wohnort: Westerwald
Re: Echte Hz-Angabe? Purearea Source LimitedFPS
Die Hertzzahl gibt an, wie oft das Bild vom Monitor neu aufgebaut wird (Bildwiederholrate) und die FPS sind die "Frames per second" die die Grafikkarte zum Monitor schickt.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Echte Hz-Angabe? Purearea Source LimitedFPS
NicTheQuick hat die ganz schnellen Durchläufe übersehen, dann gibt es DivByZero
// böses k entfernt 
Code: Alles auswählen
Procedure.f FPS()
Static time.i = -1
Protected currentTime.i = ElapsedMilliseconds()
Protected timeDiff.i = currentTime - time
time = currentTime
If timeDiff > 0
ProcedureReturn 1000. / timeDiff
EndIf
EndProcedure
For i = 1 To 50
Debug FPS()
Delay(40)
Next
Zuletzt geändert von ts-soft am 03.02.2012 01:35, insgesamt 1-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

