Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   OpenGL Timebased Movement ohne VSync (https://www.delphipraxis.net/164878-opengl-timebased-movement-ohne-vsync.html)

roboter202 4. Dez 2011 09:20

OpenGL Timebased Movement ohne VSync
 
Hallo,

Ich hab ein Programm das Timebased Movement unterstützt und das geht auch recht gut aber wenn ich an der Grafikkarte die VSync deaktiviere habe ich statt 65 etwa 3000 - 4000 Frames Delta Time ist somit extrem klein meist 0 und nur selten etwa 16. dadurch erhalte ich beim bewegen ein ruckeliges Bild.

Ich möchte jedoch das der Nutzer nicht auf aktivierte VSync beschränkt ist. Daher möchte ich weder VSync einschalten, was vlt. auch nicht geht, noch die Sleep Funktion beim Rendern aufrufen um die Frames künstlich zu drosseln.

Kennt da jemand noch eine andere Lösung ?

Gruß
robote202

Uwe Raabe 4. Dez 2011 10:02

AW: OpenGL Timebased Movement ohne VSync
 
Ohne den Code zu kennen: kannst du nicht einfach bei einem DeltaTime < ??? die Routine verlassen und nur bei überschreiten dieser Schwelle das Rendering veranlassen?

roboter202 4. Dez 2011 10:24

AW: OpenGL Timebased Movement ohne VSync
 
Ok ich werd's nachher mal versuchen

Namenloser 4. Dez 2011 18:08

AW: OpenGL Timebased Movement ohne VSync
 
Wahrscheinlich nutzt du
Delphi-Quellcode:
GetTickCount
für die Zeitermittlung? Versuch es stattdessen mal mit
Delphi-Quellcode:
QueryPerformanceCounter
und Co. – dieser hat eine deutlich höhere Auflösung. Ich hatte damit noch nie solche Probleme...

roboter202 4. Dez 2011 20:15

AW: OpenGL Timebased Movement ohne VSync
 
Zitat:

Wahrscheinlich nutzt du GetTickCount für die Zeitermittlung?
richtig geraten.

Ich werde es mal mit
Zitat:

QueryPerformanceCounter und Co
versuchen

@Uwe Raabe
Das habe ich probiert aber hier erhielt ich auch nur komische Ergebnisse.

Ich werde morgen mal den entsprechenden Code posten.

Gruß
roboter202

roboter202 5. Dez 2011 16:43

AW: OpenGL Timebased Movement ohne VSync
 
Hab's nochmal probiert jetzt geht es ich hab als Schwellwert zwar 0 definiert und erhalte (nur) 64 Frames aber das reicht ja.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:22 Uhr.

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