Three. js, распространяющих рендеринг в высоком разрешении на сервер многих компьютеров - PullRequest
1 голос
/ 13 февраля 2020

У меня есть сетка мониторов (12 * 2 = 24 монитора), работающих как один большой монитор (большой настенный дисплей). Я построил визуализацию с тремя. js с более чем 10 000 000 точек данных и разрешением 12690 x 3840. Таким образом, с этой визуализацией используется полная мощность графического процессора, и взаимодействие с визуализацией становится медленным. Я хотел бы распределить рендеринг на 12 компьютерах через сервер, чтобы повысить производительность, добавить больше точек данных и беспрепятственно взаимодействовать.

У вас есть идеи, как это реализовать?

1 Ответ

4 голосов
/ 13 февраля 2020

Есть примеры здесь и здесь .

И этот ответ: отображение трех. js сцены на нескольких экранах

Также есть это не три. js пример , но оно показывает решение, а это три. js, которое работает на машинах

В основном вы настраиваете сервер для ретрансляции сообщений websocket через машины. Это может звучать страшно, но с node.js это не так уж много кода (я уверен, что другие языки также имеют простые решения).

Каждая машина должна знать, какую часть сцены отображать, и должна иметь та же сцена (или часть сцены, которую будет отображать машина). Анимации на машинах должны быть привязаны непосредственно к часам. Для начала вы можете использовать Date.now(). Как только он заработает, вы можете использовать веб-сокеты для синхронизации часов на разных машинах. В противном случае, если есть интерактивные элементы управления камерой или другие настройки, если они глобальные, вы можете транслировать их на все машины через веб-сокеты.

Если есть больше взаимодействия, вы можете передавать входные данные или другие данные между машинами, но в идеале вам нужно сделать так, чтобы не нужно было много синхронизировать, и чтобы симуляция была детерминированной c, чтобы при одинаковом состоянии (время + настройки) каждая машина генерировала одинаковое состояние дисплея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...