如何在三个 js 中检索边界框的网格?

How to retrieve a bounding box's meshes in three js?

我实际上正在对 three.js 实施一些遮挡剔除,我想知道是否有办法从 THREE.Box3 检索此边界框内的所有相应网格?
three.js 中的边界框是否跟踪它包含的网格?
谢谢你们 。

倒序回答您的问题:

不,Box3 没有 "sense of surroundings" 如果您想保留一个 Box3 包含的网格列表,您需要在创建Box3,并在您的场景和 Box3 更改时维护它。

但是,您可以通过检查 bounding box intersections 获取所有这些网格。一个主要的警告是必须将盒子转换为它们的世界转换。这会使相交不太准确,因为边界框会扩展以包含变换的部分,同时保持世界对齐。

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