Am использует three.js
Как я могу управлять порядком рендеринга? Скажем, у меня есть три плоские геометрии и вы хотите сделать их в определенном порядке независимо от их пространственного положения.
спасибо
Am использует three.js
Как я могу управлять порядком рендеринга? Скажем, у меня есть три плоские геометрии и вы хотите сделать их в определенном порядке независимо от их пространственного положения.
спасибо
Вы можете установить
renderer.sortObjects = false;
и объекты будут отображаться в том порядке, в котором они были добавлены в сцену.
В качестве альтернативы вы можете оставить sortObjects
как true
по умолчанию и указать для каждого объекта значение для object.renderOrder
.
Подробнее см. Прозрачные объекты в Threejs
Еще одна вещь, которую вы можете сделать, это использовать описанный здесь подход: Как изменить zOrder объекта с помощью Threejs?
three.js r.71
для trjs r70 и выше удаляется renderDepth.
Использование object.renderDepth работал в моем случае. У меня был стеклянный корпус и пузыри внутри, которые были прозрачными. Пузыри терялись под определенными углами.
Таким образом, установка их renderDepth на большое число и воспроизведение с другими элементами глубин в сцене устранили проблему. Присоединение элемента управления dat.gui к свойству renderDepth очень упростило настройку того, что должно быть на какой глубине, чтобы заставить сцену работать.
Итак, в моей рыбной сцене у меня есть гравий, бак и пузыри. Я подключил гравийную сетку с помощью dat.gui, и через несколько секунд у меня была необходимая глубина.
this.gui.add(this.fishScene.gravel, "renderDepth", 0, 200);
У меня была куча объектов, которые были клонированы из цикла for в случайной позиции x и y... и obj.z ++, поэтому они выстроились в линию... включая obj.renderOrder ++; в цикле решена моя проблема.