2009-12-21 43 views
1

什麼是一個好的處理序列和/或線程模型,用來給用戶一個良好同步的物理模型,音頻,視頻,聲音和輸入的印象一個應用程序,假設應用程序不準備「預測」幀或聲音?如何同步物理模型,音頻,遊戲渲染,幀顯示和輸入

編輯

我的問題不承擔任何「網絡遊戲」的概念,只是一個獨立的機器。

回答

1

廣泛的問題。

我假設一個遊戲環境。似乎或多或少普遍做的是在幀渲染上同步。以下是大致會發生什麼:

  • 輸入被抓住和評估,計算反應(AI和這樣)。這可能會設置新的物理過程。
  • 如果伴隨着聲音的事件開始,則該聲音啓動。它從那時起或多或少地自主運行,直到它完成,獨立於幀處理(這是我們所在的位置)
  • 物理模型被更新。在大多數情況下,這將是非常簡單的事情,例如根據以前的位置和速度計算新的位置。外推的數量取決於自上一幀以來經過的時間量(儘管可以對每幀進行平均而不是重新計算)
  • 從更新後的物理模型中更新可視模型。
  • 圖形引擎可以從更新的模型中顯示新的場景(框架)。
  • 儘快重複。
+0

我讀到的方式聽起來像是需要一個時間函數的外推(以調和新幀渲染開始的當前時間到遊戲時間),但不一定是「預測性」外推。 – martinr

+1

好吧,你可以做,但追溯推斷更容易和更準確,因爲你可以確切地知道多少時間過去了。此外,在體面幀速率(以上,比如說20 FPS)時,沒有人能分辨出差異。 –

+1

如果幀時間是可變的(即,如果您儘可能快地生成幀),請使用調試工具記錄實際幀時間和輸入。然後製作一個使用記錄時間和輸入的播放模式,而不是實時時鐘和實時輸入。這將給調試帶來很好的重現性。 (種子你的隨機數發生器,也是。) –