Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Exakte FPS (https://www.delphipraxis.net/115759-exakte-fps.html)

EWeiss 17. Jun 2008 17:43

Re: Exakte FPS
 
Zitat:

Zitat von littleDave
Zitat:

Zitat von Muetze1
Zitat:

Zitat von littleDave
Die Genauigkeit von GetTickCount hat maximal 1ms, ...

Afaik hängt GetTickCount() noch immer am guten alten HW Timer 1 und der sollte somit eine Auflösung von 18,2 ms haben...

Wieder was gelernt. Ich wusste es selbst nicht genau, also hab ich einfach 1ms gesagt, da das Ergebnis ja eine cardinal-Variable ist ;-) Aber gut zu wissen. Also ich kann nur sagen, dass meins eine Vermutung war, von daher hast du, Muetze1, recht glaub ich.

Denke ist aber immer noch genug um ausreichende werte zu haben.
Zumal ich eh alle 500ms die FPS abfrage.

gruss Emil

EWeiss 18. Jun 2008 14:18

Re: Exakte FPS
 
hab da ein schnipsel bei Sulaco gefunden mit dem es
möglich ist VSync Softwaremäßig zu aktivieren.

Ist nur die frage ob das sinnvoll ist ;)

Delphi-Quellcode:
procedure VBL2(vsync : TVSyncMode);
var
   i : Integer;
begin
   if WGL_EXT_swap_control then
   begin
      i := wglGetSwapIntervalEXT;
      case VSync of
         vsmSync   : if i<>1 then wglSwapIntervalEXT(1);
         vsmNoSync : if i<>0 then wglSwapIntervalEXT(0);
      else
         Assert(False);
      end;
   end;

end;
Auf jedenfall ändert sich nichts bei meiner FPS aktiviert oder nicht.

gruss Emil

littleDave 18. Jun 2008 14:35

Re: Exakte FPS
 
Der Code-Ausschnitt kommt mir irgendwie aus glScene bekannt vor - aber egal.

Für eine Visualisierung ist es auf jedenfall sinnvoll, vSync zu aktivieren. Du willst ja nicht dass die Visualisierung das komplette System benutzt und somit für Laptop-Benutzer die Hölle ist (wegen Batterie).

Aber wenn du nur 40 FPS hast, dann wird vSync nichts ändern. vSync ist erst wirklich aktiv, sobald deine FPS-Zahlen größer als die Herz-Zahlen des Monitors werden (bei TFTs: 60Hz-75Hz). Daher ist es egal ob du es nun aktivierst oder nicht - doch für sinnvoll halte ich es immer. Ich hab bei meiner Engine vSync immer an (gibt bei mir zwar nen Developer-Key, der vSync deaktiviert, doch für den Normalbenutzer gibt es nur vSync an - außer er hat im Treiber vSync auf "Immer Aus" gesetzt - dann ist er aber selbst schuld ;-))

EWeiss 18. Jun 2008 14:50

Re: Exakte FPS
 
Zitat:

Zitat von littleDave
Der Code-Ausschnitt kommt mir irgendwie aus glScene bekannt vor - aber egal.

Für eine Visualisierung ist es auf jedenfall sinnvoll, vSync zu aktivieren. Du willst ja nicht dass die Visualisierung das komplette System benutzt und somit für Laptop-Benutzer die Hölle ist (wegen Batterie).

Aber wenn du nur 40 FPS hast, dann wird vSync nichts ändern. vSync ist erst wirklich aktiv, sobald deine FPS-Zahlen größer als die Herz-Zahlen des Monitors werden (bei TFTs: 60Hz-75Hz). Daher ist es egal ob du es nun aktivierst oder nicht - doch für sinnvoll halte ich es immer. Ich hab bei meiner Engine vSync immer an (gibt bei mir zwar nen Developer-Key, der vSync deaktiviert, doch für den Normalbenutzer gibt es nur vSync an - außer er hat im Treiber vSync auf "Immer Aus" gesetzt - dann ist er aber selbst schuld ;-))

Ok dann werde ich es so belassen..
Der Code stammt von

Zitat:

Philippe Dargent has sent me this code showing how to create several different sine wave scrolling effects.
This Project is a modification on his previous project called Enabling / Disabling V-Sync (Vertical Synchronization)
will mich nicht mit fremden Federn schmücken ;)

Denke aber ist sinnvoll es wieder auszustellen beim beenden des programms oder
ändert das etwas an den System einstellungen der hardware ?

gruss Emil

littleDave 18. Jun 2008 15:00

Re: Exakte FPS
 
Zitat:

Zitat von EWeiss
Denke aber ist sinnvoll es wieder auszustellen beim beenden des programms oder
ändert das etwas an den System einstellungen der hardware ?

Nein, diese Einstellung gilt nur für den aktuellen Render-Kontext und ändern keine System-Einstellung. Daher hat es keine Bedeutung es wieder zurückzusetzen - ist unnötiger Aufwand.

EWeiss 18. Jun 2008 15:11

Re: Exakte FPS
 
Ok dann weiss ich bescheid und kann die deaktivierung wieder entfernen
Unnötiger code muss nicht sein.

gruss Emil


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:24 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz