Как получить сетки ограничивающего прямоугольника за три секунды?
На самом деле я работаю над реализацией некоторого отбора окклюзии на three.js, и я хочу знать, есть ли способ из THREE.Box3 извлечь все соответствующие сетки, которые находятся внутри этой ограничительной рамки?
ограничивающий прямоугольник в three.js отслеживает содержащиеся в нем сетки?
Спасибо вам всем.
1 ответ
Отвечая на ваши вопросы в обратном порядке:
Нет Box3
не имеет "смысла окружения" Если вы хотите сохранить список мешей Box3
содержит, вам нужно будет создать этот список при создании Box3
и поддерживать его как свою сцену и Box3
менять.
Однако вы можете ПОЛУЧИТЬ все эти сетки, проверив пересечения ограничивающих рамок. Одно важное предостережение заключается в том, что коробки должны быть переведены в их мировые преобразования. Это может сделать пересечение менее точным, потому что ограничивающая рамка будет расширяться, чтобы содержать преобразованную часть, оставаясь при этом выровненной по миру.
myMesh.geometry.computeBoundingBox(); // computes a LOCAL bounding box
var tmpBox = new THREE.Box3().copy(myMesh.boundingBox);
tmpBox.applyMatrix4(myMesh.matrixWorld); // converts tmpBox into a WORLD bounding box
console.log("Boxes intersect:", someOtherWorldBox.intersectsBox(tmpBox)); // true/false