2017-07-06 44 views
0

我有一個項目,我正在寫一個碎片着色器,我希望能夠控制幀率。我很難得到這方面的信息 - 幾乎我發現的所有內容都是關於優化60-90fps的幀速率,但我需要的實際上是將其降至20fps左右。控制着色器的幀率

+0

快速'骯髒:'睡眠(50毫秒); SwapBuffers()' – genpfault

+0

我可以做一個碎片着色器嗎?將添加澄清 –

+0

不,這將在您的客戶端代碼。除了在其中做更多的工作以外,沒有真正的減慢着色器執行的方法。 – genpfault

回答

0

對幀率做任何事情都是一個糟糕的設計。你應該做的是改變你的更新循環。想象一下吧:

你的着色器可以以1000FPS渲染,但實際上你需要20FPS。如果你將呈現靜態圖像,你不會注意,如果它是20或1000FPS。但是,如果你需要某種運動,你會注意到。因此,而不是更新着色器變量(負責運動)每幀中,只有每第n個幀更新它,它應該給你想要的效果,

看到一些關於遊戲的循環,例如:https://gamedev.stackexchange.com/questions/25767/is-it-safe-to-set-fps-rate-to-a-constant

+0

這可能是糟糕的設計,但這是我唯一的選擇。我確實發現了這個shadertoy:https://www.shadertoy.com/view/llS3Rc它似乎有一些相關的東西,但我想弄清楚如何使用它沒有顏色文物。 –