Kann man FPS zähler selbst Programmieren

Yuzura_Senpai

Cadet 3rd Year
Registriert
Jan. 2021
Beiträge
61
Hallo

Ich hatte letztens die Idee mir einen eigenen FPS Zähler zu Programmieren mit eigener Software usw. die dann wie z.b: Razer Cortex im Hintergrund läuft.

Mein Problem ist bloß ich kenne mich 0 mit Programmieren aus und wollte mal rum fragen ob es hier leute gibt die mir das Erklären können wie ich mit Eclipse, Unity oder sonstigem so eine Software zu Programmieren.

(Ich suche hier dannach weil ich denke das das hier das beste forum ist und fragen nicht schaden kann weil ich im Internet sonst nichts richtiges dazu finde LG^^)
 
Ich denke, der TE sollte erst mal mit Grundlagen anfangen...
 
  • Gefällt mir
Reaktionen: BeBur
Natürlich kann man sowas selbst programmieren, aber ein Framecounter ist schon ein sehr kompliziertes Programm, da du dich schon sehr tief mit den Schnittstellen des BS auseinandersetzen musst.
Versuche doch erstmal das Programmieren an sich zu lernen. Für so eine Anwendung wird sicher C# oder C++ sinnvoll sein.
 
  • Gefällt mir
Reaktionen: Fombu
Naja tief in's BS braucht man da nicht. C++ ist dein Freund. Besorg dir Visual Studio und los gehts.
Bis du so weit bist dass du so etwas von dir aus programmieren kannst vergehen sicherlich minimum 1-2 Jahre.

HWND vom Fenster + DirectX Hook wären auf die Schnelle meine Anlaufstellen zum Informieren.
 
Ich vermute auch (ohne genaueres Hintergrundwissen oder Recherche) dass das gar nicht so einfach ist. Wenn das nämlich so einfach wäre, würde es tonnenweise gute Open Source Alternativen zu Fraps geben :/ Idealerweise würde es dafür ne API von Windows oder dem Grafiktreiber geben, scheint es aber nicht.
 
Das Open Capture and Analytics Tool (OCAT) bietet so einen FPS-Overlay und noch ein paar andere darauf aufbauende Berechnungen.
Da es Open-Source ist, könnte man sich mal anschauen, wie das ungefähr aussehen kann: https://github.com/GPUOpen-Tools/OCAT
 
  • Gefällt mir
Reaktionen: w0nd4bra, Arc Angeling und netzgestaltung
Nero_XY schrieb:
oder dem Grafiktreiber geben, scheint es aber nicht.

oh der steckt doch bei Nvidia im Expirience mit drinnen ... also gibts ihm doch.


und AMD hats im Radeon Overlay mit drinnen

https://www.amd.com/de/support/kb/faq/dh-026

komisches Zeug so ein FPS Counter.
 
Aber mit dem MSI Afterburner gibt es sowas. Ähnliches liefern auch andere Grafikkarten Hersteller.
Ich weiss nicht, ob man da von 0 aus neu anfangen muss. Also ob das irgendwie lohnt.

Ich will dich aber nicht etwa abhalten oder sowas.
 
Ich dachte sobald man die Basics beherrscht, kann man den Rest aus Github kopieren.
Bei solchen Vorhaben würde ich zu einer der vielen fertigen Lösungen greifen. Warum das Rad neu erfinden?
Wenn es der persönlichen Weiterbildung beim Coden dienst, sollte man sich sowieso zuerst die Grundlagen für dieses Vorhaben erarbeiten.

Man beginnt beim Hausbau ja auch nicht bei den Fenstern. :)
 
  • Gefällt mir
Reaktionen: ###Zaunpfahl###
Burki73 schrieb:
Aber mit dem MSI Afterburner gibt es sowas. Ähnliches liefern auch andere Grafikkarten Hersteller.
Ich weiss nicht, ob man da von 0 aus neu anfangen muss. Also ob das irgendwie lohnt.

Ich will dich aber nicht etwa abhalten oder sowas.
Ich kenn genug andere ich will halt bloss nen eigenen weil ich das cool finde und im internet finde ich keine tutorials deswegen suche ich hier
 
Ich würde an deiner Stelle erstmal lernen was der Unterschied zwischen einer IDE und einer Programmiersprache ist, du hast nur IDE's aufgezählt.
 
Wenn es cool sein soll, dann schau doch ob du Farbe und Schriftart ändern kannst. "Cool weil selber gebaut" geht halt leider nicht, wenn man das nicht kann.
 
  • Gefällt mir
Reaktionen: Fombu und BAGZZlash
Ich weiß nicht, wie hart du im Nehmen bist, aber da hast du dir was richtig dickes und zähes als erstes Projekt ausgesucht.
Das Überfliegen der OCAT-Sourcen hat meine erste Vermutung bestätigt:
Da musst du dich in die jeweiligen Grafikschnittstellen (OpenGL, DirectX oder Vulkan) dranhängen.
Ultimativ sind auch die es, die am Ende für das Rendern des Frames über die GPU zuständig sind.
Entsprechend bekommst du auch nur von dort die nötigen Informationen.

Grundsätzlich ist es natürlich möglich so etwas selber zu Programmieren.
Als Anfänger, ohne Vorkenntnisse ist das aber so gut wie unmöglich.
Da musst du dich erst einmal langsam rantasten:
  • Schritt 1: Grundlagen der Programmierung.
    Bevorzugt in einer Windows-nahen Sprache, wie C/C++ (eher Managed als nicht) oder C#, die auch am Ende gute Unterstützung der entsprechenden Grafikschnittstellen bieten.
  • Schritt 2: Grundlagen im Umgang mit Grafikschnittstellen.
    Da rate ich mit DirectX 11 oder 12 zu starten, dann Vulkan und zuletzt OpenGL.
    Am besten für den Anfang eine kleine eigene 3D-Engine basteln, indem du dann auch gleich erstmal deinen eigenen, einfachen FPS-Counter für diese deine Engine implementieren kannst.
    Diese Engine kannst du dann von Grafikschnittstellen zu Grafikschnittstellen portieren und lernst dabei auch gleich deren Gemeinsamkeiten und Unterschiede.
  • Schritt 3: FPS-Logging
    Hier musst du recherchieren, wie du bei den einzelnen Grafikschnittstellen an ein Event, oder etwas ähnliches, ran kommst, das jedes Mal auslöst, wenn ein Frame fertiggerendert wurde.
    Das kann man dann in einem kleinen Programm verarbeiten oder in eine Datei schreiben.
  • Schritt 4: FPS-Overlay
    Das ganze Wissen aus den ersten 3 Schritten kannst du jetzt hier reinfließen lassen, und du bist am Ziel angekommen.
  • Bonus: Spaß an Grafikschnittstellen gefunden?
    Portier die einfache 3D-Engine nach OpenGL 1.1 und wage einen Blick in die hässliche Vergangenheit :D
 
  • Gefällt mir
Reaktionen: Arc Angeling, ###Zaunpfahl### und jb_alvarado
Naja, theoretisch ja, wenn man hinterher komplett selber ohne Libraries oder OS-APIs alles selber proggen will.
Windows 10 scheint aber entsprechende Funktionalität anzubieten und was ich gefunden habe lässt mich vermuten, dass solide Kenntnisse in insbesondere C# ausreichen damit das nur ein nettes kleines Projektchen ist.

Ohne Programmierkenntnisse spielt das aber natürlich keine Rolle.
 
Ein FPS Counter ist keine Fingerübung. Ich glaube die meisten Entwickler hier würde sich nicht zutrauen so etwas implementieren. Wenn man wissen möchte, wie aufwendig das ist, braucht man sich nur das von AW4 bereits erwähnte OCAT anzusehen: https://github.com/GPUOpen-Tools/OCAT
 
Zurück
Oben