Пример WebGL Multiple Canvas three.js

Поэтому я работаю над проектом, который использует несколько разных камер для рендеринга сцены на разные холсты. По сути, я делаю этот пример:

http://threejs.org/examples/webgl_multiple_canvases_grid.html

Проблема, с которой я столкнулся, заключается в том, что плоскость отсечения для разных сцен делает странные вещи по краям. С большими объектами это хорошо, как показывает пример, но с меньшими, некоторые обрезаются по краю. Я сделал пример, показывающий проблему с этим ниже.

http://tinyurl.com/pjstjjd

Мне было интересно, если есть в любом случае, чтобы это исправить. Несколько разных способов, которыми я собирался попробовать это, заключаются в следующем:

  • попробуйте немного перекрыть рендеры, чтобы плоскость отсечения была шире.
  • Посмотрите, есть ли способ отключить отсечение
  • плачу себе спать.

Есть ли что-то простое, что я упускаю, или мне придется копать глубже.

Заранее большое спасибо за ваше время! Исаак

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.

Это показывает несколько представлений в одном холсте, хотя на момент написания этого ответа, похоже, что он нуждается в некотором обновлении.

На этом изображении показано рисование с использованием одного большого элемента Canvas и place holder для рисования

Другие вопросы по тегам