Three.js Render не очищается после использования ImmediateRenderObject

Я пытаюсь замаскировать 3D-сцену другой 3D-сценой. Мне удалось заставить его работать с обычными объектами THREE.Mesh, как показано ниже:

Маска рабочая

В основной сцене есть куча низкополигональных сфер. Сцена с маской имеет красный куб. Обе сцены передаются в виде текстур пользовательскому шейдеру, который проверяет красные пиксели на маске и отрисовывает пиксели основного.

Оно работает. Вот скрипт: http://jsfiddle.net/at4rumn6/3/

// please check source on jsfiddle

--

Однако, если я заменю кучу сфер каплями, как в примере с Марширующие кубы, он перестанет работать. . Проблема показана ниже:

Ошибка маски

Кажется, что-то не очищается в рендерере. Это может быть связано с THREE.ImmediateRenderObject, но я не понимаю, что он делает. Это похоже на очень специфический случай, возможно, я нашел ограничение в библиотеке. А может я просто что-то не так делаю.

Вот еще одна скрипка, показывающая ошибку: http://jsfiddle.net/Lwm93rxr/2/

Есть ли способ очистить буфер и заставить мою маску работать без «грязи» из других сцен?


person imbrizi    schedule 02.07.2015    source источник
comment
THREE.WebGLRenderer 71, Chrome 43, Mac OS X Yosemite   -  person imbrizi    schedule 06.07.2015
comment
Открыта проблема на github github.com/mrdoob/three.js/issues/6783   -  person imbrizi    schedule 06.07.2015


Ответы (1)


Обсуждение продолжилось в проблемах GitHub, и это было исправлено: https://github.com/mrdoob/three.js/issues/6783

person imbrizi    schedule 15.02.2018