Three.js在许多计算机的服务器上分发高分辨率渲染图

问题描述 投票:1回答:1

我有一个监视器网格(12 * 2 = 24个监视器),作为一个大监视器(大墙大小的显示器)运行。我使用three.js构建了一个可视化文件,具有超过1亿个数据点和12690 x 3840分辨率。因此,通过这种可视化,GPU的功能得到了充分利用,并且与可视化的交互越来越慢。我想通过服务器将渲染分布在12台计算机上,以获得更好的性能,能够添加更多数据点并流畅地交互。

您是否知道如何实现?

three.js webgl distributed multiple-monitors high-resolution
1个回答
1
投票

有一个示例herehere

以及此答案:display three.js scene across multiple screens

也有this non-three.js example,但确实显示了解决方案和this three.js one that runs across machines

基本上,您设置服务器以在计算机之间中继Websocket消息。这听起来可能很吓人,但是使用node.js并不需要那么多代码(我敢肯定其他语言也有简单的解决方案)。

每台机器都需要知道要显示的场景部分,并且需要具有相同的场景(或机器要显示的场景部分)。机器上的动画应直接与时钟关联。首先,您可以使用Date.now()。一旦工作,您就可以使用websocket使机器之间的时钟保持同步。否则,如果存在交互式摄像机控件或其他设置,则只要它们是全局的,您就可以通过websocket将它们广播到所有计算机。

如果存在更多的交互,那么您可以在机器之间传递输入或其他数据,但是理想情况下,您需要使输入或其他数据不同步,因此仿真是确定性的,因此每个给定相同的状态(时间+设置)机器将生成相同的显示状态。

© www.soinside.com 2019 - 2024. All rights reserved.