我有一个监视器网格(12*2=24监视器)作为一个大监视器(大墙大小的显示器)运行。我使用three.js构建了一个具有超过10,000,000个数据点和12690 x 3840分辨率的可视化。因此,在这种可视化中,GPU的全部功能都被使用了,与可视化的交互变得越来越慢。我希望通过服务器将渲染分布在12台计算机上,以获得更好的性能,能够添加更多数据点并顺利交互。
你知道如何实现它吗?
发布于 2020-02-13 17:47:56
这个答案是: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()
。一旦它工作了,你就可以使用websockets来保持机器之间的时钟同步。否则,如果有交互式摄像头控件或其他设置,只要它们是全局的,您就可以通过websockets将它们广播到所有机器。
如果有更多的交互,那么您可以在机器之间传递输入或其他数据,但理想情况下,您需要使其不需要同步太多,因此模拟是确定性的,以便在给定相同状态(时间+设置)的情况下,每台机器将生成相同的显示状态。
https://stackoverflow.com/questions/60204197
复制相似问题