目前,我使用呈現WebGL內容,其運行速度(理想情況下)爲60 FPS。我還同時安排了一個「更新」過程,它使用setTimeout
來處理AI,物理等等。我使用後者,因爲我實際上只需要每秒更新大約30次對象,而且這不是繪製序列的一部分。因爲我的大部分動畫都是相當硬件密集的,所以將實際渲染過程的剩餘CPU保存起來似乎是個不錯的主意。在JS/WebGL中調度更新「線程」
我的問題是最佳實踐之一。 setTimeout
和setInterval
對電池壽命和CPU消耗並不特別,尤其是當瀏覽器不重點時。另一方面,使用(或直接將更新綁定到現有的呈現階段)可能會每秒執行比嚴格必要的更多更新,並且可能會在瀏覽器沒有對焦或瀏覽器其他時間完全停止更新認爲「動畫」是不必要的。
什麼是更新的最佳動作過程,但不是渲染的內容?
謝謝!我認爲直接附加到渲染循環的唯一缺點是更新可能會在用戶切換選項卡時暫停,但現在我正在考慮更新,這可能是更好的結果(因爲如果他們切換了選項卡他們顯然無法像一位用戶那樣從更新中受益)。任何關鍵需要在後臺更新的東西都可以進入自己的時間間隔。 – sinisterchipmunk 2012-01-13 13:24:15