2013-02-27 22 views
2

我正在构建一个显示墙演示应用程序。在渲染集群中的节点之间同步视图状态

环境:

  • N个机组,每个驱动多达六个显示器
  • 有线千兆交换机
  • OpenTK应用绘制漂亮的图片,每个节点上运行1个拷贝

每个节点运行演示可执行文件的相同副本。每个节点还有一些配置数据,其中包含整个墙的分辨率以及该空间内该节点显示的相对位置。渲染时,在投影矩阵之后应用缩放/平移变换(有效地放大节点负责渲染的视图部分)。

节点在启动脚本中设置了“模式”开关,将它们置于“发送”或“接收”模式,除了一个节点外,其余所有节点均处于“接收”状态(将节点切换为“发送”会导致所有其他节点切换为“接收”)。基本的FPS类型通过一些原始几何(网格,二十面体等),在每次更新时,发送者节点广播包含一些状态信息(相机翻译/旋转,用于移动对象的变换)的UDP数据报。异步器异步接收这些数据报,反序列化状态并更新其本地副本。实际效果是,我在笔记本电脑上运行应用程序并四处飞行,墙壁很好地跟随着。这一切都很好。

但是,我担心随着系统规模的扩大(从10台显示器到500台),网络延迟将成为一个问题。我也认为,不是像这样通过网络发送垃圾邮件状态,而是将其填充到数据库中并让每个节点都从那里拉出来,但我怀疑任何现成的数据库都将达到一个60FPS * 500个节点循环。

对此提出建议?在很多节点之间共享状态的最佳方式是真的,非常快?

回答