簡體   English   中英

如何在 C# UWP 中獲取屏幕刷新頻率?

[英]How do I GET the screen refresh Hz in C# UWP?

有誰知道如何在 C# UWP 應用程序中獲得顯示器屏幕刷新率 (Hz)?

...這將有效地發布到 Microsoft Store(即,沒有 HWND?)。

這個問題的原因是,在編寫游戲時,最好根據更新之間的經過時間來確定移動。 為了獲得平滑的幀計時,了解我們在屏幕上繪制的頻率以及讓我們的幀更新時間與此同步是很有用的。

例如,如果您知道刷新率是 120Hz,那么最好設置一個固定的游戲時間:

TargetElapsedTime = TimeSpan.FromTicks((long)(TimeSpan.TicksPerSecond / 120L));

這導致一致的幀定時和平滑的運動。

使用IsFixedTimeStep = false; 在游戲 1 中。

graphics.SynchronizeWithVerticalRetrace = true; 應該限制 FPS 以匹配刷新率。

它應該根據源代碼注釋工作:

第一個參數指示 DXGI 阻塞直到 VSync,使應用程序進入睡眠狀態直到下一個 VSync。 這確保了我們不會浪費任何循環渲染永遠不會顯示到屏幕上的幀。

如果您仍然需要以 Hz 為單位的實際刷新率,請計算更新中的(1000/gameTime.ElapsedTime.TotalMilliseconds)的平均值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM