2013-02-27 24 views
2

我正在構建一個顯示牆演示應用程序。在渲染集羣中的節點之間同步視圖狀態

環境:

  • N個機組,每個驅動多達六個顯示器
  • 有線千兆交換機
  • OpenTK應用繪製漂亮的圖片,每個節點上運行1個拷貝

每個節點運行演示可執行文件的相同副本。每個節點還有一些配置數據,其中包含整個牆的分辨率以及該空間內該節點顯示的相對位置。渲染時,在投影矩陣之後應用縮放/平移變換(有效地放大節點負責渲染的視圖部分)。

節點在啓動腳本中設置了「模式」開關,將它們置於「發送」或「接收」模式,除了一個節點外,其餘所有節點均處於「接收」狀態(將節點切換爲「發送」會導致所有其他節點切換爲「接收」)。基本的FPS類型通過一些原始幾何(網格,二十面體等),在每次更新時,發送者節點廣播包含一些狀態信息(相機翻譯/旋轉,用於移動對象的變換)的UDP數據報。異步器異步接收這些數據報,反序列化狀態並更新其本地副本。實際效果是,我在筆記本電腦上運行應用程序並四處飛行,牆壁很好地跟隨着。這一切都很好。

但是,我擔心隨着系統規模的擴大(從10臺顯示器到500臺),網絡延遲將成爲一個問題。我也認爲,不是像這樣通過網絡發送垃圾郵件狀態,而是將其填充到數據庫中並讓每個節點都從那裏拉出來,但我懷疑任何現成的數據庫都將達到一個60FPS * 500個節點循環。

對此提出建議?在很多節點之間共享狀態的最佳方式是真的,非常快?

回答