Как получить сетки ограничивающего прямоугольника за три секунды?

На самом деле я работаю над реализацией некоторого отбора окклюзии на 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
Другие вопросы по тегам