Пример WebGL Multiple Canvas three.js
Поэтому я работаю над проектом, который использует несколько разных камер для рендеринга сцены на разные холсты. По сути, я делаю этот пример:
http://threejs.org/examples/webgl_multiple_canvases_grid.html
Проблема, с которой я столкнулся, заключается в том, что плоскость отсечения для разных сцен делает странные вещи по краям. С большими объектами это хорошо, как показывает пример, но с меньшими, некоторые обрезаются по краю. Я сделал пример, показывающий проблему с этим ниже.
Мне было интересно, если есть в любом случае, чтобы это исправить. Несколько разных способов, которыми я собирался попробовать это, заключаются в следующем:
- попробуйте немного перекрыть рендеры, чтобы плоскость отсечения была шире.
- Посмотрите, есть ли способ отключить отсечение
- плачу себе спать.
Есть ли что-то простое, что я упускаю, или мне придется копать глубже.
Заранее большое спасибо за ваше время! Исаак
1 ответ
Проблема в том, что вы создаете 4 App
объекты и в каждом из них вы создаете разные случайные сферы. Таким образом, ваши 4 вида имеют разные наборы сфер в разных местах. Если вы хотите, чтобы виды соответствовали, вы должны размещать объекты в тех же местах в каждом приложении.
Я вставил этот код в строку 129 в вашем примере
var randomSeed_ = 0;
var RANDOM_RANGE_ = Math.pow(2, 32);
Math.random = function() {
return (randomSeed_ =
(134775813 * randomSeed_ + 1) %
RANDOM_RANGE_) / RANDOM_RANGE_;
};
Это случайная функция, которая возвращает одинаковые значения для каждого приложения, так как randomSeed_ начинается с 0 в каждом приложении.
Это помогло бы узнать, чего вы в конечном итоге пытаетесь достичь. Образец Three.JS, на который вы ссылаетесь, предназначен для того, чтобы показать, как распределить рендеринг по нескольким мониторам на 4 разных компьютерах в сетке.
Этот показывает, если мониторы разных размеров, а не в сетке. Этот показывает, если мониторы находятся в круге или полукруге. Например, Google Liquid Galaxy.
Это показывает несколько представлений в одном холсте, хотя на момент написания этого ответа, похоже, что он нуждается в некотором обновлении.